Use of Artificial Intelligence in Software Development Life Cycle: A state of the Art Review

Bhagyashree W. Sorte, Pooja P. Joshi, Vandana S. Jagtap · 2015

Abstract — Artificial Intelligence (AI) is the younger field in computer science ready to accept challenges. Software engineering (SE) is the dominating industrial field. So, automating SE is the most relevant challenge today. AI has the capacity to empower SE in that way. Here in this paper we present a state of the art literature review which reveals the past and present work done for automating Software Development Life Cycle (SDLC) using AI. Keywords — Artificial Intelligence, Code Generation, Requirements Engineering, SDLC, Software Design, Software Estimation, Software Testing. I. I NTRODUCTION disciplines of artificial intelligence and software engineering have developed separately. There is not much exchange of research results between them. AI research techniques make it possible to perceive, reason and act. Research in software engineering is concerned with supporting engineers to developed better software in less period. Rech and Altoff(2008) say The disciplines of artificial intelligences and software engineering have many commonalities. Both deals with modeling real world objects from the real world like business process, expert knowledge, or process models. Now a day's several research directions of both disciplines come closer together and are beginning to build new research areas. Software agents play an important role as research objects in distributed AI(DAI) as well as in Agent Oriented Software Engineering(AOSE). Knowledge-based System(KBS) are being examine for Learning Software Organizations (LSO) as well as Knowledge Engineering(KE). Ambient intelligence(AmI) a new research area for distributed, non-intrusive, and intelligent software system both from the direction of how to build these system as well as how to designed the collaboration between system. Lastly computational intelligence(CI) plays an important role in research about software analysis or project management as well as knowledge discovery in machine learning or databases.[1] Artificial Intelligence techniques, which aim to create software systems that exhibit some form of human intelligence, have been employed to assist or automate the activities in software engineering. Software inspections are been applied with great success to detect defects in different kinds of software documents such as specifications, design, test plans, or source code by many researchers.[2] Automated software engineering is a research area which is constantly developing new methodologies and technologies. It includes toolsets and frameworks based on mathematical models (theorem provers and model checkers), requirements-driven developments and reverse engineering (design, coding, verification validation), software management (configurations and projects), and code drivers (generators, analyzers, and visualizers). In the following sections we have tried to review some research techniques to automate each phase of software development life cycle using artificial intelligence.

Read the paper · More papers on PaperTik