A Sequential Comparative Analysis of Software Change Proneness Prediction Using Machine Learning

A Sequential Comparative Analysis of Software Change Proneness Prediction Using Machine Learning

Raja Abbas, Fawzi Abdulaziz Albalooshi
Copyright: © 2022 |Pages: 16
DOI: 10.4018/IJSI.297993
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Change-prone modules are more likely to produce defects and accumulate technical debt. Thus, developing prediction models for determining change-prone software classes is critical. Such models will allow for more efficient resource utilization during the maintenance phase and will make them more adaptable to future changes. This paper applies the study on a large dataset from a commercial software to investigate the relationships between object-oriented metrics and change-proneness. The study also compared the performance of several machine learning techniques including combining methods that were constructed by combining several single and ensemble classifiers with voting, Select-Best, and stacking scheme. The result of the study indicates a high prediction performance of many of the ensemble classifiers and the combining methods selected and proved that machine learning methods are very beneficial for predicting change-prone classes in software. The study also demonstrated that software metrics are significant indicators of class change-proneness and should be monitored regularly.
Article Preview
Top

Introduction

Application software keeps on evolving and changing rapidly to cope with technological advances in software and technology industry. The more modifications software engineers apply to a software system during development, the more complicated the system is likely to become, which will affect the complexity of the design and potentially increasing the maintenance effort. Software developers should be aware that the reliability and worth of the software depend on the quality of the modernization and how quickly the new developments are adopted. As a result, the software maintenance phase has the highest cost, which is estimated to have twice the original development cost in the lifetime of application software, compared to other software development life cycle (SDLC) phases (Al-Badareen et al., 2010). Software maintenance is the process of fine-tuning existing software by restructuring it due to bug fixes or adding new features. Whenever there is a need to make any changes to existing software, many modules of the software may be affected by that change, and this can lead to massive changes in the modules that are affected by that change. As a consequence, performing any changes in a software version is a challenging task that needs an extensive number of resources in terms of time, financial capital, and human resources including developers.

Change-proneness is the process of identifying classes that are more likely to change after the new release of software. Predicting class change proneness helps developers to concentrate on preventive actions such as testing, peer reviews, and inspections, which allows them to be more efficient in utilizing the available resources to produce more-improved software with lower maintenance costs and higher quality. The developers will be more adept at finding fixable classes and altering classes that are predicted to be more prone to change. Also, change proneness has been widely used as a means of estimating maintenance effort; thus, allocating resources will be more effective and better planed, avoiding time loss, extra efforts, and additional labor (Eski & Buzluca, 2011). Moreover, detecting change-prone classes can help developers to make better software design decisions by reducing the links between classes and detecting classes that have a greater impact on other classes, aiming to reduce the complexity of the software design, resulting in an effective model with fewer change-prone classes and, consequently, better maintenance (A. R. Han et al., 2010).

This study aimed to examine the relationship between Object-Oriented (OO) metrics and the change proneness of software classes. Also, a second aim is to analyze the performance of several Machine Learning (ML) techniques for software change prediction, these are; OneR, Bayesian Network, Naïve Bayes, Multilayer Perceptron, Bagging, AdaBoost, Logit Boost, IBK, J48, and Random Forest. The novelty of this research lies in presenting heterogeneous combining methods that combine different ML techniques for the prediction of class change proneness. Therefore, we evaluated different combining methods by grouping classifiers with voting, Select-Best, and stacking scheme, as another approach to find whether we can get more accurate results to predict change-prone classes. The study is carried out on a large dataset from a commercial software system containing the values of eight static OO metrics. The performances of the ML techniques were compared, and the results were evaluated using different measures such as precision, recall, f-measure, receiver operating characteristic (ROC) curve, and accuracy.

Complete Article List

Search this Journal:
Reset
Volume 12: 1 Issue (2024)
Volume 11: 1 Issue (2023)
Volume 10: 4 Issues (2022): 2 Released, 2 Forthcoming
Volume 9: 4 Issues (2021)
Volume 8: 4 Issues (2020)
Volume 7: 4 Issues (2019)
Volume 6: 4 Issues (2018)
Volume 5: 4 Issues (2017)
Volume 4: 4 Issues (2016)
Volume 3: 4 Issues (2015)
Volume 2: 4 Issues (2014)
Volume 1: 4 Issues (2013)
View Complete Journal Contents Listing