An empirical study to determine the optimum refactoring sequence of critically affected classes using Software Quality Attributes

Read the full article See related articles

Listed in

This article is not in any list yet, why not save it to one of your lists.
Log in to save this article

Abstract

Software developer always emphasize on quality of the software. Quality software tends to be more robust and easy to maintain, thereby reducing the software development and maintenance phase's cost. Refactoring is one of the methods to advance the quality of the software without affecting its external behavior. The current study helps to validate the effect of refactoring on the software's internal and external attributes using four open-source datasets. Internal quality attributes such as coupling, cohesion, inheritance etc are measured with the help of design metrics. In contrast, experts' opinions are used to determine the external quality attributes such as understandability, reusability, modifiability, etc. Initially, prioritization techniques are used to identify the highly critical classes. Furthermore, a new approach is proposed, namely, Quality Attribute Score (QAS), to determine the most optimum refactoring sequence concerning a class’s internal and external quality attributes. The effect on the internal attributes forms a solid base for the experts to observe the changes in the external attributes. Thereafter, all the positive changes in the external attributes are used in determining the most optimum sequence in each datasets. It will ensure the removal of bad smells while simultaneously improving the quality of the class with respect to its external attributes. The results substantiate that refactoring technique sequences are indeed helpful in improvising the quality of the software if they are applied in a specific sequence. Authors have demonstrated the effectiveness of their approach using illustration of the experimental datasets and one of the datasets showed an improvement of 54% in the software quality after the application of refactoring sequence. The sequence obtained would aid the maintenance team, minimize their efforts while simultaneously enhancing the software's quality. The results of the study, would help researchers in determining which technique should be applied used, to achieve best possible class's quality.

Article activity feed