

14
One Model, Many Interests, Many Views
•
Inclusion
(designated with the label <<include>>) which is a parent-child relationship
between use cases with the child use case shown at the end of the arrow.
•
Extension
(designated with the label <<extend>>) which reflects the expansion of the
main use case under specific conditions (shown under the <<extend>> label). In the
example, the Handle Camera Fault use case extends the Monitor Environment use case
under the fault condition.
•
Classification
(designated with the standard UML / SysML unfilled arrowhead
decoration) representing a generalization / specialization relationship between
use cases. In the example, Manually Monitor Environment is a specialization of the
Monitor Environment use case.
Actors and blocks are classically shown around the boundary of the diagram. These are the humans
and system components involved in the use case. Human actors are almost always represented by a
stick figure. System components (hardware or software) can be shown either as a rectangular block or
a stick figure. Because different teams follow different practices, you should be careful about drawing
inferences as to whether an actor is a human or a component based upon the graphical representation.
Actors and blocks are connected to the use cases with which they are involved by unlabeled lines.
There are two cautionary notes when dealing with use cases. First, the meaning of “use case” has
somewhat drifted over time. An original use case as conceived by renowned computer scientist Ivar
Jacobson is more analogous to a sequence of activities or a behavioral thread. Today, the use case is
more the title or container of that scenario, which is subsequently elaborated by a detailed behavioral
thread. Second, though the use case diagram is the most frequent representation of use cases, the
diagram in isolation is largely worthless. The greater value comes from capturing at least the pre-
conditions and post-conditions associated with each use case. These become the essential context and
ensure that various team members are communicating effectively as they leverage use cases to better
understand the system and begin the design process.
While the notation and symbology of some SysML diagrams can prove intimidating for general
audiences, this is not the case for the use case diagram. Whether it is the relatively lightweight nature
of the diagram or the disarming nature of stick figures, the use case diagram is a very effective way of
representing use cases and the related actors and blocks largely independent of the composition of the
audience. This makes the use case diagram an ideal high-level view to support requirements elicitation
sessions to better understand the problem as well as design sessions to bridge from requirements to
system threads.