Background: Software Measurement (SM) is pivotal for efficient planning, scheduling, tracking, and controlling software projects, which significantly affects the success or failure of a project. Machine Learning (ML) techniques have been applied for software measurements for the past three decades. Objective: This review aims to synthesize the studies conducted from the years 1990 to 2020 to provide a broad picture of the role of machine learning in the world of software measurement. Method: The Systematic Literature Review (SLR) approach is adopted to conduct this review. Inclusion/exclusion criteria are defined to select the most relevant studies. The researcher searched the prominent databases and archives and obtained around 2310 studies, from which 108 studies were selected as primary studies, which were then summarized to accomplish the goals of this review. Results: The distinguished contribution of this review is that it covers all aspects of software measurements from the perspective of the application of machine learning techniques. It guides the software practitioners regarding the journey of software measurements to date using machine learning techniques in a single synthesized study. It further provides future guidelines for the researchers working in this field. Conclusion: Machine learning techniques have extensive applications for software measurements. Software fault prediction and software effort estimation are the most prevailing SM tasks harnessing the ML techniques. The most popular ML technique is the artificial neural network for SM. For empirical studies, NASA and promise datasets are extensively used. Over the last decade (2011-2020), SM paradigm has been shifting towards ensembles of individual ML models and deep learning models.
Read full abstract