Effort estimation is pivotal for the triumph of software development endeavors. The appropriate forecasting approach is vital for aligning software project effort estimation outcomes. This process aids in efficiently distributing resources, charting project strategies, and facilitating informed choices in IT Project Management. Machine learning, a facet of artificial intelligence (AI), is dedicated to crafting algorithms and models that empower computers to enhance their performance based on data and facilitate predictions or decision-making. This study discusses the implementation of machine learning in software development effort estimation. We collected 558 relevant papers on software effort estimation and machine learning techniques. After a quality review process, we identified 40 articles for in-depth review. We categorized machine learning techniques into supervised, unsupervised, and reinforcement learning. The results indicate that using ensemble techniques in supervised and unsupervised learning can improve the accuracy of software effort estimation. Artificial Neural Networks, Regression, K-Nearest Neighbors, Decision Trees, Random Forest, and Bootstrap Aggregation are the most commonly used methods. Ensemble techniques also aid in selecting relevant features and preprocessing data to enhance model performance. This study provides insights into implementing machine learning techniques to estimate software effort and highlights the advantages of ensemble technique.
Read full abstract