An Evaluation of Applying Use Cases to Construct Design versus Validate Design Erik Syversen 1 , Bente Anda 2 and Dag I.K. Sjøberg 2 1 Department of Informatics University of Oslo P.O. Box 1080 Blindern NO–0316 Oslo NORWAY eriksy@ifi.uio.no 2 Simula Research Laboratory P.O. Box 134 NO–1325 Lysaker NORWAY Tel. +47 67828200 Fax. +47 67828201 {bentea,dagsj}@simula.no Abstract 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. Introduction The authors of the Unified Modeling Language (UML) recommend a use case driven process for developing object-oriented software with UML [4,8,9,15]. In a use case driven development process, a use case model, possibly in combination with a domain model, serves as the basis for deriving a design model. Use case driven development processes have, however, been criticized for not providing a sufficient basis for the construction of a design model. For example, it is claimed that such a development process leads to: a too wide gap between the use case model and the class diagram [13], missing classes as the use case model is insufficient for deriving all necessary classes, and the developers mistaking requirements for design [15]. An alternative to a use case driven process is to use another development process, for example, a responsibility driven process [12], and subsequently apply a use case model to validate the design. In the following, the term validation process is used to denote such development processes. We are interested in investigating how a use case model best can be applied in an object-oriented design process, and have conducted a pilot experiment to investigate differences imposed by the use case driven process and the validation process on the resulting design models. This may influence the choice of development process, and also how to teach object-oriented design, even though the choice of development process in a development project is typically determined by characteristics of that project, for example the experience Proceedings of the 36th Hawaii International Conference on System Sciences (HICSS’03) 0-7695-1874-5/03 $17.00 © 2002 IEEE