Abstract-Machine learning (ML) has demonstrated practical impact in a variety of application domains. Software engineering is a fertile domain where ML is helping in automating different tasks. In this paper, our focus is the intersection of software requirement engineering (RE) and ML. To obtain an overview of how ML is helping RE and the research trends in this area, we have surveyed a large number of research articles. We found that the impact of ML can be observed in requirement elicitation, analysis and specification, validation and management. Furthermore, in these categories, we discuss the specific problem solved by ML, the features and ML algorithms used as well as datasets, when available. We outline lessons learned and envision possible future directions for the domain. Index Terms-Requirements Engineering, Machine learning, State of the art, Overview I. INTRODUCTION 1 Machine learning algorithms have been shown to have considerable practical importance in many application domains. This is especially true of domains where large databases are available and a need for exploring some kind of consistency exists or, domains where a program needs to adapt itself to changes [56] . Requirements engineering is a critical part of software engineering and it seems appropriate to use machine learning methods for requirements engineering tasks. Because requirements specification documents are mainly given in natural language, ML can be useful by emulating human processing. This paper aims to present a survey of how ML benefits existing RE approaches. More precisely, we pursue the following research questions: RQ1: What is the current state of the practice in ML for RE? RQ2: What learning methods are used in ML for RE? RQ3: Which are the challenges in ML for RE? RQ4: Is ML improving the state of the art of RE? To reply to these research questions, we have performed a literature review, split into data preparation, data collection, and data analysis phase. First, a search string was prepared based on the research questions, then a search was performed over a predefined set of databases and all identified studies were assessed by means of title and abstract. Our literature review is not meant to be an exhaustive study of the fieldrather we are offering a snapshot of the current state-of-theart by borrowing some techniques from Systematic Literature Reviewing. The major contributions of this article are as follows: • We provide an overview of the current state of the art of some of the challenges RE faces and that may be handled through ML. We focus on two important aspects: -Providing an overview of the ML problem categories (classification, regression, clustering, etc.) in use for the support of RE tasks (elicitation, analysis, validation and management). -Providing an overview of the common ML models (decision tree, K-Nearest Neighbors, Naive Bayesian, etc.) for tackling RE problems and the data sets if available. • We analyse the literature to discover trends and lessons on the use of ML in RE. The paper is organized as follows. The rest of this section provides background information on ML and RE required to understand the remaining of the paper. Section II provides an overview of RE tasks where ML has been used. In section III we summarize the major findings of our study. Finally, in section IV we state the threats to the validity of our work and section V concludes the paper. Machine-Learning (ML) [35] is a range of algorithms to approximate discover patterns in data. Historically, models and heuristics are human-built exhaustive prescriptions of how a system should behave. ML is grounded on different premises: rather than relying on humans to input all the possible cases the system can handle, the field attempts to extrapolate patterns from a representative set of examples that illustrates expected behaviors. The way in which a learning algorithm operates attempts to emulate the way in which humans learn: from a set of examples, a general model for a behavior is induced. Many learning algorithms exist, based on different visions of how learning happens in practice [13] . All these algorithms have in common the notion of features.
An overview on the automation of various tasks in the overall requirement engineering phase is presented in REF .
A Bird's Eye View on Requirements Engineering and Machine Learning
2018 25th Asia-Pacific Software Engineering Conference (APSEC)
2018 25th Asia-Pacific Software Engineering Conference (APSEC)
Computer Science