Title: MultiRefactor: Automated Refactoring To Improve Software Quality,
Abstract: 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.