Metaheuristics for empirical software measurements
Somya Rakesh Goyal · 2022
Empirical software measurement is a dynamic research domain within software engineering. Measuring the software attributes during software development is crucial to ensure the successful delivery of a desired software product. It involves the measurement of multiple dynamic metrics based on software process and software product. The traditional approaches to measure the current software practices are not so appropriate due to the changing development process and increasing complexity. The changing environment requires techniques to make measurements that are adaptable to the changes. Machine learning (ML)-based techniques are prominently being deployed for measuring the software empirically. Past three decades witness the successful application of ML-based techniques for empirical measurements of software. ML is powerful enough to accurately measure the software attributes. But the synergy of ML algorithms and metaheuristic algorithm is apparently more promising in the domain of software measurement. Since 2001, metaheuristics are being fused with ML-based techniques to optimize the accuracy of the predictor based on ML. The estimation of software cost (or effort), estimation of development time (or schedule), prediction of software quality, and early detection of software anomalies are key tasks in the most popular research sector of entire field of software measurement. The vital role of metaheuristics along with ML in empirical software measurements is as follows. First, metaheuristics are used to optimize the hyperparameters of ML algorithms; second, to mitigate the problem of the curse of dimensionality of data; and third, to select the best ML model for the candidate problem. This study proposes a full-fledged description to the application of metaheuristic algorithms to empirical software measurements. The chapter begins with the introduction to the metaheuristic approach and its application to measure software empirically in conjunction with ML algorithms. Then, the state of the art of deployment of metaheuristics in the domain of software measurements is elaborated. Later, the study discusses the three major application areas of metaheuristics: hyperparameter tuning, dimensionality reduction, and model selection in detail. For each of these application areas, case studies are quoted for clearer insight into the techniques and their applications. The author proposes a novel metaheuristic technique in this chapter for feature selection. It brings more clarity for devising new methods. Then the chapter is concluded with special remarks on future scope and references made.