In this paper, a new approach is proposed for automated software maintenance. The tool is able to perform 26 different refactorings. It also contains a large selection of metrics to measure the impact of the refactorings on the software and six different search based optimization algorithms to improve the software. This tool contains both mono-objective and multi-objective search techniques for software improvement and is fully automated. The paper describes the various capabilities of the tool, the unique aspects of it, and also presents some research results from experimentation. The individual metrics are tested across five different codebases to deduce the most effective metrics for general quality improvement. It is found that the metrics that relate to more specific elements of the code are more useful for driving change in the search. The mono-objective genetic algorithm is also tested against the multi-objective algorithm to see how comparable the results gained are with three separate objectives. When comparing the best solutions of each individual objective the multi-objective approach generates suitable improvements in quality in less time, allowing for rapid maintenance cycles.
|Title of host publication||Proceedings of the 2017 International Conference on Product-Focused Software Process Improvement (PROFES)|
|Publisher||Springer Lecture Notes in Computer Science (LNCS)|
|Publication status||Early online date - 17 Oct 2017|
- Search Based Software Engineering
- Automated maintenance
- Refactoring tools
- Multi-Objective optimization
- Software metrics
FingerprintDive into the research topics of 'MultiRefactor: Automated Refactoring To Improve Software Quality'. Together they form a unique fingerprint.
- School of Electronics, Electrical Engineering and Computer Science - Senior Lecturer
- Knowledge and Data Engineering