Litcius/Paper detail

DEPICTER: A Design-Principle Guided and Heuristic-Rule Constrained Software Refactoring Approach

Yangyang Zhao, Yibiao Yang, Yuming Zhou, Zuohua Ding

2022IEEE Transactions on Reliability12 citationsDOI

Abstract

Software refactoring is one of the most significant practices in software maintenance as the quality of software design tends to deteriorate during software evolution. But, refactoring software is a very challenging task as it requires a holistic view of the entire software system. To this end, recent studies introduced search-based algorithms to facilitate software refactoring. However, they still have the following major limitations: 1) the searched solutions may violate the design principles as their fitness functions do not directly reflect the degree of software’s compliance with design principles; 2) most approaches start the searching process from a completely random initial population, which may lead to unoptimal solutions. In this article, we aim to develop effective search-based refactoring approach to recommend better refactoring activities for developers which can improve the degree of software’s compliance with design principles as well as the software design quality. We propose <monospace xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">DEPICTER</monospace> , a design-principle guided and heuristic-rule constrained software refactoring recommendation approach. In particular, <monospace xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">DEPICTER</monospace> uses non-dominated sorting genetic algorithm (NSGA)-II genetic algorithm and employs design-principle metrics as fitness functions. Besides, <monospace xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">DEPICTER</monospace> leverages heuristic rules to improve the quality of initial population for subsequent generic evolution. Our evaluations, based on four widely used systems, show that <monospace xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">DEPICTER</monospace> is effective for guiding the development of better refactoring models in practice.

Topics & Concepts

Code refactoringComputer scienceSoftware designSoftwareSoftware engineeringHeuristicSoftware systemSoftware developmentSoftware qualityPopulationSearch-based software engineeringSoftware evolutionSoftware maintenanceArtificial intelligenceProgramming languageSoftware constructionDemographySociologySoftware Engineering ResearchSoftware Reliability and Analysis ResearchSoftware Engineering Techniques and Practices