High-level software requirements and iteration changes: a predictive model

Knowing whether a software feature will be completed in its planned iteration can help with release planning decisions. However, existing research has focused on predictions of only low-level software tasks, like bug fixes. In this paper, we describe a mixed-method empirical study on three large IBM projects. We investigated the types of iteration changes that occur. We show that up to 54% of high-level requirements do not make their planned iteration. Requirements are most often pushed out to the next iteration, but high-level requirements are also commonly moved to the next minor or major release or returned to the product or release backlog. We developed and evaluated a model that uses machine learning to predict if a high-level requirement will be completed within its planned iteration. The model includes 29 features that were engineered based on prior work, interviews with IBM developers, and domain knowledge. Predictions were made at four different stages of the requirement lifetime. Our model is able to achieve up to 100% precision. We ranked the importance of our model features and found that some features are highly dependent on project and prediction stage. However, some features (e.g., the time remaining in the iteration and creator of the requirement) emerge as important across all projects and stages. We conclude with a discussion on future research directions.

[1]  Claes Wohlin,et al.  Context in industrial software engineering research , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[2]  Dietmar Pfahl,et al.  Improving expert prediction of issue resolution time , 2016, EASE.

[3]  Iulian Neamtiu,et al.  Bug-fix time prediction models: can we do better? , 2011, MSR '11.

[4]  Xiuzhen Zhang,et al.  Comments on "Data Mining Static Code Attributes to Learn Defect Predictors" , 2007, IEEE Trans. Software Eng..

[5]  Yu Zhou,et al.  Combining text mining and data mining for bug report classification , 2016, J. Softw. Evol. Process..

[6]  R. Storn,et al.  Differential Evolution: A Practical Approach to Global Optimization (Natural Computing Series) , 2005 .

[7]  Daniela Cruzes,et al.  Impact of Stakeholder Type and Collaboration on Issue Resolution Time in OSS Projects , 2011, OSS.

[8]  Paul W. Oman,et al.  Using metrics to manage the end-game of a software project , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[9]  M. Kholief,et al.  Bug fix-time prediction model using naïve Bayes classifier , 2012, 2012 22nd International Conference on Computer Theory and Applications (ICCTA).

[10]  Steve McConnell,et al.  Best Practices: Gauging Software Readiness with Defect Tracking , 1997, IEEE Softw..

[11]  Magne Jørgensen,et al.  What We Do and Don't Know about Software Development Effort Estimation , 2014, IEEE Softw..

[12]  B. Efron Estimating the Error Rate of a Prediction Rule: Improvement on Cross-Validation , 1983 .

[13]  Ian H. Witten,et al.  The WEKA data mining software: an update , 2009, SKDD.

[14]  Kai Ming Ting,et al.  An Instance-weighting Method to Induce Cost-sensitive Trees , 2001 .

[15]  Xavier Franch,et al.  Software Release Planning , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[16]  Mie Mie Thet Thwin Estimating software readiness using predictive models , 2006 .

[17]  Melanie McBride,et al.  Is Your Team Ready to Release , 2014 .

[18]  K. Muthukumaran,et al.  Impact of Bug Reporter's Reputation on Bug-Fix Times , 2016, 2016 International Conference on Information Systems Engineering (ICISE).

[19]  Uzma Raja,et al.  All complaints are not created equal: text analysis of open source software defect reports , 2012, Empirical Software Engineering.

[20]  Leo Breiman,et al.  Random Forests , 2001, Machine Learning.

[21]  Stephen G. MacDonell,et al.  Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering , 2016, EASE.

[22]  Haibo He,et al.  Learning from Imbalanced Data , 2009, IEEE Transactions on Knowledge and Data Engineering.

[23]  Dietmar Pfahl,et al.  Using Dynamic and Contextual Features to Predict Issue Lifetime in GitHub Projects , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[24]  Senén Barro,et al.  Do we need hundreds of classifiers to solve real world classification problems? , 2014, J. Mach. Learn. Res..

[25]  Steve McConnell,et al.  Software Project Survival Guide , 1997 .

[26]  Fan Yang,et al.  Using random forest for reliable classification and cost-sensitive learning for medical diagnosis , 2009, BMC Bioinformatics.

