A toolkit for constructing refactoring engines


  • Jeffrey Overbey Department of Computer Science, University of Illinois at Urbana-Champaign, Illinois, United States


Many refactorings are simple but tedious, which makes them good candidates for automation. Common refactorings include renaming identifiers, moving code between classes or functions, and encapsulating variables. Most integrated development environments (IDEs) – including Eclipse, IntelliJ IDEA, Microsoft Visual Studio, and Apple Xcode – provide support for automated refactoring. These features allow the programmer to select a portion of the source code and select a particular refactoring to apply. The IDE then performs a static analysis of the source code, determining whether the desired change will change its behavior. If the behavior will not change, the IDE modifies the source code, showing the user a side-by-side, before-andafter view of the source code so that he can visually inspect the changes


Download data is not yet available.


[1] M. Fowler. Refactoring: Improving the Design of Existing Code. Addison Wesley, Boston, MA, 1999.
[2] M. Fowler. MF Bliki: RefactoringMalapropism. Refactoring Malapropism. http://martinfowler.com/bliki/RefactoringMalapropism.html, January, 2004.
[3] J. Overbey and R. Johnson, “Generating Rewritable Abstract Syntax Trees.” In Software Language
Engineering: First International Conference, volume 5452 of Lecture Notes in Computer Science, pages
114-133, Springer-Verlag, Berlin, Heidelberg, 2009.
[4] J. Overbey and R. Johnson, “Differential Precondition Checking: A Lightweight, Reusable Analysis for
Refactoring Tools.” In Proceedings of the 26 th IEEE/ACM International Conference on Automated Software
Engineering (ASE 2011).
[5] J. Overbey. A Toolkit for Constructing Refactoring Engines. PhD thesis. University of Illinois at Urbana-Champaign, Champaign, IL, 2011.




How to Cite

Overbey, J. (2012). A toolkit for constructing refactoring engines. Journal of Computer Science and Technology, 12(03), p. 140–142. Retrieved from https://journal.info.unlp.edu.ar/JCST/article/view/647



Thesis Overview