软件度量、代码气味和重构技术的系统文献综述

Mansi Agnihotri, A. Chug
{"title":"软件度量、代码气味和重构技术的系统文献综述","authors":"Mansi Agnihotri, A. Chug","doi":"10.3745/JIPS.04.0184","DOIUrl":null,"url":null,"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.","PeriodicalId":415161,"journal":{"name":"J. Inf. Process. Syst.","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"19","resultStr":"{\"title\":\"A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques\",\"authors\":\"Mansi Agnihotri, A. Chug\",\"doi\":\"10.3745/JIPS.04.0184\",\"DOIUrl\":null,\"url\":null,\"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.\",\"PeriodicalId\":415161,\"journal\":{\"name\":\"J. Inf. Process. Syst.\",\"volume\":\"29 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-08-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"19\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"J. Inf. Process. Syst.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.3745/JIPS.04.0184\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Inf. Process. Syst.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3745/JIPS.04.0184","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 19

摘要

软件重构是一个在保持其外部行为不变的情况下重构现有软件代码的过程。目前,各种重构技术被用于通过改进软件的非功能属性来开发可读性更强、复杂性更低的代码。重构可以通过对源代码应用各种技术来进一步提高代码的可维护性,这反过来又保留了代码的行为。重构有助于消除错误并扩展程序的功能。在本文中,对源代码中存在的不良气味、用于去除不良气味的特定重构方法及其对软件质量的影响进行了详尽的审查。2001年至2019年间发表的32种期刊、31个会议和5个其他来源的68项研究入围。这些研究是基于识别出的不良气味、使用的重构技术以及它们对软件度量的影响进行分析的。我们发现,在大多数研究中,“长方法”、“特征嫉妒”和“数据类”的不良气味被识别或纠正。在所有入围研究中,有36.66%的研究检测到“特征嫉妒”气味。提取类重构方法占总研究的38.77%,其次是移动方法和提取方法技术,分别占总研究的34.69%和30.61%。重构对软件复杂性和耦合度量的影响也在大多数研究中进行了分析,即各有29项研究。有趣的是,大多数选定的研究(41%)使用Java语言编写的大型开源数据集,而不是专有软件。最后,本研究为代码重构领域的研究提供了未来的指导方针。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques
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.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信