𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Artificial Intelligence Methods for Software Engineering

✍ Scribed by Meir Kalech (editor), Rui Abreu (editor), Mark Last (editor)


Publisher
World Scientific Publishing Company
Year
2021
Tongue
English
Leaves
457
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Software is an integral part of our lives today. Modern software systems are highly complex and often pose new challenges in different aspects of Software Engineering (SE).Artificial Intelligence (AI) is a growing field in computer science that has been proven effective in applying and developing AI techniques to address various SE challenges.This unique compendium covers applications of state-of-the-art AI techniques to the key areas of SE (design, development, debugging, testing, etc).All the materials presented are up-to-date. This reference text will benefit researchers, academics, professionals, and postgraduate students in AI, machine learning and software engineering.Related Link(s)

✦ Table of Contents


Contents
Preface
AI for Software Design
1. Interweaving AI and Behavioral Programming Towards Better Programming Environments
1.1 Introduction
1.2 Preliminaries
1.2.1 Behavioral and Scenario-Based Programming
1.2.2 Model-Driven Engineering
1.2.3 Search-Based Software Engineering (SBSE)
1.2.4 Evolutionary Computation
1.3 The Proposed Approach
1.4 Sandboxing
1.5 State Space Exploration
1.6 Heuristics and Smart Exploration
1.7 Examples
1.7.1 StarCraft
1.7.2 Robocode
1.7.3 RoboSoccer
1.8 Conclusions
References
2. AI Techniques for Software Requirements Prioritization
2.1 Introduction
2.2 Early Requirements Engineering
2.3 Minimum Viable Products
2.4 Basic Release Planning
2.5 Integrated Release Planning
2.6 Stakeholder Recommendation
2.7 Research Issues
2.8 Conclusions
Acknowledgment
References
Agent-Based Software Programming
3. Social Commitments for Engineering Interaction in Distributed Systems
3.1 Introduction
3.2 Background on Goal Distribution and Coordination
3.3 Background on Social Commitments
3.4 Business Artifacts with Social Commitments
3.5 Patterns for Programming Agents with Social Relationships
3.6 The Hiring Process Scenario
3.7 Conclusions
References
4. Intelligent Agents are More Complex: Initial Empirical Findings
4.1 Introduction
4.2 Background
4.3 Software Project Data Collection and Curation
4.3.1 Data Sources
4.3.2 Automatic Data Harvesting
4.3.3 The Measurement Pipeline
4.4 Statistical Analysis
4.5 Machine Learning Analysis
4.6 Discussion
4.7 The Big Picture and Future Directions
References
AI for Software Development
5. Sequence-to-Sequence Learning for Automated Software Artifact Generation
5.1 Introduction
5.2 Preliminary Knowledge of Seq2Seq Learning
5.2.1 Recurrent Neural Network (RNN)
5.2.2 Encoder-Decoder Model
5.2.3 Attention Mechanism
5.2.4 Evaluation Metrics for Software Artifact Generation
5.3 Automated Generation of Code Comments
5.3.1 Problem and Challenges
5.3.2 The Seq2Seq Model: Hybrid-DeepCom
5.3.2.1 Capture Syntactic Information of Source Code
5.3.2.2 Fuse Lexical and Syntactic Information
5.3.2.3 Reduce OOV tokens
5.3.3 Dataset
5.3.4 Evaluation
5.4 Automated Generation of Pull Request Descriptions
5.4.1 Problem and Challenges
5.4.2 The Seq2Seq Model: PRSummarizer
5.4.2.1 Pointer Generator
5.4.2.2 RL Loss
5.4.3 Dataset
5.4.4 Evaluation
5.5 Automated Generation of App Review Responses
5.5.1 Problem and Characteristics
5.5.2 The Seq2Seq Model: RRGen
5.5.2.1 Integrating High-Level Attributes
5.5.2.2 Integrating Keywords
5.5.3 Dataset
5.5.4 Evaluation
5.6 Case Study Comparison
5.7 Challenges and Opportunities
5.7.1 Challenges
5.7.2 Opportunities
5.8 Summary
References
6. Machine Learning to Support Code Reviews in Continuous Integration
6.1 Introduction
6.2 Code review in CI
6.3 Code analysis toolchain
6.4 Code extraction
6.5 Feature extraction
6.5.1 Bag-of-words analysis of source code
6.5.2 Sentiment analysis of review comments
6.6 Model development
6.7 Making a recommendation
6.8 Visualization of the results
6.9 Full example
6.10 Using other techniques in the workow
6.11 Related work
6.12 Conclusions
References
7. Software Fusion: Deep Design Learning with Deterministic Laplacian Verification
7.1 Introduction
7.1.1 Software Design Generation instead of Lower-Abstraction Assets
7.1.2 Experimental Results Obtained
7.1.3 Chapter Organization
7.2 Fragility of Lower-Abstraction Software Deep Learning
7.2.1 Lower Abstraction Levels of Software Generation
7.2.2 Fault Lines of Lower Software Abstractions
7.3 Robustness of Software Fusion Design
7.3.1 Conceptual Integrity for Software Design
7.3.2 Modularity Matrix from UML Class Diagram
7.3.3 Bipartite Graph from the Modularity Matrix
7.3.4 Deterministic Spectral Verification of Software Design Graph
7.3.5 Closing the Design Cycle: Modularized Class Diagram
7.4 Flexibility of Graphs’ Deep Learning
7.4.1 Graph Convolutional Networks
7.4.2 Graph Auto-Encoders
7.5 Software Fusion for Software Design Graphs: Case Studies
7.5.1 Graph Deep Learning β€” Synthetic Data: Experiments
7.5.2 Graph Deep Learning β€” Synthetic Data: Results
7.5.3 Command Design Pattern β€” Laplacian Spectral Verification: Experiments
7.5.4 Command Design Pattern β€” Laplacian Spectral Verification: Results
7.6 Related Work
7.6.1 Active Learning
7.6.2 Graphs Deep Learning Alternatives
7.6.3 Theoretical Approaches for Neural Network Architectures
7.6.4 Other Possible Applications
7.7 Discussion
7.7.1 Preserving Conceptual Integrity: Between Software Concepts and Algebra
7.7.2 The Ultimate Meaning of Software Fusion
7.7.3 Possible Obstacles to Complete Automation
7.7.4 Future Work
7.7.5 Main Contribution
References
8. Using Artificial Intelligence for Auto-Generating Software for Cyber-Physical Applications
8.1 Introduction
8.2 Related Work
8.2.1 Model-Based Methods
8.2.2 Learning-Based Methods
8.2.3 Fault Trees
8.3 Model-Based Software Engineering
8.3.1 MBSE Languages
8.3.2 Traditional MBSE Process
8.3.3 CPS Model Representation
8.3.4 Model Development and Validation
8.4 Running Example
8.4.1 Process-Control Example: Three Tank System
8.4.2 Requirements
8.4.3 Model Construction
8.4.3.1 Approach
8.4.3.2 Modeling Language: ODEs
8.5 AI-Based Framework for MBSE Task
8.5.1 Data-Driven MBSE
8.5.2 Optimization-Based MBSE
8.5.2.1 Model Accuracy
8.5.2.2 Model Complexity
8.5.2.3 Model Development Cost
8.5.3 System Verification
8.6 AI-based MBSE Model Construction Methods
8.6.1 Data-Driven Approach
8.6.2 Hybrid Approach: Multi-Fidelity (Surrogate-Based) Optimization
8.6.2.1 Model-based Multi-Fidelity Approach
8.6.2.2 Data-Driven Surrogate Approach
8.6.3 Hybrid Approach: Model-Constrained Optimization
8.7 Running Example: Continued
8.7.1 Model-based Multi-Fidelity Approach
8.7.2 Data-Driven Surrogate Approach
8.8 MBSE Trade-O Framework
8.8.1 Approaches Compared
8.8.2 Model Library Costs
8.8.3 Data-Driven Model Costs
8.8.4 Comparative Analysis
8.9 Empirical Modeling Cost Comparison
8.9.1 Empirical Analysis
8.9.2 Data
8.9.2.1 Baseline: Model-Based Approach
8.9.2.2 Data-Driven Approach
8.9.2.3 Model-Based Hybrid Approach
8.9.2.4 Data-Driven Hybrid Approach
8.9.3 Results and Discussion
8.9.3.1 Accuracy
8.9.3.2 Time
8.9.3.3 Combined (Weighted) Objective
8.9.4 Discussion of Trade-Offs
8.10 Conclusion
References
AI for Software Testing
9. On the Application of Machine Learning in Software Testing
9.1 Introduction
9.2 Background
9.2.1 Software testing
9.2.2 Machine Learning
9.3 Applications of Machine Learning in software testing
9.3.1 Machine Learning for software fault prediction
9.3.2 Machine Learning for test oracles automation
9.3.3 Machine learning for test cases generation
9.3.4 Machine learning for test suite reduction, prioritization and evaluation
9.3.5 Other tasks
9.3.5.1 Software Quality Prediction
9.3.5.2 Test cost estimation
9.4 Conclusions
References
10. Creating Test Oracles Using Machine Learning Techniques
10.1 Introduction
10.2 Background on Test Oracles
10.2.1 Test Oracles Based on Individual Test Cases
10.2.2 Test Oracles Based on Formal Specifications
10.3 Related Work
10.4 Test Oracles Based on Machine Learning Techniques
10.4.1 Test Oracles Based on Supervised Learning Techniques
10.4.2 Test Oracles Based on Semi-Supervised Learning Techniques
10.4.3 Test Oracles Based on Unsupervised Learning Techniques
10.4.4 Summary and Findings
10.5 Discussion
10.6 Further Research Direction
10.6.1 Improving the Accuracy
10.6.2 Improving the Scalability
10.7 Conclusion
References
11. Intelligent Risk Based Analysis Methodology
11.1 Introduction
11.2 Motivation and Related Works
11.3 iRBA Solution
11.3.1 iRBA Unique Techniques and Elements
11.3.2 Test Case Prioritization β€” Problem Formulation, Statement and Definition
11.3.3 TCP Method Using RL β€” iRBA Vs. Non-iRBA
11.3.4 The iRBA-Reward-Functions
11.3.4.1 iRBA Reward Function β€” Test Case Passed Event
11.3.4.2 iRBA-Reward-Functions β€” New Defect Event
11.3.4.3 iRBA-Reward-Functions β€” Defect Rejected Event
11.3.4.4 iRBA-Reward-Functions β€” New Code Integration Event
11.3.4.5 iRBA-Reward-Functions β€” New Test Case Creation Event
11.3.4.6 iRBA-Reward-Functions β€” Customer Feedback or Unplanned Change Event
11.4 iRBA Benefits Demonstrations
11.4.1 Project's Cost Challenge
11.4.1.1 Become Much More Effective with Cost-Effective Manpower and Limited Resources
11.4.2 Project's Quality Challenge
11.4.2.1 Effective Use of Customer Feedback to Drive Product Quality
11.4.2.2 Risk Prioritization of Multiple Applications and Early Detection of Major Interoperability Issues
11.4.2.3 Quality Evaluation System
11.4.3 Project's Time Challenge
11.5 Industrial Project Case Study
11.6 Summary and Conclusions
11.7 Future Work
Acknowledgments
References
12. A Qualitative Reasoning Model for Software Testing, based on Combinatorial Geometry
12.1 Introduction
12.2 What the model contains
12.2.1 Conditions, Equations, Paths, Super-covectors, and Homodromies
12.2.2 Running example
12.2.3 How the model is built technically
12.3 Which mathematical results will be needed
12.3.1 Preliminaries on Oriented Matroid theory
12.3.2 Encoding regions with super-covectors
12.3.3 Super-covectors versus covectors
12.3.4 Representative of a super-covector
12.3.5 Contiguity between super-covectors
12.3.6 Border of a super-covector
12.4 How the model is used
12.4.1 Relations between Homodromies and the Envision Graph
12.4.2 Order-of-Magnitude Reasoning and Qualitative Execution
12.4.3 Boundary Test Data Generation
12.5 Conclusion
Acknowledgments
References
AI for Software Debugging
13. AI-based Spreadsheet Debugging
13.1 Introduction
13.2 Spreadsheet Debugging
13.3 Heuristic and statistical approaches
13.3.1 Heuristic-based approaches
13.3.2 Statistics-based approaches
13.3.3 Empirical evaluations and limitations
13.4 Model-based diagnosis techniques
13.4.1 Basic definitions
13.4.2 Model types
13.4.3 Solving mechanism
13.4.4 Tool support
13.4.5 Empirical evaluations and limitations
13.5 Benchmarks
13.6 Summary and Outlook
Acknowledgments
References
14. Artificial Intelligence Methods for Software Debugging
14.1 Introduction
14.2 AI in the Debugging Life Cycle
14.3 Fault Detection Techniques
14.4 Fault Localization Techniques
14.4.1 Model-based fault localization
14.4.2 Spectrum-based fault localization
14.4.3 Machine-learning based fault localization
14.4.3.1 Learning for fault localization
14.4.3.2 Learning for multiple-fault localization
14.4.3.3 Learning to Rank
14.4.3.4 Learning to prioritize issues
14.4.3.5 Method Selection
14.4.4 Automated oracles
14.4.5 Summary of Techniques
14.5 Outlook
References
Index


