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