A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques


Mansi Agnihotri, Anuradha Chug, Journal of Information Processing Systems Vol. 16, No. 4, pp. 915-934, Aug. 2020  

10.3745/JIPS.04.0184
Keywords: Code Smells, Extract Class Refactoring, Feature Envy Bad Smell, Refactoring Techniques, Software Maintenance, Software Metrics
Fulltext:

Abstract

Software refactoring is a process to restructure an existing software code while keeping its external behavior the same. Currently, various refactoring techniques are being used to develop more readable and less complex codes by improving the non-functional attributes of software. Refactoring can further improve code maintainability by applying various techniques to the source code, which in turn preserves the behavior of code. Refactoring facilitates bug removal and extends the capabilities of the program. In this paper, an exhaustive review is conducted regarding bad smells present in source code, applications of specific refactoring methods to remove that bad smell and its effect on software quality. A total of 68 studies belonging to 32 journals, 31 conferences, and 5 other sources that were published between the years 2001 and 2019 were shortlisted. The studies were analyzed based on of bad smells identified, refactoring techniques used, and their effects on software metrics. We found that “long method”, “feature envy”, and “data class” bad smells were identified or corrected in the majority of studies. “Feature envy” smell was detected in 36.66% of the total shortlisted studies. Extract class refactoring approach was used in 38.77% of the total studies, followed by the move method and extract method techniques that were used in 34.69% and 30.61% of the total studies, respectively. The effects of refactoring on complexity and coupling metrics of software were also analyzed in the majority of studies, i.e., 29 studies each. Interestingly, the majority of selected studies (41%) used large open source datasets written in Java language instead of proprietary software. At the end, this study provides future guidelines for conducting research in the field of code refactoring.


Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from November 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.




Cite this article
[APA Style]
Agnihotri, M. & Chug, A. (2020). A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques. Journal of Information Processing Systems, 16(4), 915-934. DOI: 10.3745/JIPS.04.0184.

[IEEE Style]
M. Agnihotri and A. Chug, "A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques," Journal of Information Processing Systems, vol. 16, no. 4, pp. 915-934, 2020. DOI: 10.3745/JIPS.04.0184.

[ACM Style]
Mansi Agnihotri and Anuradha Chug. 2020. A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques. Journal of Information Processing Systems, 16, 4, (2020), 915-934. DOI: 10.3745/JIPS.04.0184.