An Approach to Prioritize Classes in a Multi-objective Software Maintenance Framework

Michael Mohan, Desmond Greer

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)
203 Downloads (Pure)


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 source 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.
Original languageEnglish
Title of host publicationProceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2018)
Number of pages8
ISBN (Print)978-989-758-300-1
Publication statusPublished - 23 Mar 2018

Bibliographical note

Presented at ENASE 2018 (


  • Search based Software Engineering
  • Maintenance
  • Automated Refactoring
  • Refactoring Tools
  • Software Quality
  • Multi-objective Optimization
  • Genetic Algorithms

ASJC Scopus subject areas

  • Computer Science(all)
  • Software


Dive into the research topics of 'An Approach to Prioritize Classes in a Multi-objective Software Maintenance Framework'. Together they form a unique fingerprint.

Cite this