πŸ“œ SIMILAR VOLUMES


Artificial Intelligence Methods for Soft
✍ Meir Kalech (editor), Rui Abreu (editor), Mark Last (editor) πŸ“‚ Library πŸ“… 2021 πŸ› World Scientific Publishing Company 🌐 English

<span>Software is an integral part of our lives today. Modern software systems are highly complex and often pose new challenges in different aspects of Software Engineering (SE).Artificial Intelligence (AI) is a growing field in computer science that has been proven effective in applying and develop

Artificial Intelligence Methods In Softw
✍ Mark Last; Abraham Kandel; Horst Bunke πŸ“‚ Library πŸ“… 2004 πŸ› World Scientific Publishing Company 🌐 English

An inadequate infrastructure for software testing is causing major losses to the world economy. The characteristics of software quality problems are quite similar to other tasks successfully tackled by artificial intelligence techniques. The aims of this book are to present state-of-the-art applicat

Readings in artificial intelligence and
✍ Charles Rich; Richard C Waters πŸ“‚ Library πŸ“… 1986 πŸ› Morgan Kaufmann, Elsevier Inc 🌐 English

Readings in Artificial Intelligence and Software Engineering covers the main techniques and application of artificial intelligence and software engineering. The ultimate goal of artificial intelligence applied to software engineering is automatic programming. Automatic programming would allow a user

