Choosing the Best Design Strategy from Requirements. A Value-Based Approach

Various different valid software design solutions may respond satisfactorily to the same product requirements. In addition, a great part of the success of a software project depends on the software design selected. However, there are very few methods that quantify how much value will be added by each particular design strategy, and hence very little time is spent in choosing the best design option. We propose a method that estimates the value of a design strategy, starting from requirements. This method is based on the probability of change of each requirement as well as of its relative importance. Those parameters will later be traced into better design artifacts. The proposed approach takes into account the cost of each strategy, the probability, or risk, and the cost of introducing a better design solution.

[1]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..

[2]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[3]  Lionel C. Briand,et al.  Using coupling measurement for impact analysis in object-oriented systems , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[4]  Ladan Tahvildari,et al.  A Probabilistic Approach to Predict Changes in Object-Oriented Software Systems , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[5]  Václav Rajlich,et al.  RIPPLES: tool for change in legacy software , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[6]  Mark Klein,et al.  Quantifying the costs and benefits of architectural decisions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[7]  Gail C. Murphy,et al.  Predicting source code changes by mining change history , 2004, IEEE Transactions on Software Engineering.

[8]  Stefan Biffl,et al.  A case study on value-based requirements tracing , 2005, ESEC/FSE-13.

[9]  François Lustman,et al.  A change impact model for changeability assessment in object-oriented software systems , 2002, Sci. Comput. Program..

[10]  Thomas M. Pigoski Practical Software Maintenance: Best Practices for Managing Your Software Investment , 1996 .

[11]  Stéphane Ducasse,et al.  Yesterday's Weather: guiding early reverse engineering efforts by summarizing the evolution of changes , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[12]  Jane Cleland-Huang,et al.  A heterogeneous solution for improving the return on investment of requirements traceability , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[13]  Stefan Biffl,et al.  A value-based approach for understanding cost-benefit trade-offs during automated software traceability , 2005, TEFSE '05.

[14]  Hema Srikanth,et al.  On the Economics of Requirements-Based Test Case Prioritization , 2005 .

[15]  Andreas Zeller,et al.  Mining version histories to guide software changes , 2005, Proceedings. 26th International Conference on Software Engineering.

[16]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[17]  Javier Garzás,et al.  An ontology for microarchitectural design knowledge , 2005, IEEE Software.

[18]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[19]  J. Cleland-Huang,et al.  Financially informed requirements prioritization , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[20]  Barry W. Boehm,et al.  How Much Software Quality Investment Is Enough: A Value-Based Approach , 2006, IEEE Software.

[21]  Giuliano Antoniol,et al.  A Function Point-Like Measure for Object-Oriented Software , 1999, Empirical Software Engineering.

[22]  Alexander Chatzigeorgiou,et al.  Predicting the probability of change in object-oriented systems , 2005, IEEE Transactions on Software Engineering.

[23]  Barbara A. Kitchenham,et al.  Coupling measures and change ripples in C++ application software , 2000, J. Syst. Softw..

[24]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[25]  Lionel C. Briand,et al.  An assessment and comparison of common software cost estimation modeling techniques , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[26]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[27]  Barry W. Boehm,et al.  Value-Based Software Engineering: Overview and Agenda , 2006, Value-Based Software Engineering.

[28]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[29]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[30]  Javier Garzás,et al.  Analyzability and Changeability in Design Patterns , 2002 .