Skip to main content
QUICK REVIEW

[论文解读] Machine Learning and value generation in Software Development: a survey

Barakat J. Akinsanya, Luiz Jonatã Pires de Araújo|arXiv (Cornell University)|Jan 1, 2019
Software Engineering Research参考文献 43被引用 62
一句话总结

本综述调查了2000年至2019年间机器学习(ML)在软件开发中的应用,重点关注工作量估算、风险预测和缺陷检测。评估了神经网络、随机森林和基于案例的推理等ML技术,发现在控制条件下表现良好,但由于数据集规模小、过时且在真实项目中泛化能力差,工业界采用率较低。

ABSTRACT

Machine Learning (ML) has become a ubiquitous tool for predicting and classifying data and has found application in several problem domains, including Software Development (SD). This paper reviews the literature between 2000 and 2019 on the use the learning models that have been employed for programming effort estimation, predicting risks and identifying and detecting defects. This work is meant to serve as a starting point for practitioners willing to add ML to their software development toolbox. It categorises recent literature and identifies trends and limitations. The survey shows as some authors have agreed that industrial applications of ML for SD have not been as popular as the reported results would suggest. The conducted investigation shows that, despite having promising findings for a variety of SD tasks, most of the studies yield vague results, in part due to the lack of comprehensive datasets in this problem domain. The paper ends with concluding remarks and suggestions for future research.

研究动机与目标

  • 分析2000年至2019年间将机器学习应用于软件开发任务的最新研究进展。
  • 识别在软件项目中用于工作量估算、风险预测和缺陷检测的最有效机器学习技术。
  • 评估学术研究中报告的高性能与软件工程中机器学习实际工业应用之间存在的差距。
  • 强调数据局限性(如数据集规模小、过时)作为模型可靠泛化的主要障碍。
  • 提出未来研究方向,包括构建更大规模的代表性数据集,以及将强化学习和深度学习等现代机器学习技术整合到软件开发工作流程中。

提出的方法

  • 对2000年至2019年期间发表的关于机器学习在软件工程中应用的同行评审论文进行了系统性文献综述。
  • 将ML技术在三个核心领域(工作量估算、风险预测、缺陷检测)中的使用情况进行分类。
  • 评估各研究中使用的性能指标,如MMRE(平均相对误差绝对值)和AUC(曲线下面积)。
  • 分析模型类型,包括监督学习(回归与分类)、神经网络、基于案例的推理以及集成方法。
  • 评估数据质量与数据集规模对不同软件开发任务中模型可靠性与泛化能力的影响。
  • 识别模型流行度趋势与研究空白,尤其关注深度学习与强化学习在软件工程中的应用情况。

实验结果

研究问题

  • RQ1在软件开发中,哪些机器学习技术在程序工作量估算方面最为有效?
  • RQ2机器学习模型在预测项目风险(如进度和预算超支)方面表现如何?
  • RQ3在缺陷预测中,最准确的机器学习方法是什么?它们如何处理类别不平衡的数据集?
  • RQ4为何软件开发中机器学习的实际工业采用率低于学术研究结果所显示的水平?
  • RQ5当前研究中的主要局限性是什么,特别是关于数据集质量与代表性方面?

主要发现

  • 监督学习模型,尤其是随机森林和支持向量机,在缺陷预测与风险估算方面持续优于传统模型。
  • 神经网络,特别是级联相关神经网络,在工作量估算方面相比经典回归模型表现出更高的准确性。
  • 基于案例的推理在数据有限的情况下也能实现高精度,因此适用于数据稀缺环境下的工作量估算。
  • 尽管学术研究结果表现强劲,但工业界采用率仍然较低——63%的敏捷开发人员仍依赖规划德州扑克(Planning Poker),38%使用专家估算。
  • 缺乏大规模、及时更新且具有代表性的数据集,是阻碍模型可靠泛化与工业部署的主要障碍。
  • 强化学习与先进的深度学习架构(如卷积神经网络、循环神经网络)在软件开发任务中仍基本未被探索,表明存在显著的研究空白。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。