Automated detection of api refactorings in libraries

TitleAutomated detection of api refactorings in libraries
Publication TypeConference Paper
Year of Publication2007
AuthorsTaneja, K., D. Dig, and T. Xie
Conference NameProceedings of Automated Software Engineering (ASE'07)
Date Published11/2007
PublisherACM Press
Conference LocationAtlanta, Georgia, USA
ISBN Number9781595938824

Software developers often do not build software from scratch but reuse software libraries. In theory, the APIs of a library should be stable, but in practice they do change and thus require changes in software that reuses the library. Our previous study of five reusable components shows that more than 80% of these API changes are caused by refactorings. If these refactorings could be automatically detected, they could be used to automatically upgrade applications.

In this paper, we present a technique and its supporting tool, RefacLib, to automatically detect refactorings in libraries. RefacLib uses syntactic analysis in the first phase to quickly detect refactoring candidates across two versions of a library. In the second phase, RefacLib uses various heuristics to refine the results. We used RefacLib to detect refactorings in five open source libraries and frameworks. The experiments show that RefacLib can process realistic code bases and detects refactorings with practical accuracy