[27]  Hui Zeng,et al.  Estimation of software defects fix effort using neural networks , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[28]  Abhaya Asthana,et al.  Quantifying software reliability and readiness , 2009, 2009 IEEE International Workshop Technical Committee on Communications Quality and Reliability.

[29]  Tim Menzies,et al.  Problems with Precision , 2007 .

[30]  Kelly Blincoe,et al.  Predicting Likelihood of Requirement Implementation within the Planned Iteration: An Empirical Study at IBM , 2017, 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).

[31]  Huan Liu,et al.  Chi2: feature selection and discretization of numeric attributes , 1995, Proceedings of 7th IEEE International Conference on Tools with Artificial Intelligence.

[32]  Scott Fortmann-Roe,et al.  Understanding the bias-variance tradeoff , 2012 .

[33]  Tim Menzies,et al.  oftware effort models should be assessed via leave-one-out validation , 2013 .

[34]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[35]  Tim Menzies,et al.  On the Value of Ensemble Effort Estimation , 2012, IEEE Transactions on Software Engineering.

[36]  Burak Turhan,et al.  Data mining for software engineering and humans in the loop , 2016, Progress in Artificial Intelligence.

[37]  Andreas Zeller,et al.  How Long Will It Take to Fix This Bug? , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[38]  Donald Hedeker,et al.  A Practical Guide to Calculating Cohen’s f2, a Measure of Local Effect Size, from PROC MIXED , 2012, Front. Psychology.

[39]  Daniela E. Damian,et al.  A Mapping Study on Requirements Engineering in Agile Software Development , 2015, 2015 41st Euromicro Conference on Software Engineering and Advanced Applications.

[40]  F. George Wilkie,et al.  The Use of Intra-Release Product Measures in Predicting Release Readiness , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[41]  Tim Menzies,et al.  Data Mining Static Code Attributes to Learn Defect Predictors , 2007, IEEE Transactions on Software Engineering.

[42]  Ying Zou,et al.  Studying the fix-time for bugs in large open source projects , 2011, Promise '11.

[43]  Ron Jeffries,et al.  Extreme Programming and Agile Software Development Methodologies , 2004, Inf. Syst. Manag..

[44]  Markus Hofmann,et al.  RapidMiner: Data Mining Use Cases and Business Analytics Applications , 2013 .

[45]  Qingfu Zhang,et al.  MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition , 2007, IEEE Transactions on Evolutionary Computation.

[46]  Philip J. Guo,et al.  Characterizing and predicting which bugs get fixed: an empirical study of Microsoft Windows , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[47]  Thomas Zimmermann,et al.  Improving bug triage with bug tossing graphs , 2009, ESEC/FSE '09.

[48]  Philipp Brune,et al.  Determining Software Product Release Readiness by the Change-Error Correlation Function: On the Importance of the Change-Error Time Lag , 2012, 2012 45th Hawaii International Conference on System Sciences.

[49]  Lucas D. Panjer Predicting Eclipse Bug Lifetimes , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[50]  Pedro M. Domingos A few useful things to know about machine learning , 2012, Commun. ACM.

[51]  Giuliano Antoniol,et al.  Software project planning for robustness and completion time in the presence of uncertainty using multi objective search based software engineering , 2009, GECCO.

[52]  Harald C. Gall,et al.  Predicting the fix time of bugs , 2010, RSSE '10.

[53]  Dietmar Pfahl,et al.  Release Readiness Classification: An Explorative Case Study , 2016, ESEM.

[54]  R. Brettschneider,et al.  Is your software ready for release? , 1989, IEEE Software.

[55]  Dietmar Pfahl,et al.  Using text clustering to predict defect resolution time: a conceptual replication and an evaluation of prediction accuracy , 2015, Empirical Software Engineering.

[56]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[57]  Lefteris Angelis,et al.  Using Ensembles for Web Effort Estimation , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[58]  Maleknaz Nayebi,et al.  A Two-staged Survey on Release Readiness , 2017, EASE.

[59]  Kelly Blincoe,et al.  A hybrid model for task completion effort estimation , 2016, SWAN@SIGSOFT FSE.

[60]  Alain Abran,et al.  Systematic literature review of ensemble effort estimation , 2016, J. Syst. Softw..

[61]  Dietmar Pfahl,et al.  Comparative Analysis of Predictive Techniques for Release Readiness Classification , 2016, 2016 IEEE/ACM 5th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE).