TY - GEN
T1 - Automated detection of api refactorings in libraries
AU - Taneja, Kunal
AU - Dig, Danny
AU - Xie, Tao
N1 - Copyright:
Copyright 2010 Elsevier B.V., All rights reserved.
PY - 2007
Y1 - 2007
N2 - 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.
AB - 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.
KW - code reuse
KW - libraries
KW - refactoring
KW - software maintainance
UR - http://www.scopus.com/inward/record.url?scp=77953967077&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=77953967077&partnerID=8YFLogxK
U2 - 10.1145/1321631.1321688
DO - 10.1145/1321631.1321688
M3 - Conference contribution
AN - SCOPUS:77953967077
SN - 9781595938824
T3 - ASE'07 - 2007 ACM/IEEE International Conference on Automated Software Engineering
SP - 377
EP - 380
BT - ASE'07 - 2007 ACM/IEEE International Conference on Automated Software Engineering
T2 - 22nd IEEE/ACM International Conference on Automated Software Engineering, ASE'07
Y2 - 5 November 2007 through 9 November 2007
ER -