@inproceedings{d1babeca1c0e4695acd0df7dc1341f63,
title = "Automated detection of refactorings in evolving components",
abstract = "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%.",
author = "Danny Dig and Can Comertoglu and Darko Marinov and Ralph Johnson",
year = "2006",
doi = "10.1007/11785477_24",
language = "English (US)",
isbn = "3540357262",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer",
pages = "404--428",
booktitle = "ECOOP 2006 - Object-Oriented Programming - 20th European Conference, Proceedings",
address = "Germany",
note = "20th European Conference on Object-Oriented Programming, ECOOP 2006 ; Conference date: 03-07-2006 Through 07-07-2006",
}