A Comprehensive Technique to Predict the Size of Maintenance Tasks
收藏资源简介:
Software systems continuously evolve over time because of changes in the requirements, code refactoring, or bug fixing activities. A way to quantify the extent of a change is given by code churn, that represent the number of lines of code changed by a developer to perform such a change. Previous research showed that code churn can be adopted by practitioners to perform early evaluation of defect density, presence of vulnerabilities, or to simply monitor the impact of a code change. We argue that an automated software analytics technique able to inform developers of the quantity of code needed to perform a maintenance task might be useful when estimating the likely effort needed to issue it or assessing the possible hidden risks. In this paper, we present a novel code churn prediction model, that uses a mix of product, process, and developer-related factors to output a nominal value indicating an estimate of the code churn for a given maintenance task. We employ the model in a large-scale empirical study involving 17 open-source software sys- tems, comparing it with baselines relying on (i) only product, (ii) only pro- cess, and (iii) a combination of product and process metrics. We show that the proposed model is pretty accurate in the estimations reaching up to 70% of F-Measure and 80% of AUC-ROC. Furthermore, it is statistically better than other baseline models in 88% of the cases.
软件系统会随时间持续演进,其驱动因素涵盖需求变更、代码重构与缺陷修复等开发活动。量化变更幅度的常用指标为代码变更量(Code Churn),其指代开发者执行某次变更操作时所修改的代码总行数。已有研究证实,从业者可借助代码变更量开展缺陷密度、漏洞存在性的早期评估,或仅用于监控代码变更的影响范围。我们认为,若能通过自动化软件分析技术向开发者告知完成某项维护任务所需的代码修改量,将有助于其估算执行该任务的潜在工作量,或是评估其可能存在的隐性风险。本文提出一种新颖的代码变更量预测模型,该模型融合产品、过程与开发者相关三类因素,输出标称数值以表征指定维护任务的代码变更量预估结果。我们将该模型应用于一项涵盖17个开源软件系统的大规模实证研究中,并与三类基准模型展开对比:(i) 仅基于产品指标的基准模型、(ii) 仅基于过程指标的基准模型,以及(iii) 融合产品与过程指标的基准模型。实验结果表明,所提模型的预测精度优异,F值(F-Measure)最高可达70%,ROC曲线下面积(AUC-ROC)最高可达80%。此外,在88%的实验场景中,该模型的性能在统计学意义上优于其余基准模型。




