Sign up
Forgot password?
FAQ: Login

Romero J.R., Medina-Bulo I., Chicano F. Optimising the Software Development Process with Artificial Intelligence

  • pdf file
  • size 8,88 MB
  • added by
  • info modified
Romero J.R., Medina-Bulo I., Chicano F. Optimising the Software Development Process with Artificial Intelligence
Springer, 2023. — 349 p.
This book offers a practical introduction to the use of Artificial Intelligence (AI) techniques to improve and optimize the various phases of the software development process, from the initial project planning to the latest deployment. All chapters were written by leading experts in the field and include practical and reproducible examples.
A software development project is complex and poses constant challenges to the professionals who supervise, plan, design, analyze, develop, and maintain it. When we think of a software project, we must think of all its phases and activities: both those phases referring to the planning and control of the engineering project, and in phases of the development process itself, from the specification of the requirements and the architectural design to the testing, refactoring, and maintenance of the software.
In recent years, there has been a clear interest in automating and providing support to professionals, to reduce the effort, time, cost, and risk of the different phases of a software project. To this end, initiatives related to the use of Artificial Intelligence (AI) for optimizing these tasks have been tested for decades, from expert systems to search and optimization techniques to machine learning. The editors of this volume have been working for more than 20 years in software engineering (SE), including the application of AI techniques for the optimization of the different phases of the software life cycle. And we must recognize that during this time great advances have been made, but the most important comes from the industry itself, which acknowledges the need to apply techniques that improve its software engineering process and demands solutions for it. AI-enhanced software engineering or AI4SE (artificial intelligence for software engineering) was born.
An important factor is the popularisation of general-purpose tools among the developer community based on these techniques. Examples of these applications are the GitHub Copilot intelligent assistant, which had a great impact on the community by making visible and tangible the pros and cons of using AI for software development assistance. Other development assistant tools such as DeepMind AlphaCode or OpenAI Codex have also attracted the attention of professionals in this field — a field that has already been generating assistant tools in academia for some time, such as EvoSuite for the automatic generation of test suites.
The discussions generated about these tools, their internal foundations, their scope, and practicability, as well as the near future of AI4SE research and development, have motivated the need for a volume like this. With this book, we aim to provide Information Technology (IT) professionals (practitioners, developers, software engineers, or managers) as well as advanced graduate and Ph.D. students with a practical introduction to the use of AI techniques to improve and/or optimize the different phases of the software development process, from the initial project planning to the latest deployment. Notice that AI is a broad term, and the book is intended to cover it from different perspectives: optimization and search algorithms applied to software engineering (also known as Search-Based Software Engineering, SBSE), machine learning, and pattern mining in software analytics, mining software repositories (MSR), natural language processing (NPL), etc. The AI solutions for SE used throughout the book are explained in a didactic way to provide the reader with a sufficient basis for a complete understanding of its content.
Following the introductory chapter, Chapters 2-9 respectively apply AI techniques to the classic phases of the software development process: project management, requirement engineering, analysis and design, coding, cloud deployment, unit and system testing, and maintenance. Subsequently, Chapters 10 and 11 provide foundational tutorials on the AI techniques used in the preceding chapters: metaheuristics and machine learning. Given its scope and focus, the book represents a valuable resource for researchers, practitioners, and students with a basic grasp of software engineering.
  • Sign up or login using form at top of the page to download this file.
  • Sign up
Up