A
system for effort
estimation in
agile software development using multi-stage evolutionary stacking, consisting of: a
data acquisition module configured to retrieve
software effort records from one or more
data set repositories containing historical data from
software development projects with characteristics and actual effort values; a data preprocessing module that is operationally connected to the
data acquisition module and is configured to receive the aforementioned
software effort data sets from the
data acquisition module, cleans the received data by removing inconsistencies with missing target values, and normalizes numerical input characteristics to a common range; a first-level ensemble module connected to the data preprocessing module, wherein the first-level ensemble module comprises a variety of heterogeneous basic learners, including a
Random Forest model, a
Support Vector Regression model, and an
Extreme Gradient Boosting model, which generate predictions from each of the heterogeneous basic learners using the preprocessed data sets received from the data preprocessing module; A
genetic algorithm optimization module connected to the first layer's ensemble module, configured to:
encode weights as a normalized real-valued vector for each of the heterogeneous base learners; apply a
fitness function to minimize the mean squared
validation error and derive an
optimal weight vector; assign optimized weights to the predictions of each of the heterogeneous base learners; and generate weighted predictions based on the optimized weights. a second-level meta-learning module connected to the optimization module of the
genetic algorithm, configured to receive the weighted predictions from the optimization module of the
genetic algorithm, processes the weighted predictions using a deep
multilayer perceptron neural network to learn complex patterns and nonlinear interactions, and generates a final effort estimate for the software; an output
processing module connected to the second-level meta-learning module, configured to receive the final effort estimate for the software and process and visualize the data to improve user understanding; and a
user interface connected to the output
processing module to receive the processed final effort estimate for the software, wherein the
user interface is configured to display the processed and visualized final effort estimate for the software.