Optimising the software development process with artificial intelligence / José Raúl Romero, Inmaculada Medina-Bulo, Francisco Chicano, editors.

This book offers a practical introduction to the use of artificial intelligence (AI) techniques to improve and optimise 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 in...

Full description

Saved in:
Bibliographic Details
Other Authors: Romero, José Raúl, Medina-Bulo, Inmaculada, Chicano, Francisco
Format: eBook
Language:English
Published: Singapore : Springer, 2023.
Series:Natural computing series.
Subjects:
Online Access:Click for online access
Table of Contents:
  • Intro
  • Foreword
  • Preface
  • Acknowledgment
  • Contents
  • Contributors
  • 1 Introduction
  • 1.1 Introduction
  • 1.2 The Rise of Artificial Intelligence
  • 1.3 AI4SE: Artificial Intelligence for Software Engineering
  • 1.4 Organisation of This Book
  • 1.4.1 AI for the Software Development Process
  • 1.4.2 Background on Metaheuristics and Machine Learning
  • References
  • Part I Planning and Analysis
  • 2 Artificial Intelligence in Software Project Management
  • 2.1 Introduction
  • 2.2 Software Project Scheduling (SPS)
  • 2.2.1 AI Approaches for SPS
  • 2.2.2 Running an AI Algorithm for SPS
  • 2.3 Software Effort Estimation (SEE)
  • 2.3.1 AI Approaches for SEE
  • 2.3.2 Running an AI Algorithm for SEE
  • 2.4 Conclusion
  • References
  • 3 Requirements Engineering
  • 3.1 Introduction
  • 3.2 Requirements Engineering
  • 3.3 Use Case About Requirements Elicitation
  • 3.3.1 The Problem of Requirements Elicitation from User Feedback
  • 3.3.2 A Solution to Requirements Elicitation Based on NLP Techniques
  • 3.3.3 Identifying Speech Acts
  • 3.3.4 Training a Classifier
  • 3.3.5 Applying on Two Case Studies
  • 3.3.6 Discussion
  • 3.4 Use Case About Requirements Prioritisation
  • 3.4.1 The Problem of Requirements Prioritisation Using User Feedback
  • 3.4.2 A Solution to Requirements Prioritisation Based on Genetic Algorithms
  • 3.4.3 Applying the Prioritisation Method
  • 3.4.4 Discussion
  • 3.5 The Two Use Cases in a Requirements Management Process
  • 3.6 Discussion
  • 3.7 Conclusions
  • References
  • 4 Leveraging Artificial Intelligence for Model-based Software Analysis and Design
  • 4.1 Introduction
  • 4.2 Background
  • 4.2.1 Model-Driven Engineering: Models, Meta-models, and Model Transformations
  • 4.2.2 Running Example
  • 4.2.3 Selected Applications of AI for Model-Based Engineering Problems
  • 4.3 Optimizing Models with AI Techniques: Two Encodings for the Modularization Case
  • 4.3.1 Model-based versus Transformation-based Encodings: An Overview
  • 4.3.2 Model-based Approach
  • 4.3.3 Transformation-based Approach
  • 4.3.4 Synopsis
  • 4.4 Conclusion and Outlook
  • References
  • Part II Development and Deployment
  • 5 Statistical Models and Machine Learning to Advance Code Completion: Are We There Yet?
  • 5.1 Introduction
  • 5.2 Code Completion with Software Mining
  • 5.2.1 Frequent Pairs or Sets as Code Patterns
  • 5.2.2 Graphs of Code Elements as Code Patterns
  • 5.2.3 Leveraging Editing History for Code Completion
  • 5.2.4 API Code Recommendation Using Statistical Learning from Fine-Grained Changes
  • 5.3 Code Completion with Statistical Language Models
  • 5.3.1 N-Gram Language Model
  • 5.3.2 Lexical Code Tokens and Sequences
  • 5.3.3 Lexical N-Gram Model for Source Code
  • 5.3.4 Semantic n-Gram Language Model for Source Code
  • 5.3.5 Code Suggestion with Semantic N-Gram Language Model
  • 5.3.6 Graph-Based Statistical Language Model
  • 5.4 Deep Learning for Code Completion