Authors:
Michael Mohan
and
Des Greer
Affiliation:
Queen's University Belfast, United Kingdom
Keyword(s):
Search based Software Engineering, Maintenance, Automated Refactoring, Refactoring Tools, Software Quality, Multi-objective Optimization, Genetic Algorithms.
Related
Ontology
Subjects/Areas/Topics:
Service-Oriented Software Engineering and Management
;
Software Engineering
;
Software Metrics
;
Software Process Improvement
;
Software Project Management
Abstract:
Genetic algorithms have become popular in automating software refactoring and an increasing level of attention is being given to the use of multi-objective approaches. This paper investigated the use of a multi-objective genetic algorithm to automate software refactoring using a purpose built tool, MultiRefactor. The tool used a metric function to measure quality in a software system and tested a second objective to measure the importance of the classes being refactored. This priority objective takes as input a set of classes to favor and, optionally, a set of classes to disfavor as well. The multi-objective setup refactors the input program to improve its quality using the quality objective, while also focusing on the classes specified by the user. An experiment was constructed to measure the multi-objective approach against the alternative mono-objective approach that does not use an objective to measure priority of classes. The two approaches were tested on six different open sour
ce Java programs. The multi-objective approach was found to give significantly better priority scores across all inputs in a similar time, while also generating improvements in the quality scores.
(More)