Software engineering (SE) is a dynamic field that involves multiple phases all of which are necessary to develop sustainable software systems. Machine learning (ML), a branch of artificial intelligence (AI), has drawn a lot of attention in recent years thanks to its ability to analyze massive volumes of data and extract useful patterns from data. Several studies have focused on examining, categorising, and assessing the application of ML in SE processes. We conducted a literature review on primary studies to address this gap. The study was carried out following the objective and the research questions to explore the current state of the art in applying machine learning techniques in software engineering processes. The review identifies the key areas within software engineering where ML has been applied, including software quality assurance, software maintenance, software comprehension, and software documentation. It also highlights the specific ML techniques that have been leveraged in these domains, such as supervised learning, unsupervised learning, and deep learning. Keywords: machine learning, deep learning, software engineering, natural language processing, source code
翻译:软件工程(SE)是一个动态领域,涉及开发可持续软件系统所必需的多个阶段。机器学习(ML)作为人工智能(AI)的一个分支,因其能够分析海量数据并从中提取有用模式,近年来备受关注。已有若干研究致力于考察、分类和评估ML在SE过程中的应用。为弥补现有研究的不足,我们对相关原始研究进行了文献综述。本研究遵循既定目标与研究问题展开,旨在探索机器学习技术在软件工程过程中应用的当前最新进展。综述识别了软件工程中已应用ML的关键领域,包括软件质量保证、软件维护、软件理解与软件文档。同时,综述也强调了在这些领域中已得到应用的具体ML技术,例如监督学习、无监督学习和深度学习。关键词:机器学习,深度学习,软件工程,自然语言处理,源代码