Use-Case Model
Use-Case Model
Use-Case Model
Identify Stakeholders
Begin by listing all the external stakeholders for the system. These individuals
will be the source of the requirements.
Identify Actors
Name and describe the primary actors. See Guideline: Find and Outline Actors
and Use Cases.
Identify Use Cases
For each actor, ask "what does this actor want to accomplish with the
system"? This will reveal the primary use cases for the system. Name and
describe each of these as you discover them.
Construction
The purpose of construction is to incrementally deliver functionality (and
value). Working from the iteration plan, continue detailing the remaining
requirements. Shoot for completion of ~90 - ~95% of use cases by the end of
construction.
Detail Basic Flows
For those UC selected for the next iteration, spend the time to detail the basic
flow now. See Guideline: Detail Use Cases and Scenarios.
Update the Use-Case Model to capture any refinements made as a result of your
work.
Transition
• Small use cases, meaning that the description of the flow of events is only
one or a few sentences.
• Many use cases, meaning that the number of use cases is some multiple of
a hundred, rather than a multiple of ten.
• Use-case names that are constructions such as "do this operation on this
particular data" or "do this function with this particular data". For example,
"Enter Personal Identification Number in an ATM machine" should not be
modeled as a separate use case for the ATM machine, because no one would
use the system to do just this. A use case is a complete flow of events that
results in something of value to an actor.
To avoid functional decomposition, make sure that the use-case model helps
answer these kinds of questions:
Structuring is not the first thing you do, however. There is no point in
structuring the use cases until you know a bit more about their behavior than a
one-sentence description. You should at least have established a step-by-step
outline for the flow of events of the use case to make sure that your decisions
are based on an accurate understanding of the behavior.
Running each use case includes communication with one or more actors. A use-
case instance is always started by an actor asking the system to do something.
This implies that every use case should have communicates-associations with
actors. The reason for this rule is to enforce that the system provides only the
functionality that users need and nothing else. Having use cases that no one
requests is an indication that something is wrong in the use-case model or in the
requirements.
• An "included" use case might not interact with an actor if the base use case
does.
• A use case may be initiated according to a schedule (for example, once a
week or once a day), which means that the system clock is the initiator. The
system clock is internal to the system; therefore, the use case is not initiated
by an actor but by an internal system event. If no other actor interaction
occurs in the use case, it will not have any associations to actors. However,
for clarity, you can use "time" as an actor to show how the use case is
initiated in your use-case diagrams. CAUTION: if you have a lot of "time"
actors in your model, challenge them. Perhaps you missed a real actor, such
as an administrator responsible for scheduling reports, etc.
Explanation
A use-case model is a model of how different types of users interact with the
system to solve a problem. As such, it describes the goals of the users, the
interactions between the users and the system, and the required behaviour of the
system in satisfying these goals.
The use-case model may contain packages that are used to structure the model
to simplify analysis, communications, navigation, development, maintenance
and planning.
Much of the use-case model is in fact textual, with the text captured in the Use-
Case Specifications that are associated with each use-case model
element. These specifications describe the flow of events of the use case.
Actor
A model element representing each actor. Properties include the actors name
and brief description. See Concept: Actor for more information.
Use Case
A model element representing each use case. Properties include the use case
name and use case specification. See Artefact: Use Case and Concept:
Use Case for more information.
Associations
Associations are used to describe the relationships between actors and the use
cases they participate in. This relationship is commonly known as a
“communicates-association”.
Subject
Use-Case Package
A model element used to structure the use case model to simplify analysis,
communications, navigation, and planning. If there are many use cases or
actors, you can use use-case packages to further structure the use-case model in
much the same manner you use folders or directories to structure the
information on your hard-disk.
You can partition a use-case model into use-case packages for several reasons,
including:
The latter is the most widely used dependency and is useful for:
• Factoring out behaviour from the base use case that is not necessary for the
understanding of the primary purpose of the use case to simplify
communications.
• Factoring out behaviour that is in common for two or more use cases to
maximize re-use, simplify maintenance and ensure consistency.
This diagram shows the subject (atm:ATM), four actors (Bank Customer, Bank,
Cahier and Maintenance Person), five use cases (Withdraw Cash, Transfer
Funds, Deposit Funds, Refill Machine and Validate User), three includes
dependencies, and the associations between the performing actors and the use
cases .The use cases Withdraw Cash, Deposit Funds, and Transfer Funds all
need to include how the customer is identified to the system. This behavior can
be extracted to a new inclusion use case called Validate User, which the three
base use cases include. The base use cases are independent of the method used
for identification, and it is therefore encapsulated in the inclusion use case.
From the perspective of the base use cases, it does not matter whether the
method for identification is to read a magnetic bank card, or perform a retinal
scan. They only depend on the result of Validate Customer. Note that Figure 1
is only a partial view of the use-case model. The complete use-case model also
includes descriptions of each actor, descriptions of each use case, and use-case
specifications for each use case. For a more complete example of this use case
model see Example: Evolution of the Use-Case Model.