UMLUse Case Diagrams
A use case diagram depicts actors, use cases, and the relationships among them. Use case is a software engineering term that is equivalent to a social scientist's notion of task. With some simple extensions, use case diagrams can be used to represent a usability professional's task model.
Who does the work?
The following figure shows the UML symbols for actor (the stick figure) and use case (the ellipse).
The two principal symbols in UML use case diagrams: the actor and the use case.
UML recognizes two kinds of actors, concrete actors and abstract actors. A concrete actor represents one user population operationally defined as a group of actors that share the same basic set of responsibilities. An abstract actor represents a user role which is the set of responsibilities common to multiple user populations. An abstract actor is used as a shorthand way to say, “Any concrete actor who fulfills this role.” On a UML use case diagram, a generalization relationship (a line with an open triangle pointing to the general case) shows which concrete actors fulfill which abstract actor's role.
A diagram fragment showing the generalization relationship between an abstract actor role and two concrete actors representing two user populations.
What is the actor doing?
A use case represents a task. A Task is simply some piece of goal-directed work performed by a user or organization (group of users). A task performed by an organization is also sometimes refered to as a Process. Some modelers, this author included, prefer to make a distinction between:
The UML diagram symbol for a task, in this case a task named, Create Order.
UML notation also provides a way to indicate which use cases (tasks) are performed by which actors. This is indicated by the association relationship (a plain line) between an actor and a use case. The following diagram shows one role, Order Fulfiller, performing five use cases (tasks).
A use case diagram showing the association relationship between an abstract actor role, Order Fulfiller, and the five use cases that role performs.
Notice the notations concerning frequency and criticality attached to each link in the preceding diagram. The frequency and criticality of each combination of actor (Order Fulfiller) and task (Create Order, for example) is captured to facilitate the process of modeling users and their tasks. For more detail, see the sidebar, Frequency and Criticality.
What is the actor trying to accomplish?
One important aspect of use case modeling is the notion of tasks being driven by goals. A goal is a statement of the motivating force driving a user or an organization to complete a task. The goal a user is trying to acchieve will often bias both the way in which the user tries to complete a task and what will be judged as sucessful completion.
Here is a simple example of a user task goal. The user's task is to take a customer's order for widgets. The task of taking the order can be described as a procedure—a sequence of task steps. The user's goal in taking the order is to minimize the customer's need to make further contact with the widget pruveyor and so the user wants to take orders with great accuracy. At the same time it is nice to minimize the amount of customer time the order fulfiller takes up, but there is no special concern with the speed of the interaction.
In this situation, the interface designer can choose to optimize the UI for speed of task completion or accuracy of task completion, or the designer can build an interface that is a compromise between accuracy and speed. If the interface designer chooses to optimize for accuracy and, within the constraints imposed by that design, provides as much help in speeding the user along as possible, the user will be able satisfy her goal and complete the task in an efficient manner.
If, on the other hand, the user interface is optimized for speed of completion and fails to provide the user with adequate warning of impending mistakes, the interface designer is setting up conditions that lead to a failure of the user to reach her goal. This is an especially simple example but even obvious conflicts between task procedure and user goal are frequently perpetrated on users in day-to-day practice. To avoid this, usability professionals will go through each task a user performs and capture a short description of the goal a user is attempting to satisfy when they complete that task.
Beware the UI that forces the user to perform so called work-arounds. If an interface makes task completion akward or makes it in any way more difficult for a user to acchieve his task goal, a usability problem exists that should be addressed.
Usability problems related to goals can be especially hard to predict when the user's goals are at odds with the organization's goals but neither user nor organzition is aware of the conflict. This problem can be compounded if the usability professional is also unaware of the conflict. The interaction of user and organizational goals is explored in more depth in the sidebar, The Importance of Goals in Task Modeling.
How does one task relate to another?
In addition to showing which actors perform which use cases, a use case diagram can show relationships among use cases as well. The next use case diagram shows two relationships among the use cases.
Tasks that are steps within another task.
The first is an include or composition relationship. It shows how one use case can be decomposed into one or more other, usually more specific, use cases. A composition relationship implies that the composed use case (the one at the end of the arrow point) is a step in the composing use case's procedural definition. You can see a composition relationship between the Browse Order use case and the Find Order in Context use case. The relationship shows that Browse Order has, as one of its steps, the entire use case, Find Order in Context. This relationship also shows a constraint indicating that the Find Order in Context use case is optional. It is possible in the Browse Order use case to identify an Order by order number and therefore remove the need for the user to search for the appropriate Order.
Tasks that trigger other tasks.
The second relationship is an association, labeled triggers, that links two use cases. This relationship notes that it is common for the user to complete the origin task (Find Order, for example) with a goal that requires the user to begin performing the task at the destination end of the relationship (Browse Order, for example). Though not indicated here, the user is taking the result of one task (a selected Order in this example) and is basing performance of the next task on this result. The triggers relationship is an extension of the standard UML use case relationships and not one of UML's standard relationships. It should be used when one task may follow another, but the first task is not specifically related to the second in any way other than the work product of the first being consumed as a starting product of the second. To put these two tasks together in a task composition would ignore this work product relationship and imply a procedural relationship that isn't there (that is, the first task doesn't depend on successful completion of the second, as an include relationship would imply).
The figure below is a use case diagram showing the includes or composition relationship between two use cases as well as the triggers association also between two use cases.
This discussion has shown how to use a UML use case diagram to depict a task model including the relationship of one or more user populations to abstract user roles and the relationship between either a user role or a user population and the use cases (tasks) that user performs. The relationships among tasks were also shown. This included the decomposition of one task into its component tasks and a relationship, triggers, that indicates when a user will want to frequently start a second task on the basis of the completed work product from a first task.
Last Modified February 2003
©2002, 2003 John M. Artim