Nowadays, machine learning (ML) is being used in software systems with multiple application fields, from medicine to software engineering (SE). On the one hand, the popularity of ML in the industry can be seen in the statistics showing its growth and adoption. On the other hand, its popularity can also be seen in research, particularly in SE, where not only have multiple studies been published in SE conferences and journals but also in the multiple workshops and co-located conferences in software engineering conferences. At the same time, researchers and practitioners have shown that machine learning has some particular challenges and pitfalls. In particular, research has shown that ML-enabled systems have a different development process than traditional SE, which also describes some of the challenges of ML applications. In order to mitigate some of the identified challenges and pitfalls, white and gray literature has proposed a set of recommendations based on their own experiences and focused on their domain (e.g., biomechanics), but for the best of our knowledge, there is no guideline focused on the SE community. This thesis aims to reduce this gap by answering research questions that help to understand the practices used and discussed by practitioners and researchers in the SE community by analyzing possible sources of practices such as question and answer communities and also previous research studies to present a set of practices with an SE perspective.
翻译:现如今,机器学习 (ML) 已经被广泛应用于多个领域的软件系统,从医学到软件工程 (SE)。一方面,ML 在工业界的流行度可以从增长和采纳的统计数据上看出来。另一方面,从研究的角度看,特别是在 SE 领域,不仅已经在 SE 会议和期刊中发表了多篇研究论文,还在软件工程会议的多个研讨会和协作会议中有所涉及。同时,研究人员和从业者表明,机器学习面临一些特殊的挑战和陷阱。特别是,研究表明,与传统的软件工程相比,ML 启用的系统具有不同的开发过程,这也描述了一些 ML 应用的挑战。为了缓解一些已识别的挑战和陷阱,白色和灰色文献提出了一套建议,基于他们自己的经验并专注于他们的领域 (如生物力学),但据我们所知,暂无针对 SE 社区的指南。本论文旨在通过回答研究问题来帮助理解 SE 社区从业者和研究人员使用和讨论的实践,并分析可能的实践来源,如问答社区和以往的研究,以便提出一个带有 SE 观点的实践集。