An evaluation of applying use cases to construct design versus validate design

Use case models capture and describe the functional requirements of a software system. A use case driven development process, where a use case model is the principal basis for constructing an object-oriented design, is recommended when applying UML. There are, however, some problems with use case driven development processes and alternative ways of applying a use case model have been proposed. One alternative is to apply the use case model in a responsibility-driven process as a means to validate the design model. We wish to study how a use case model best can be applied in an object-oriented development process and have conducted a pilot experiment with 26 students as subjects to compare a use case driven process against a responsibility-driven process in which a use case model is applied to validate the design model. Each subject was given detailed guidelines on one of the two processes, and used those to construct design models consisting of class and sequence diagrams. The resulting class diagrams were evaluated with regards to realism, that is, how well they satisfied the requirements, size and number of errors. The results show that the validation process produced more realistic class diagrams, but with a larger variation in the number of classes. This indicates that the use case driven process gave more, but not always more appropriate, guidance on how to construct a class diagram. The experiences from this pilot experiment were also used to improve the experimental design, and the design of a follow-up experiment is presented.

[1]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

[2]  Ralf Reissing,et al.  Towards a Model for Object-Oriented Design Measurement , 1996 .

[3]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[4]  Jeffrey C. Carver,et al.  Evolving a Set of Techniques for OO Inspections , 1999 .

[5]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[6]  Kendall Scott,et al.  Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example , 2001 .

[7]  Massimo Felici,et al.  Software Engineering with Objects and Components , 2005 .

[8]  Jim Arlow,et al.  Uml and the Unified Process: Practical Object-Oriented Analysis and Design , 2005 .

[9]  Magne Jørgensen,et al.  Quality and Understandability of Use Case Models , 2001, ECOOP.

[10]  Henk Sol,et al.  Proceedings of the 54th Hawaii International Conference on System Sciences , 1997, HICSS 2015.

[11]  Yngve Lindsjørn,et al.  SESE – an Experiment Support Environment for Evaluating Software Engineering Technologies , 2002 .

[12]  Mario Piattini,et al.  Empirical validation of measures for class diagram structural complexity through controlled experiments , 2001 .

[13]  Amela Karahasanovic,et al.  Visualizing impacts of database schema changes - A controlled experiment , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[14]  Charles Richter Designing Flexible Object-Oriented Systems with UML , 1999 .

[15]  Mario Piattini,et al.  Early Measures for UML Class Diagrams , 2000, Obj. Logiciel Base données Réseaux.

[16]  Jim Arlow,et al.  UML and the unified process , 2001 .