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

被引:5
作者
Agnihotri, Mansi [1 ]
Chug, Anuradha [1 ]
机构
[1] Guru Gobind Singh Indraprastha Univ, Univ Sch Informat Commun & Technol USIC&T, New Delhi, India
来源
JOURNAL OF INFORMATION PROCESSING SYSTEMS | 2020年 / 16卷 / 04期
关键词
Code Smells; Extract Class Refactoring; Feature Envy Bad Smell; Refactoring Techniques; Software Maintenance; Software Metrics; BAD SMELLS; IMPACT;
D O I
10.3745/JIPS.04.0184
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:915 / 934
页数:20
相关论文
共 74 条
[1]   Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics [J].
Al Dallal, Jehad .
INFORMATION AND SOFTWARE TECHNOLOGY, 2012, 54 (10) :1125-1141
[2]   Refactoring Effect on Cohesion Metrics [J].
Alshayeb, Mohammad .
PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTING, ENGINEERING AND INFORMATION, 2009, :3-7
[3]   Empirical investigation of refactoring effect on software quality [J].
Alshayeb, Mohammad .
INFORMATION AND SOFTWARE TECHNOLOGY, 2009, 51 (09) :1319-1326
[4]  
[Anonymous], 2011, SIGSOFT Softw. Eng. Notes
[5]  
[Anonymous], 2016, Autom Softw Eng, DOI DOI 10.1007/S10515-014-0175-X
[6]  
[Anonymous], 2012, P SPRING C ENG TECHN, DOI DOI 10.1109/SCET.2012.6342082
[7]  
[Anonymous], 2014, INT J SOFTWARE ENG A
[8]   An experimental investigation on the innate relationship between quality and refactoring [J].
Bavota, Gabriele ;
De Lucia, Andrea ;
Di Penta, Massimiliano ;
Oliveto, Rocco ;
Palomba, Fabio .
JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 107 :1-14
[9]   The usefulness of software metric thresholds for detection of bad smells and fault prediction [J].
Bigonha, Mariza A. S. ;
Ferreira, Kecia ;
Souza, Priscila ;
Sousa, Bruno ;
Januario, Marcela ;
Lima, Daniele .
INFORMATION AND SOFTWARE TECHNOLOGY, 2019, 115 :79-92
[10]   User interface design smell: Automatic detection and refactoring of Blob listeners [J].
Blouin, Arnaud ;
Lelli, Valeria ;
Baudry, Benoit ;
Coulon, Fabien .
INFORMATION AND SOFTWARE TECHNOLOGY, 2018, 102 :49-64