Automated Detection of Refactorings in Evolving Components

TitleAutomated Detection of Refactorings in Evolving Components
Publication TypeConference Paper
Year of Publication2006
AuthorsDig, D., C. Comertoglu, D. Marinov, and R. Johnson
Conference NameProceedings of the 20th European conference on Object-Oriented Programming - ECOOP'06
Pagination404 - 428
Date Published07/2006
Conference LocationNantes, France
ISBN Number978-3-540-35727-8

One of the costs of reusing software components is updating applications to use the new version of the components. Updating an application can be error-prone, tedious, and disruptive of the development process. Our previous study showed that more than 80% of the disruptive changes in five different components were caused by refactorings. If the refactorings that happened between two versions of a component could be automatically detected, a refactoring tool could replay them on applications. We present an algorithm that detects refactorings performed during component evolution. Our algorithm uses a combination of a fast syntactic analysis to detect refactoring candidates and a more expensive semantic analysis to refine the results. The experiments on components ranging from 17 KLOC to 352 KLOC show that our algorithm detects refactorings in real-world components with accuracy over 85%.