This paper proposes a multi-objective genetic algorithm to automate software refactoring and validates the approach using a tool, MultiRefactor, and a set of open source Java programs. The tool uses a metric function to measure quality in a software system and tests a second objective to measure the recentness of the code elements being refactored. Previous versions of the software project are analyzed and a recentness measure is then calculated with respect to previous versions of code. The multi-objective setup refactors the input program to improve its quality using the quality objective, while also focusing on the recentness of the code elements inspected. An experiment has been constructed to measure the multi-objective approach against an alternative mono-objective approach that does not use an objective to measure element recentness. The two approaches are validated using six different open source Java programs. The multi-objective approach is found to give significantly better recentness scores across all inputs in a similar time, while also generating improvements in the quality score.
|Title of host publication||Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2018)|
|Number of pages||8|
|Publication status||Published - 23 Mar 2018|
Bibliographical notePresented at ENASE 2018 (www.enase.org)
- Search based Software Engineering
- Software History
- Multi-Objective Optimization
- Genetic Algorithms
ASJC Scopus subject areas
- Computer Science(all)
Mohan, M., & Greer, D. (2018). Automated Refactoring of Software Using Version History and a Code Element Recentness Measure. In Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2018) (pp. 455-462). SciTePress.