Search-based refactoring detection

We propose an approach to automate the detection of source code refactoring using structural information. Our approach takes as input a list of possible refactorings, a set of structural metrics and the initial and revised versions of the source code. It generates as output a sequence of detected changes in terms of refactorings. In this case, a solution is defined as the sequence of refactoring operations that minimizes the metrics variation between the revised version of the software and the version yielded by the application of the refactoring sequence to the initial version of the software. We use and adapt global and local heuristic search algorithms to explore the space of possible solutions.

[1]  Miryung Kim,et al.  Identifying and Summarizing Systematic Code Changes via Rule Inference , 2013, IEEE Transactions on Software Engineering.

[2]  Sander Vermolen,et al.  Reconstructing Complex Metamodel Evolution , 2011, SLE.

[3]  Gregor Engels,et al.  Detecting and Resolving Process Model Differences in the Absence of a Change Log , 2008, BPM.

[4]  Miryung Kim,et al.  Template-based reconstruction of complex refactorings , 2010, 2010 IEEE International Conference on Software Maintenance.

[5]  Udo Kelter,et al.  A rule-based approach to the semantic lifting of model differences in the context of model versioning , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[6]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.

[7]  Stephan Diehl,et al.  Identifying Refactorings from Source-Code Changes , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[8]  Erhard Rahm,et al.  Rule-based Generation of Diff Evolution Mappings between Ontology Versions , 2010, ArXiv.

[9]  Eleni Stroulia,et al.  Refactoring Detection based on UMLDiff Change-Facts Queries , 2006, 2006 13th Working Conference on Reverse Engineering.

[10]  Torbjörn Ekman,et al.  Refactoring-aware versioning in Eclipse , 2004, Electron. Notes Theor. Comput. Sci..

[11]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.

[12]  Romain Robbes Mining a Change-Based Software Repository , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[13]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[14]  Yang Li,et al.  Comparing State- and Operation-Based Change Tracking on Models , 2010, 2010 14th IEEE International Enterprise Distributed Object Computing Conference.