AI-based systems are software systems with functionalities enabled by at least one AI component (e.g., for image- and speech-recognition, and autonomous driving). AI-based systems are becoming pervasive in society due to advances in AI. However, there is limited synthesized knowledge on Software Engineering (SE) approaches for building, operating, and maintaining AI-based systems. To collect and analyze state-of-the-art knowledge about SE for AI-based systems, we conducted a systematic mapping study. We considered 248 studies published between January 2010 and March 2020. SE for AI-based systems is an emerging research area, where more than 2/3 of the studies have been published since 2018. The most studied properties of AI-based systems are dependability and safety. We identified multiple SE approaches for AI-based systems, which we classified according to the SWEBOK areas. Studies related to software testing and software quality are very prevalent, while areas like software maintenance seem neglected. Data-related issues are the most recurrent challenges. Our results are valuable for: researchers, to quickly understand the state of the art and learn which topics need more research; practitioners, to learn about the approaches and challenges that SE entails for AI-based systems; and, educators, to bridge the gap among SE and AI in their curricula.
翻译:以AI为基础的系统是软件系统,其功能至少有一个AI的组成部分(例如,图像和语音识别,以及自主驱动)。 AI系统由于AI系统的进步,在社会上越来越普遍。然而,关于软件工程(SE)的建筑、运行和维护AI系统的综合知识有限。为了收集和分析基于AI系统的SE最新知识,我们开展了一项系统的绘图研究。我们考虑了2010年1月至2020年3月期间公布的248项研究。AI系统的SE是一个新兴研究领域,2018年以来已经公布了超过2/3的研究。AI系统最受研究的特性是可依赖性和安全性。我们根据SWEBOK领域分类的基于AI系统的系统,我们确定了多种SE方法。与软件测试和软件质量有关的研究非常普遍,而软件维护等领域似乎被忽视。与数据有关的问题是最经常出现的挑战。我们的成果对研究人员来说很有价值:快速了解艺术状况,并学习哪些专题需要更多研究;从业人员在SEA系统中学习SE至AI系统所需的方法和挑战;在SE系统中学习SE与AI系统之间的桥梁。