One of the most difficult concepts in the
modelling use cases is the exact level of detail (often called
level of abstraction) to model to. Some modellers may model at a
very high level of abstraction which implies that the use case can
still be broken down into several more detailed use cases. Other
modellers prefer to model at a very detailed level of abstraction
which means that they prefer to work at a very detailed use case
level that often cannot be broken down any
further.
As long as one modeller develops and maintains a
model this does not have too many drawbacks. Unfortunately in real
life, more than one person will be modelling at the same time in
the same model. This often leads to misinterpretation between
different parts of the model because of modelling style
differences.
To solve this problem we are going to need some
help from the discipline of business analysis and the associated
technique of process decomposition.
From process decomposition we have the definition
of an elementary business process: A process where the activities
performed under the control of only one person. Activities will
start and complete under the control of that person and there shall
be no intervening time delays.
If we apply this to the concept of a use case the
definition may be altered in such a way that it states: An
elementary use case is a use case which is executed under the
control of one primary actor, that starts and ends without any
intervening time delays.
This definition implies that other actors may be
involved, but that the achievement of the purpose, or goal, of the
use case is under the control of the primary
actor.
The primary actor may be defined
as: The stakeholder that
initiates the interaction with the use case in order to achieve the
successful execution of the function.
Other actors or stakeholders can
then be seen as anyone/anything that is involved (but does not
control) the behaviour of the function. If another actor, or
stakeholder controls part of the use case, it is an indication that
the use case is not an elementary use case and should be split
until a primary actor in total control of the use case can be
defined.
Modelling the use cases at an
elementary level should eliminate confusion about the levels of
abstraction, although it is still possible for different levels of
detail. It also brings with it the following
benefits:
-
Clear role separation on use case level
-
Use cases with clear boundaries in terms of
scope
-
Easy business rule definition
-
Simple scenario definition
Modelling elementary use cases - A
process
1. Functional decomposition. Although a
contentious technique to use in the object oriented world, it
serves well as a technique to get to elementary use cases. By
functional decomposition we mean breaking down high level functions
into it constituent lower level functions until the elementary use
case level is reached.
The higher level functions may be shown as high
level use cases, but it makes more sense to use package diagrams to
show the decomposition. At the elementary level we can use case
diagrams to show the elementary use cases and the associated
actors.
2. Identify primary actors. Each elementary use
case should have only one primary actor. This will be the actor
that initiates the use case and controls the use case through the
execution until it achieves the goal of the use
case.
3. Identify other actors/stakeholders. Other
actors, or stakeholders, are normally recipients of outputs of the
use case interaction.
4. Documenting use cases. Simple documentation for
the use cases may include:
-
Use case – A contract for the behaviour of the
function
-
Scope – The function under discussion
-
Business rules – The rules that govern behaviour of the
function
-
Scenarios – The possible behaviour paths of the
function
-
Extensions – Descriptions of additional behaviour that
enhances the defined function
In order to ensure that modellers model at the
same level of abstraction and what should be modelled and
documented, it should be clearly defined in the UML standards of
the enterprise.