Rank-based refactoring decision support: Two studies

Liming Zhao, Jane Huffman Hayes

Research output: Contribution to journalArticlepeer-review

11 Scopus citations


Refactoring can result in code with improved maintainability and is considered a preventive maintenance activity. Managers of large projects need ways to decide where to apply scarce resources when performing refactoring. There is a lack of tools for supporting such decisions. We introduce a rank-based software measure-driven refactoring decision support approach to assist managers. The approach uses various static measures to develop a weighted rank, ranking classes or packages that need refactoring. We undertook two case studies to examine the effectiveness of the approach. Specifically, we wanted to see if the decision support tool yielded results similar to those of human analysts/managers and in less time so that it can be used to augment human decision making. In the first study, we found that our approach identified classes as needing refactoring that were also identified by humans. In the second study, a hierarchical approach was used to identify packages that had actually been refactored in 15 releases of the open source project Tomcat. We examined the overlap between the tool's findings and the actual refactoring activities. The tool reached 100/86.7% recall on the package/class level. Though these studies were limited in size and scope, it appears that this approach is worthy of further examination.

Original languageEnglish
Pages (from-to)171-189
Number of pages19
JournalInnovations in Systems and Software Engineering
Issue number3
StatePublished - Sep 2011


  • Decision support
  • Maintainability
  • Refactoring
  • Software engineering

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Rank-based refactoring decision support: Two studies'. Together they form a unique fingerprint.

Cite this