Technical Debt Reduction using Search Based Automated Refactoring

Research output: Contribution to journalSpecial issuepeer-review

24 Citations (Scopus)
501 Downloads (Pure)

Abstract

Software refactoring has been recognised as a valuable process during software development and is often aimed at repaying technical debt. Technical debt arises when a software product has been built or amended without full care for structure and extensibility. Refactoring is useful to keep technical debt low and if it can be automated there are obvious efficiency benefits. Using a combination of automated refactoring techniques, software metrics and metaheuristic searches, an automated refactoring tool can improve the structure of a software system without affecting its functionality. In this paper, four different refactoring approaches are compared using an automated software refactoring tool. Weighted sums of metrics are used to form different fitness functions that drive the search process towards certain aspects of software quality. Metrics are combined to measure coupling, abstraction and inheritance and a fourth fitness function is proposed to measure reduction in technical debt. The 4 functions are compared against each other using 3 different searches on 6 different open source programs. Four out of the 6 programs show a larger improvement in the technical debt function after the search based refactoring process. The results show that the technical debt function is useful for assessing improvement in quality.
Original languageEnglish
Article number11
Pages (from-to)183-194
Number of pages12
JournalJournal of Systems and Software
Volume120
Early online date11 May 2016
DOIs
Publication statusPublished - Oct 2016

Bibliographical note

Accepted and published online. Printed version available.

Keywords

  • search based software engineering
  • automated refactoring
  • refactoring tools
  • technical debt
  • software metrics
  • simulated annealing

ASJC Scopus subject areas

  • Human-Computer Interaction
  • Software
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'Technical Debt Reduction using Search Based Automated Refactoring'. Together they form a unique fingerprint.

Cite this