Abstract
Software Effort Estimation (SEE) models can be used for decision-support by software managers to determine the effort required to develop a software project. They are created based on data describing projects completed in the past. Such data could include past projects from within the company that we are interested in (WC projects) and/or from other companies (cross-company, i.e., CC projects). In particular, the use of CC data has been investigated in an attempt to overcome limitations caused by the typically small size of WC datasets. However, software companies operate in non-stationary environments, where changes may affect the typical effort required to develop software projects. Our previous work showed that both WC and CC models of the past can become more or less useful over time, i.e., they can sometimes be helpful and sometimes misleading. So, how can we know if and when a model created based on past data represents well the current projects being estimated? We propose an approach called Dynamic Cross-company Learning (DCL) to dynamically identify which WC or CC past models are most useful for making predictions to a given company at the present. DCL automatically emphasizes the predictions given by these models in order to improve predictive performance. Our experiments comparing DCL against existing WC and CC approaches show that DCL is successful in improving SEE by emphasizing the most useful past models. A thorough analysis of DCL’s behaviour is provided, strengthening its external validity.
Highlights
Software effort estimation (SEE) is the process of estimating the effort required to develop a software project
Our experiments showed that Dynamic Cross-company Learning (DCL) always performed statistically significantly better than random guess with very high effect size
They confirm that DCL using both dynamic weighting and filtering performed to DCL-W, whereas DCL using only filtering (DCL-F) and dynamic weighting and no filtering (DCL-N) performed worse. These results show that dynamic weighting was essential to DCL’s predictive performance, as the best results for each particular dataset were always achieved when dynamic weighting was used (DCL-W or DCL)
Summary
Software effort estimation (SEE) is the process of estimating the effort required to develop a software project. Software effort is typically the main cost driver in software projects (Jørgensen and Shepperd 2007; Stutzke 2006). Both over and underestimations of effort can cause problems to a company. Human-made effort estimations may be strongly affected by effort-irrelevant and misleading information, such as the font or margin size of specifications (Jørgensen and Grimstad 2011). Software engineers may not improve their effort estimations even after feedback about their estimates is provided (Gruschke and Jørgensen 2008). SEE models created using ML might not capture some human factors that influence the effort required to develop software projects. We believe that SEE models should be used as decisionsupport tools to help experts to perform or re-think their estimations
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.