A Machine Learning Approach to Software Requirements Prioritization

Deciding which, among a set of requirements, are to be considered first and in which order is a strategic process in software development. This task is commonly referred to as requirements prioritization. This paper describes a requirements prioritization method called Case-Based Ranking (CBRank), which combines project's stakeholders preferences with requirements ordering approximations computed through machine learning techniques, bringing promising advantages. First, the human effort to input preference information can be reduced, while preserving the accuracy of the final ranking estimates. Second, domain knowledge encoded as partial order relations defined over the requirement attributes can be exploited, thus supporting an adaptive elicitation process. The techniques CBRank rests on and the associated prioritization process are detailed. Empirical evaluations of properties of CBRank are performed on simulated data and compared with a state-of-the-art prioritization method, providing evidence of the method ability to support the management of the tradeoff between elicitation effort and ranking accuracy and to exploit domain knowledge. A case study on a real software project complements these experimental measurements. Finally, a positioning of CBRank with respect to state-of-the-art requirements prioritization methods is proposed, together with a discussion of benefits and limits of the method.

[1]  A. Herrmann,et al.  Requirements Prioritization Based on Benefit and Cost Prediction: An Agenda for Future Research , 2008, 2008 16th IEEE International Requirements Engineering Conference.

[2]  Anna Perini,et al.  Tool-supported requirements prioritization: Comparing the AHP and CBRank methods , 2009, Inf. Softw. Technol..

[3]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[4]  Claes Wohlin,et al.  Pair-wise comparisons versus planning game partitioning—experiments on requirements prioritisation techniques , 2007, Empirical Software Engineering.

[5]  Joachim Karlsson,et al.  Improved practical support for large-scale requirements prioritising , 1997, Requirements Engineering.

[6]  Dietmar Pfahl,et al.  Quantitative WinWin: a new method for decision support in requirements negotiation , 2002, SEKE '02.

[7]  Anna Perini,et al.  Supporting the Requirements Prioritization Process. A Machine Learning approach , 2004, SEKE.

[8]  Hoh Peter In,et al.  Multi-criteria preference analysis for systematic requirements negotiation , 2002, Proceedings 26th Annual International Computer Software and Applications.

[9]  Agnar Aamodt,et al.  Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches , 1994, AI Commun..

[10]  Yoram Singer,et al.  An Efficient Boosting Algorithm for Combining Preferences by , 2013 .

[11]  Jean-Yves Thibon,et al.  The algebra of binary search trees , 2004, Theor. Comput. Sci..

[12]  Alan M. Davis,et al.  Just Enough Requirements Management: Where Software Development Meets Marketing , 2005 .

[13]  Tom Gilb,et al.  Competitive Engineering: A Handbook For Systems Engineering, Requirements Engineering, And Software Engineering Using Planguage , 2005 .

[14]  Anna Perini,et al.  Exploiting Domain Knowledge in Requirements Prioritization , 2005, SEKE.

[15]  Komminist Weldemariam,et al.  Assessing Procedural Risks and Threats in e-Voting: Challenges and an Approach , 2007, VOTE-ID.

[16]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[17]  Paolo Tonella,et al.  Using the Case-Based Ranking Methodology for Test Case Prioritization , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[18]  Patrik Berander,et al.  Towards a Research Framework on Requirements Prioritization , 2006 .

[19]  B. Nuseibeh,et al.  Linking the Selection of Requirements to Market Value : A Portfolio-Based Approach Siv , 2001 .

[20]  Andrea Herrmann,et al.  Requirements Prioritization Based on Benefit and Cost Prediction: A Method Classification Framework , 2008, 2008 34th Euromicro Conference Software Engineering and Advanced Applications.

[21]  Joachim Karlsson,et al.  A Cost-Value Approach for Prioritizing Requirements , 1997, IEEE Softw..

[22]  Claes Wohlin,et al.  An evaluation of methods for prioritizing software requirements , 1998, Inf. Softw. Technol..

[23]  Jawed I. A. Siddiqi,et al.  Requirements Engineering: The Emerging Wisdom , 1996, IEEE Softw..

[24]  Günther Ruhe,et al.  Requirements Negotiation under Incompleteness and Uncertainty , 2003, SEKE.

[25]  Yoji Akao,et al.  Quality Function Deployment : Integrating Customer Requirements into Product Design , 1990 .

[26]  Anna Perini,et al.  Facing scalability issues in requirements prioritization with machine learning techniques , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[27]  Angelo Susi,et al.  Collaborative Case-Based Preference Elicitation , 2005, IEA/AIE.

[28]  T. Saaty Fundamentals of the Analytic Hierarchy Process , 2001 .

[29]  Dean Leffingwell,et al.  Managing software requirements: a unified approach , 1999 .

[30]  Adolfo Villafiorita,et al.  Transitioning to Evoting: the Provote Project and the Trentino's Experience , 2006 .

[31]  Yuanyuan Zhang,et al.  A search based approach to fairness analysis in requirement assignments to aid negotiation, mediation and decision making , 2009, Requirements Engineering.

[32]  Frank Moisiadis Prioritising software requirements , 2002, ICSE 2002.

[33]  Angelo Susi,et al.  Case-Based Ranking for Decision Support Systems , 2003, ICCBR.

[34]  S. Lauesen Software Requirements Styles and Techniques , 2001 .

[35]  P. Harker Incomplete pairwise comparisons in the analytic hierarchy process , 1987 .