Algorithmic methods for artificial intel
✍ M Griffiths; Carol Palissier πŸ“‚ Library πŸ“… 1987 πŸ› London, Kogan Page 🌐 English

Simulation-Based Engineering and Science (SBE&S) cuts across disciplines, showing tremendous promise in areas from storm prediction and climate modeling to understanding the brain and the behavior of numerous other complex systems. In this groundbreaking volume, nine distinguished leaders assess th

Advances in Artificial Intelligence, Sof
✍ Tareq Z. Ahram πŸ“‚ Library πŸ“… 2019 πŸ› Springer International Publishing 🌐 English

<p>This book focuses on emerging issues following the integration of artificial intelligence systems in our daily lives. It focuses on the cognitive, visual, social and analytical aspects of computing and intelligent technologies, highlighting ways to improve technology acceptance, effectiveness, an

Civil Liability for Artificial Intellige
✍ Mark A. Geistfeld , Ernst Karner , Bernhard A. Koch, Christiane Wendehorst πŸ“‚ Library πŸ“… 2023 πŸ› De Gruyter 🌐 English

Initiated by the European Commission, the first study published in this volume analyses the largely unresolved question as to how damage caused by artificial intelligence (AI) systems is allocated by the rules of tortious liability currently in force in the Member States of the European Union and in