Machine Learning for Software Engineering: A Systematic Mapping
arXiv:2005.13299 · doi:10.1109/ACCESS.2021.3119746
Abstract
Context: The software development industry is rapidly adopting machine learning for transitioning modern day software systems towards highly intelligent and self-learning systems. However, the full potential of machine learning for improving the software engineering life cycle itself is yet to be discovered, i.e., up to what extent machine learning can help reducing the effort/complexity of software engineering and improving the quality of resulting software systems. To date, no comprehensive study exists that explores the current state-of-the-art on the adoption of machine learning across software engineering life cycle stages. Objective: This article addresses the aforementioned problem and aims to present a state-of-the-art on the growing number of uses of machine learning in software engineering. Method: We conduct a systematic mapping study on applications of machine learning to software engineering following the standard guidelines and principles of empirical software engineering. Results: This study introduces a machine learning for software engineering (MLSE) taxonomy classifying the state-of-the-art machine learning techniques according to their applicability to various software engineering life cycle stages. Overall, 227 articles were rigorously selected and analyzed as a result of this study. Conclusion: From the selected articles, we explore a variety of aspects that should be helpful to academics and practitioners alike in understanding the potential of adopting machine learning techniques during software engineering projects.
20 pages, 13 figures, under review in IST journal
References in corpus (14)
- Very Deep Convolutional Networks for Large-Scale Image Recognition
- An Introduction to Deep Reinforcement Learning
- DLFuzz: Differential Fuzzing Testing of Deep Learning Systems
- Identifying Implementation Bugs in Machine Learning based Image Classifiers using Metamorphic Testing
- SZZ Unleashed: An Open Implementation of the SZZ Algorithm -- Featuring Example Usage in a Study of Just-in-Time Bug Prediction for the Jenkins Project
- Impact of Discretization Noise of the Dependent variable on Machine Learning Classifiers in Software Engineering
- Software Testing for Machine Learning
- Dynamic Analysis of Regression Problems in Industrial Systems: Challenges and Solutions
- Feature Maps: A Comprehensible Software Representation for Design Pattern Detection
- Req2Lib: A Semantic Neural Model for Software Library Recommendation
- DARVIZ: Deep Abstract Representation, Visualization, and Verification of Deep Learning Models
- On Usefulness of the Deep-Learning-Based Bug Localization Models to Practitioners
- Automation of Android Applications Testing Using Machine Learning Activities Classification
- A Language-Agnostic Model for Semantic Source Code Labeling