Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Information Retrieval
On the Resemblance and Containment of Documents
SEQUENCES '97 Proceedings of the Compression and Complexity of Sequences 1997
Reconstruction of Successful Software Evolution Using Clone Detection
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
An Automatic Approach to identify Class Evolution Discontinuities
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
When Functions Change Their Names: Automatic Detection of Origin Relationships
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Identifying Refactorings from Source-Code Changes
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Refactoring Detection based on UMLDiff Change-Facts Queries
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Annotation refactoring: inferring upgrade transformations for legacy applications
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Test code differencing for test-driven refactoring automation
ACM SIGSOFT Software Engineering Notes
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Gathering refactoring data: a comparison of four methods
Proceedings of the 2nd Workshop on Refactoring Tools
BeneFactor: a flexible refactoring tool for eclipse
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Study of an API migration for two XML APIs
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Reconciling manual and automatic refactoring
Proceedings of the 34th International Conference on Software Engineering
A history-based matching approach to identification of framework evolution
Proceedings of the 34th International Conference on Software Engineering
How do developers react to API deprecation?: the case of a smalltalk ecosystem
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Is this a bug or an obsolete test?
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
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