重磅!基于深度学习的软件工程:进展、挑战和机遇

学术   2024-09-25 15:36   北京  

研究团队

张路,姜艳杰:北京大学

陈湘萍,黄袁:中山大学

胡星:浙江大学

江贺,李晓晨:大连理工大学

计卫星,刘博,刘辉:北京理工大学

蒋炎岩,王加益,杨已彪,周毓明:南京大学

连小利,孙海龙,石琳,张莉,杨艺欣:北京航空航天大学

孟国柱:中国科学院信息工程研究所

彭鑫,王翀:复旦大学

王博:北京交通大学

王甜甜: 哈尔滨工业大学

玄跻峰:武汉大学

夏鑫:华为公司


文章下载

Xiangping CHEN, Xing HU, Yuan HUANG, et alDeep Learning-based Software Engineering: Progress, Challenges, and Opportunities. Sci China Inf Sci, 2024,doi:10.1007/s11432-023-4127-5



研究意义

近年来,研究人员在深度学习技术方面取得了显著进展,这大大推动了其他研究领域的发展,例如自然语言处理、图像处理、语音识别和软件工程。各种深度学习技术已成功应用于软件工程任务,如代码生成、软件重构和故障定位,同时学者们也在软件工程领域重要的会议和期刊上发表了多篇论文,展示了深度学习技术在各种软件工程任务中的重要作用。然而,尽管一些综述文章提供了深度学习技术在软件工程中的整体应用图景,但它们更多地关注哪些深度学习技术在软件工程任务中得到了应用。目前,我们仍然缺乏综述文章来解释基于深度学习技术的软件工程各子领域的进展,以及各个子领域面临的挑战和机遇。

本文工作

为了解决上述问题,我们收集了2000-2023年间在软件工程和人工智能相关的35个会议和22个期刊上发表的文章,首次针对基于深度学习的软件工程进行了任务导向的调研。调研涵盖了深受深度学习技术影响,并贯穿软件开发和维护整个生命周期的十二个主要软件工程子领域,包括需求工程、代码生成、代码检索、代码摘要、软件重构、代码克隆检测、缺陷预测、缺陷定位、缺陷修复、缺陷报告管理以及开发者协作等。
  • 需求工程:包括需求获取、需求生成、需求分析、需求质量检测、需求分类和需求可追溯性。
  • 代码生成:包括代码补全、代码生成和代码摘要。

  • 代码搜索:包括基于自然语言查询的代码搜索和代码到代码搜索。

  • 软件重构:包括代码异味检测和重构建议。

  • 代码克隆检测:包括源代码克隆检测和跨语言代码克隆检测。

  • 缺陷预测:包括项目内缺陷预测和跨项目缺陷预测。

  • 缺陷定位:包括基于测试用例的缺陷定位和基于代码更改的缺陷定位。

  • 缺陷修复:包括编译错误修复、运行时错误修复和特定领域错误修复。

  • 缺陷报告管理:包括缺陷报告优化、重复缺陷检测、缺陷分配、缺陷严重性/优先级预测、缺陷修复时间预测、缺陷摘要和缺陷定位。

  • 开发者协作:包括开发者专业知识分析、智能任务分配和开发团队组建。

主要发现

根据我们对深度学习技术在软件工程各个子领域的调研,我们发现深度学习技术已广泛应用于软件工程的各个方面,并取得了令人瞩目的成就。这些成果表明,深度学习技术在软件工程中具有巨大的潜力,并有望进一步提升。然而,在基于深度学习的软件工程能够充分发挥其潜能之前,仍需克服一系列关键挑战:首先,大多数软件工程子领域面临的主要挑战是获取高质量的训练数据;其次,深度学习模型的可解释性也是一个普遍存在的难题;最后,开发能够跨不同编程语言通用的深度学习模型也是一项巨大挑战。

未来研究方向

  • 数据增强和数据收集:研究如何有效地增强数据集,并开发新的数据收集方法。

  • 可解释性:研究如何提高深度学习模型的可解释性。

  • 跨语言泛化:研究如何提高深度学习模型的跨语言泛化能力。

  • 新的应用领域:探索深度学习在软件工程其他子领域的应用。

  • 新的评估指标:研究新的评估指标,以更好地衡量深度学习模型在软件工程中的应用效果。

深度学习在软件工程中的应用前景广阔,但仍面临一些挑战。通过解决这些挑战,深度学习有望在未来为软件工程带来革命性的变革。










中国科学杂志社
《中国科学》杂志社是国内外较具有影响力的科技期刊出版机构,目前主要产品包括《中国科学》系列、《科学通报》、《国家科学评论》、《国家科学进展》、《能源化学》和《医学+》等22种科技期刊,旨在见证中国科学发展,促进国际学术交流。
 最新文章