An increasingly popular set of techniques adopted by software engineering (SE) researchers to automate development tasks are those rooted in the concept of Deep Learning (DL). The popularity of such techniques largely stems from their automated feature engineering capabilities, which aid in modeling software artifacts. However, due to the rapid pace at which DL techniques have been adopted, it is difficult to distill the current successes, failures, and opportunities of the current research landscape. In an effort to bring clarity to this crosscutting area of work, from its modern inception to the present, this paper presents a systematic literature review of research at the intersection of SE & DL. The review canvases work appearing in the most prominent SE and DL conferences and journals and spans 128 papers across 23 unique SE tasks. We center our analysis around the components of learning, a set of principles that govern the application of machine learning techniques (ML) to a given problem domain, discussing several aspects of the surveyed work at a granular level. The end result of our analysis is a research roadmap that both delineates the foundations of DL techniques applied to SE research, and highlights likely areas of fertile exploration for the future.
翻译:软件工程(SE)研究人员为将发展任务自动化而采用的一套日益普及的技术是深造概念中根深蒂固的技术。这些技术的普及主要来自其自动化地物工程能力,这些技术有助于软件文物的建模。然而,由于采用DL技术的速度很快,很难总结目前研究领域的成功、失败和机会。为了澄清这一从现代开始到现在的交叉工作领域,本文件对SE & DL交叉点的研究进行了系统化的文献审查。在最著名的SE和DL会议和期刊中出现的审查画布的工作覆盖了128篇论文,覆盖了23项独特的SE任务。我们集中分析学习的组成部分,这是一套指导将机器学习技术(ML)应用于特定问题领域的一套原则,讨论了在颗粒层一级调查工作的若干方面。我们分析的最终结果是一份研究路线图,其中既描述了DL技术应用于SE研究的基础,又突出了未来可能肥沃的勘探领域。