I
n
the late 1980s Ivar Jacobson introduced a novel concept called
use cases
to the world of object-oriented analysis and design. Today use cases are
an integral part of the formal UML standard. Countless people use them
to capture the behavior of systems they are working on.
Use
cases are typically used for the following reasons:
-
To document
business processes, either existing ones or new ones that are to be established.
-
To describe
the required behavior of a software system under development so that the
later users and the provider of the system get a common understanding of
the
future system.
A use
case is the description of a scenario in which the system responds to external
requests. These requests come from a so-called
actor
, which initiates
an interaction with the system to accomplish a goal. The entirety of all
use cases describes the system behavior that can be experienced by all
actors.
This
approach makes use cases a quite simple and straightforward concept. However,
a number of typical questions arise when starting to write use cases: How
exactly are you supposed to write a use case? What makes a good use case?
When are you done with one use case, and with all use cases? And so on.
Because
Alistair Cockburn is a practitioner and a coach in the field of use cases,
his
Writing Effective Use Cases
provides the answers to these and
many more questions related to them.
The
introduction shows a concrete example of a use case. It briefly discusses
what use cases are and covers the critical points that typically come up
when use cases are written.
Part
I explains the major, relevant concepts to use cases. Chapters cover "The
Use Case as a Contract for Behavior," "Scope," "Stakeholders and Actors,"
etc. Along the way Cockburn incrementally develops text templates that
can be used to write a use case.
Part
II addresses topics that typically arise when we work with use cases: "When
Are We Done?" and "The Missing Requirements" are representative chapters
in this part.
Part
III contains a set of reminders for those of you who are generally familiar
with the material in the earlier chapters but want to refresh the key ideas
of use case writing. This part should be revisited immediately before you
actually use use cases in a project.
Writing
Effective Use Cases
closes with four appendixes. The first one explains
the UML graphic notation for use cases and its relationship to the textual
writing of the use cases discussed in the book. The second appendix contains
solutions to some to the exercises in the introduction and Part I. The
third appendix contains a glossary. The fourth appendix lists references
to related books.
We
highly recommend this book. Not only does it discuss many relevant topics,
but its self-study format is suitable for beginners and experts.
In
addition to the wealth of detailed information you'll find here,
Writing
Effective Use Cases
contains some unique ideas?for example,
stakeholders
.
These are a generalization of actors. While actors directly interact with
the system, stakeholders do not necessarily do so. Cockburn points out
that for certain systems, there are some roles that benefit from the system,
even though they do not directly interact with it. Consequently, these
roles and their requirements should be taken into account when a system
is modeled.
If
you are interested in Alistair Cockburn's work related to use cases, you
can visit his Web site at
members.aol.com/acockburn/
.
There you can find his templates for writing use cases.
Angelika
Langer
develops and teaches classes on Java, C++, multithreading, and
internationalization. She is an internationally recognized speaker and
served on the ANSI/ISO C++ Committee from 1993 to 1998.
Klaus Kreft
is a software architect and senior consultant with 15+ years of experience
in industrial software development. He currently works for Siemens Business
Services in Germany. Langer and Kreft are authors of "Standard C++ IOStreams
and Locales" (Addison-Wesley, 2000) and are columnists for the C/C++ Users
Journal.
|