The field of artificial intelligence (AI) is witnessing a recent upsurge in research, tools development, and deployment of applications. Multiple software companies are shifting their focus to developing intelligent systems; and many others are deploying AI paradigms to their existing processes. In parallel, the academic research community is injecting AI paradigms to provide solutions to traditional engineering problems. Similarly, AI has evidently been proved useful to software engineering (SE). When one observes the SE phases (requirements, design, development, testing, release, and maintenance), it becomes clear that multiple AI paradigms (such as neural networks, machine learning, knowledge-based systems, natural language processing) could be applied to improve the process and eliminate many of the major challenges that the SE field has been facing. This survey chapter is a review of the most commonplace methods of AI applied to SE. The review covers methods between years 1975-2017, for the requirements phase, 46 major AI-driven methods are found, 19 for design, 15 for development, 68 for testing, and 15 for release and maintenance. Furthermore, the purpose of this chapter is threefold; firstly, to answer the following questions: is there sufficient intelligence in the SE lifecycle? What does applying AI to SE entail? Secondly, to measure, formulize, and evaluate the overlap of SE phases and AI disciplines. Lastly, this chapter aims to provide serious questions to challenging the current conventional wisdom (i.e., status quo) of the state-of-the-art, craft a call for action, and to redefine the path forward.
翻译:人工智能领域(AI)最近出现了研究、工具开发和应用的激增。多家软件公司正在将其重点转向开发智能系统;其他许多公司正在将AI范式用于现有进程。与此同时,学术研究界正在注入AI范式,为传统工程问题提供解决方案。同样,人工智能领域显然被证明对软件工程(SE)有用。当人们观察SE阶段(需求、设计、开发、测试、发布和维护)时,可以明显地看到,可以应用多种AI范式(如神经网络、机器学习、知识型系统、自然语言处理)来改进过程,消除SE领域面临的许多主要挑战。本调查章节是对适用于SE领域最常用的AI方法的审查。审查涵盖1975至2017年之间对要求阶段采用的方法,发现46种主要的AI驱动方法,19种用于设计,15种用于开发,68种用于测试,15种用于释放和维护。此外,本章的目的是三重的;首先,回答下列问题:在SEE周期中有足够的智能,最后是SEE的阶段,为SEA的严肃的阶段提供。