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会议与期刊,而且软件工程会议中多个专题研讨会与合办会议也涵盖ML主题。与此同时,研究人员与实践者已揭示机器学习面临特定挑战与陷阱。研究表明,基于ML的系统具有不同于传统SE的开发流程,这同样揭示了ML应用的部分挑战。为缓解已识别的挑战与陷阱,灰色与白色文献基于自身经验聚焦于特定领域(如生物力学)提出了系列建议,但据我们所知,目前尚无针对SE社区的指导准则。本论文旨在通过回答研究问题填补这一空白——通过分析实践来源(例如问答社区及既往研究),理解SE社区实践者与研究人员所使用和探讨的实践方法,最终从SE视角呈现一套实践体系。