Automated support for program refactoring using invariants

Download: PDF, slides (PDF), slides (PowerPoint).

“Automated support for program refactoring using invariants” by Yoshio Kataoka, Michael D. Ernst, William G. Griswold, and David Notkin. In ICSM 2001: Proceedings of the International Conference on Software Maintenance, (Florence, Italy), Nov. 2001, pp. 736-743.


Program refactoring — transforming a program to improve readability, structure, performance, abstraction, maintainability, or other characteristics — is not applied in practice as much as might be desired. One deterrent is the cost of detecting candidates for refactoring and of choosing the appropriate refactoring transformation. This paper demonstrates the feasibility of automatically finding places in the program that are candidates for specific refactorings. The approach uses program invariants: when particular invariants hold at a program point, a specific refactoring is applicable. Since most programs lack explicit invariants, an invariant detection tool called Daikon is used to infer the required invariants. We developed an invariant pattern matcher for several common refactorings and applied it to an existing Java code base. Numerous refactorings were detected, and one of the developers of the code base assessed their efficacy.

Download: PDF, slides (PDF), slides (PowerPoint).

BibTeX entry:

   author = {Yoshio Kataoka and Michael D. Ernst and William G. Griswold
	and David Notkin},
   title = {Automated support for program refactoring using invariants},
   booktitle = {ICSM 2001: Proceedings of the International Conference on
	Software Maintenance},
   pages = {736--743},
   address = {Florence, Italy},
   month = nov,
   year = {2001}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.