Ref-Finder: a refactoring reconstruction tool based on logic query templates
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Comparison of similarity metrics for refactoring detection
Proceedings of the 8th Working Conference on Mining Software Repositories
An empirical investigation into the role of API-level refactorings during software evolution
Proceedings of the 33rd International Conference on Software Engineering
BeneFactor: a flexible refactoring tool for eclipse
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Issues arising from refactoring studies: an experience report
ACM SIGSOFT Software Engineering Notes
What kind of and how clones are refactored?: a case study of three OSS projects
Proceedings of the Fifth Workshop on Refactoring Tools
Reconciling manual and automatic refactoring
Proceedings of the 34th International Conference on Software Engineering
WitchDoctor: IDE support for real-time auto-completion of refactorings
Proceedings of the 34th International Conference on Software Engineering
A field study of refactoring challenges and benefits
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Proceedings of the 15th annual conference on Genetic and evolutionary computation
Search-based refactoring detection
Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
Practical use of static composition of refactoring operations
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Temporal code completion and navigation
Proceedings of the 2013 International Conference on Software Engineering
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
A comparative study of manual and automated refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Active support for clone refactoring: a perspective
Proceedings of the 2013 ACM workshop on Workshop on refactoring tools
System performance analyses through object-oriented fault and coupling prisms
Proceedings of the 5th ACM/SPEC international conference on Performance engineering
Hi-index | 0.00 |
Knowing which types of refactoring occurred between two program versions can help programmers better understand code changes. Our survey of refactoring identification techniques found that existing techniques cannot easily identify complex refactorings, such as an replace conditional with polymorphism refactoring, which consist of a set of atomic refactorings. This paper presents REF-FINDER that identifies complex refactorings between two program versions using a template-based refactoring reconstruction approach—REF-FINDER expresses each refactoring type in terms of template logic rules and uses a logic programming engine to infer concrete refactoring instances. It currently supports sixty three refactoring types from Fowler's catalog, showing the most comprehensive coverage among existing techniques. The evaluation using code examples from Fowler's catalog and open source project histories shows that REF-FINDER identifies refactorings with an overall precision of 0.79 and recall of 0.95.