A Brief Review on Multi-objective Software Refactoring and a New Method for Its Recommendation
- PDF / 3,261,033 Bytes
- 25 Pages / 595.276 x 790.866 pts Page_size
- 30 Downloads / 174 Views
ORIGINAL PAPER
A Brief Review on Multi‑objective Software Refactoring and a New Method for Its Recommendation Satnam Kaur1 · Lalit K. Awasthi1 · A. L. Sangal1 Received: 10 February 2020 / Accepted: 27 August 2020 © CIMNE, Barcelona, Spain 2020
Abstract Software refactoring is a commonly accepted means of improving the software quality without affecting its observable behaviour. It has gained significant attention from both academia and software industry. Therefore, numerous approaches have been proposed to automate refactoring that consider software quality maximization as their prime objective. However, this objective is not enough to generate good and efficient refactoring sequences as refactoring also involves several other uncertainties related to smell severity, history of applied refactoring activities and class severity. To address these concerns, we propose a multi-objective optimization technique to generate refactoring solutions that maximize the (1) software quality, (2) use of smell severity and (3) consistency with class importance. To this end, we provide a brief review on multi-objective search-based software refactoring and use a multi-objective spotted hyena optimizer (MOSHO) to obtain the best compromise between these three objectives. The proposed approach is evaluated on five open source datasets and its performance is compared with five different well-known state-of-the-art meta-heuristic and non-meta-heuristic approaches. The experimental results exhibit that the refactoring solutions provided by MOSHO are significantly better than other algorithms when class importance and code smell severity scores are used. Keywords Search-based software engineering · Code smell · Software refactoring · Multi-objective optimization · MOSHO algorithm · Software quality
1 Introduction Software maintenance is the costliest activity among all the activities of software development life cycle [1, 2]. The main factor causing a high maintenance cost is the bad design quality of the software [3]. During continuous maintenance, several changes like bug fixes, incorporation of new requirements, or adaption to other environments are made to the software system without considering the design principles due to developer’s inexperience or time/budget pressure. This defilement of software design principles unintentionally by the developers introduces several code smells [4, 5]. Basically, code smells are indications that signify problems in software code or design artifacts and makes those artifacts difficult to change and maintain. These code smells may * Satnam Kaur [email protected] 1
Department of Computer Science and Engineering, Dr B R Ambedkar National Institute of Technology, Jalandhar, Punjab, India
degrade the quality of the software gradually over time [6, 7] and can be eradicated by an appropriate choice of refactoring activities [8]. The term ‘refactoring’ was coined by Opdyke in 1992 [9]. Refactoring is a disciplined process of restructuring the source code in such a way that it improves the
Data Loading...