Predicting Software Change-Proneness From Software Evolution Using Machine Learning Methods

Raed A Shatnawi
{"title":"Predicting Software Change-Proneness From Software Evolution Using Machine Learning Methods","authors":"Raed A Shatnawi","doi":"10.28945/5193","DOIUrl":null,"url":null,"abstract":"Aim/Purpose: To predict the change-proneness of software from the continuous evolution using machine learning methods. To identify when software changes become statistically significant and how metrics change. Background: Software evolution is the most time-consuming activity after a software release. Understanding evolution patterns aids in understanding post-release software activities. Many methodologies have been proposed to comprehend software evolution and growth. As a result, change prediction is critical for future software maintenance. Methodology: I propose using machine learning methods to predict change-prone classes. Classes that are expected to change in future releases were defined as change-prone. The previous release was only considered by the researchers to define change-proneness. In this study, I use the evolution of software to redefine change-proneness. Many snapshots of software were studied to determine when changes became statistically significant, and snapshots were taken biweekly. The research was validated by looking at the evolution of five large open-source systems. Contribution: In this study, I use the evolution of software to redefine change-proneness. The research was validated by looking at the evolution of five large open-source systems. Findings: Software metrics can measure the significance of evolution in software. In addition, metric values change within different periods and the significance of change should be considered for each metric separately. For five classifiers, change-proneness prediction models were trained on one snapshot and tested on the next. In most snapshots, the prediction performance was excellent. For example, for Eclipse, the F-measure values were between 80 and 94. For other systems, the F-measure values were higher than 75 for most snapshots. Recommendations for Practitioners: Software change happens frequently in the evolution of software; however, the significance of change happens over a considerable length of time and this time should be considered when evaluating the quality of software. Recommendation for Researchers: Researchers should consider the significance of change when studying software evolution. Software changes should be taken from different perspectives besides the size or length of the code. Impact on Society: Software quality management is affected by the continuous evolution of projects. Knowing the appropriate time for software maintenance reduces the costs and impacts of software changes. Future Research: Studying the significance of software evolution for software refactoring helps improve the internal quality of software code.","PeriodicalId":38962,"journal":{"name":"Interdisciplinary Journal of Information, Knowledge, and Management","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Interdisciplinary Journal of Information, Knowledge, and Management","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.28945/5193","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"Computer Science","Score":null,"Total":0}
引用次数: 0

Abstract

Aim/Purpose: To predict the change-proneness of software from the continuous evolution using machine learning methods. To identify when software changes become statistically significant and how metrics change. Background: Software evolution is the most time-consuming activity after a software release. Understanding evolution patterns aids in understanding post-release software activities. Many methodologies have been proposed to comprehend software evolution and growth. As a result, change prediction is critical for future software maintenance. Methodology: I propose using machine learning methods to predict change-prone classes. Classes that are expected to change in future releases were defined as change-prone. The previous release was only considered by the researchers to define change-proneness. In this study, I use the evolution of software to redefine change-proneness. Many snapshots of software were studied to determine when changes became statistically significant, and snapshots were taken biweekly. The research was validated by looking at the evolution of five large open-source systems. Contribution: In this study, I use the evolution of software to redefine change-proneness. The research was validated by looking at the evolution of five large open-source systems. Findings: Software metrics can measure the significance of evolution in software. In addition, metric values change within different periods and the significance of change should be considered for each metric separately. For five classifiers, change-proneness prediction models were trained on one snapshot and tested on the next. In most snapshots, the prediction performance was excellent. For example, for Eclipse, the F-measure values were between 80 and 94. For other systems, the F-measure values were higher than 75 for most snapshots. Recommendations for Practitioners: Software change happens frequently in the evolution of software; however, the significance of change happens over a considerable length of time and this time should be considered when evaluating the quality of software. Recommendation for Researchers: Researchers should consider the significance of change when studying software evolution. Software changes should be taken from different perspectives besides the size or length of the code. Impact on Society: Software quality management is affected by the continuous evolution of projects. Knowing the appropriate time for software maintenance reduces the costs and impacts of software changes. Future Research: Studying the significance of software evolution for software refactoring helps improve the internal quality of software code.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
使用机器学习方法从软件进化中预测软件的变化倾向
目的:利用机器学习方法预测软件在持续进化过程中的变化倾向。确定软件变更何时具有统计意义,以及度量标准如何变更。背景:软件开发是软件发布后最耗时的活动。理解进化模式有助于理解发布后的软件活动。已经提出了许多方法来理解软件的演化和增长。因此,变更预测对于未来的软件维护至关重要。方法论:我建议使用机器学习方法来预测易发生变化的类。在未来的版本中预期会更改的类被定义为易发生更改的类。之前的版本只被研究人员用来定义易变性。在这项研究中,我使用软件的进化来重新定义变更倾向。研究了软件的许多快照,以确定变化何时具有统计意义,并且每两周拍摄快照。这项研究通过观察五个大型开源系统的演变得到了验证。贡献:在这项研究中,我使用软件的进化来重新定义变更倾向。这项研究通过观察五个大型开源系统的演变得到了验证。发现:软件度量可以度量软件进化的重要性。此外,度量值在不同的时期内会发生变化,每个度量值的变化意义应分别考虑。对于五个分类器,变化倾向预测模型在一个快照上训练,并在下一个快照上测试。在大多数快照中,预测性能很好。例如,对于Eclipse, f测量值在80到94之间。对于其他系统,大多数快照的f测量值都高于75。对从业者的建议:软件变更在软件的发展过程中频繁发生;然而,变更的重要性发生在相当长的一段时间内,在评估软件质量时应该考虑到这段时间。给研究人员的建议:研究人员在研究软件进化时应该考虑变化的意义。除了代码的大小和长度之外,还应该从不同的角度来看待软件更改。对社会的影响:软件质量管理受到项目持续发展的影响。了解软件维护的适当时间可以减少软件更改的成本和影响。未来研究方向:研究软件演化对软件重构的意义,有助于提高软件代码的内在质量。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
CiteScore
2.30
自引率
0.00%
发文量
14
期刊最新文献
IJIKM Volume 18, 2023 – Table of Contents Factors Affecting Individuals’ Behavioral Intention to Use Online Capital Market Investment Platforms in Indonesia Investigating the Adoption of Social Commerce: A Case Study of SMEs in Jordan The Influence of Big Data Management on Organizational Performance in Organizations: The Role of Electronic Records Management System Potentiality Customer Churn Prediction in the Banking Sector Using Machine Learning-Based Classification Models
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1