  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.
