Towards an Enhancement Effort Estimation Approach using Machine Learning Techniques
Zaineb Sakhrawi · HAL (Le Centre pour la Communication Scientifique Directe) · 2022
Estimating has often been seen as one of the biggest challenges in most software organizations. Several projects are ending late, out of budget, with less functionality than expected, and without any indication of their levels of quality. Considerations such as the use of inaccurate estimates strongly influence the success of software projects. This is because inaccurate estimates raise unrealistic expectations and contribute to customer dissatisfaction. Accurate estimates are suitable for making appropriate decisions at the right time. On the other hand, enhancement requests to add new requirements, improve existing requirements or change the usage of software products are a source of errors in these estimates. Therefore, they can increase the cost of software development or Enhancement (maintenance) projects, disrupt the project schedule, and even influence the quality of the final product. Many approaches with various estimation models are proposed to provide a more accurate effort estimation of software development and enhancement projects. There are three main categories of these models such as expert judgment, algorithmic models (e.g., COCOMO II), and non-algorithmic models (such as Machine Learning techniques). Several researchers agree on the effectiveness of the use of ML techniques compared to other estimation techniques. To resolve those problems listed above, we proposed the following contributions: — The first contribution consists in conducting a review on estimating the effort required to complete an enhancement in software projects based on “A Systematic Mapping Study – SMS in Software Engineering [1]”. The SMS was carried out by surveying relevant papers from 1995 to 2020 to determine the main factors used in evaluating ER and estimating the corresponding effort using ML techniques. The SMS selects 30 relevant studies. 19 published journals and 11 conference proceedings via four search engines (Google Scholar, IEEExplore, ACM Digital library, and ScienceDirect). This review supports researchers in identifying and structuring methods used in the field of effort estimation in software development and enhancement projects. The results of the SMS showed that there is a very little investigation on estimating the effort required to implement an enhancement in software enhancement projects. Most of the proposed approaches used ML techniques. — The second contribution consists in proposing a new approach for estimating the effort required to implement an enhancement in software requirements. This approach has two phases. The first phase consists in proposing an Ontology-based Model Classification (OMC) for classifying customer ER as either Functional Change or Technical Change. This study was conducted based on experimental results carried out on real projects from the software industry and on the PROMISE repository. The classification allows managers and stakeholders to be selective in the use of the FSM (Functional size measurement) method. Thus, we built a data set by associating each Enhancement Request (ER) with its corresponding effort using Expert judgment. The second phase deals with the prediction of Software enhancement effort (SEEE) using the dataset built in the first part. Four machine learning methods were selected to make the prediction: Ada Boost Regressor (ABR), Gradient Boosting Regressor (GBR), Linear support Vector Regression (Linear SVR), and Random Forest Regression (RFR). Results showed that the level of accuracy of the SEEE is improved when using the ontology with the RFR algorithm. — The third contribution consists in investigating the impact of an enhancement functional size through the use of IFPUG and COSMIC FSM methods on the accuracy of the SEEE. This contribution resulted in the effectiveness of the second generation COSMIC FSM method compared to the first generation IFPUG for sizing an enhancement and its use to make an enhancement estimation, and that of the resulting software product. — The fourth contribution consists in using the Correlated Feature Selection (CFS) algorithm to select the most relevant features using the ISBSG (International Software Benchmarking Standards Group) repository. The application of CFS has shown that there is a strong correlation between size and software enhancement effort. The M5P algorithm was used to provide the SEEE. The performance of this algorithm was compared against three ML regression techniques: Gradient Boosting Regressor (GBRegr), Linear support Vector Regression (LinearSVR), and Random Forest Regression (RFR). Results showed that the accuracy of SEEE was improved when using the CFS algorithm with the M5P algorithm. — The fifth contribution consists in proposing a new approach that investigates the use of the “Stacking Ensemble” model to increase the level of accuracy of SEEE. Our constructed Stacking Ensemble model combines three regression models: GBRegr, LinearSVR, and RFR. Compared to the approach based on using a single learning model (M5P), the Stacking Ensemble model gives more accurate results. — The sixth contribution consists in developing a Web application named "ERWebApp" to quickly make SEEE. The developed Web application is intended to first generate the functional size of an enhancement, then estimate the effort corresponding to this enhancement using the “Stacking Ensemble” model.