Skip to main content
QUICK REVIEW

[论文解读] Synergy between Machine/Deep Learning and Software Engineering: How Far Are We?

Simin Wang, LiGuo Huang|arXiv (Cornell University)|Aug 12, 2020
Software Engineering Research参考文献 155被引用 15
一句话总结

本文对2009至2018年间906篇与机器学习/深度学习相关的软件工程研究进行了为期10年的系统文献综述,识别出协同效应、可重复性挑战以及影响可再现性的关键因素。研究提出一个三阶段路线图,以促进机器学习/深度学习研究成果向工业实践的转化,并概述了将深度学习整合到软件工程工作流中的五个独特挑战。

ABSTRACT

Since 2009, the deep learning revolution, which was triggered by the introduction of ImageNet, has stimulated the synergy between Machine Learning (ML)/Deep Learning (DL) and Software Engineering (SE). Meanwhile, critical reviews have emerged that suggest that ML/DL should be used cautiously. To improve the quality (especially the applicability and generalizability) of ML/DL-related SE studies, and to stimulate and enhance future collaborations between SE/AI researchers and industry practitioners, we conducted a 10-year Systematic Literature Review (SLR) on 906 ML/DL-related SE papers published between 2009 and 2018. Our trend analysis demonstrated the mutual impacts that ML/DL and SE have had on each other. At the same time, however, we also observed a paucity of replicable and reproducible ML/DL-related SE studies and identified five factors that influence their replicability and reproducibility. To improve the applicability and generalizability of research results, we analyzed what ingredients in a study would facilitate an understanding of why a ML/DL technique was selected for a specific SE problem. In addition, we identified the unique trends of impacts of DL models on SE tasks, as well as five unique challenges that needed to be met in order to better leverage DL to improve the productivity of SE tasks. Finally, we outlined a road-map that we believe can facilitate the transfer of ML/DL-based SE research results into real-world industry practices.

研究动机与目标

  • 评估2009至2018年这10年间机器学习/深度学习与软件工程之间的相互影响。
  • 识别削弱与机器学习/深度学习相关的软件工程研究可重复性和可再现性的因素。
  • 分析软件工程研究中选择机器学习/深度学习技术的依据,并提升方法论的透明度。
  • 研究深度学习对软件工程任务的独特影响与挑战。
  • 提出一个三阶段路线图,以指导基于机器学习/深度学习的软件工程研究成果向现实世界工业应用的转化。

提出的方法

  • 对2009至2018年间发表的906篇与机器学习/深度学习相关的软件工程论文进行了系统文献综述(SLR)。
  • 通过趋势分析评估机器学习/深度学习与软件工程在七个软件工程活动中的相互影响。
  • 通过研究设计与报告实践的定性分析,识别出影响可重复性的五个关键因素。
  • 对79项深度学习研究进行分析,以揭示深度学习与软件工程任务整合中的独特趋势与挑战。
  • 提出一个三阶段路线图,以指导学术研究向工业软件工程实践的技术转移。
  • 通过提取并分析研究中报告的选择标准,评估机器学习/深度学习技术选择的依据。

实验结果

研究问题

  • RQ1过去十年中,机器学习/深度学习与软件工程之间的关键趋势及相互影响是什么?
  • RQ2哪些因素阻碍了与机器学习/深度学习相关的软件工程研究的可重复性和可再现性?
  • RQ3为何许多软件工程研究中对机器学习/深度学习技术的选择未能超越性能指标进行充分论证?
  • RQ4在将深度学习模型整合到软件工程任务时,会引发哪些独特的挑战?
  • RQ5如何有效将基于机器学习/深度学习的软件工程研究成果转化为工业软件开发实践?

主要发现

  • 2009至2018年间,机器学习/深度学习在涵盖七个软件工程活动的60项不同软件工程任务中应用的研究兴趣迅速增长。
  • 观察到大量研究缺乏可重复性和可再现性,五个关键因素——数据可得性、模型透明度、超参数报告、评估指标和代码共享——显著影响可再现性。
  • 许多研究未能在性能指标之外提供充分的技术选择依据,缺乏关于问题特征、数据类型或任务约束的详细论证。
  • 发现三个关键要素——问题背景、数据模态和模型可解释性——有助于提升对软件工程应用中技术选择的理解。
  • 深度学习模型对软件工程任务产生了独特影响,尤其在代码生成、缺陷预测和API推荐方面,但也带来了五个独特挑战:数据依赖性、模型可解释性、跨项目泛化能力、与现有软件工程工具的集成,以及评估一致性。
  • 仅有15项研究涉及对机器学习/深度学习系统的软件工程测试与调试,表明将软件工程实践应用于人工智能系统仍处于早期发展阶段。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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