state and activity
Use cases define typical interactions between the user and the system.
In other words, use cases define the boundaries between a system
and its users.
Use cases are critical in eliciting the functional requirements
a system must satisfy.
slide: Use cases
A typical use case consists of an actor or role
and a more or less detailed description of the actions
that an actor performs to accomplish some task.
A task may for example be the insertion of
text, or the creation of a particular figure in a drawing editor.
A distinction must be made between the overall goals
of a user, like making a decent drawing, and
the actions that must be performed to satisfy these goals.
Only the latter can be the subject of use cases.
When defining a use case, other use cases can be (re)used,
either through the extends or through the uses
The extends relation is similar to the inheritance
relation for classes.
The extending use case may override aspects of the extended use case.
The uses relation is used to factor out common parts.