UML 2 Tutorial - Activity Diagram

Activity Diagrams

In UML, an activity diagram is used to display the sequence of activities. Activity diagrams show the workflow from a start point to the finish point detailing the many decision paths that exist in the progression of events contained in the activity. They may be used to detail situations where parallel processing may occur in the execution of some activities. Activity diagrams are useful for business modelling where they are used for detailing the processes involved in business activities.

An Example of an activity diagram is shown below.

Activity Diagram

The following sections describe the elements that constitute an activity diagram.


Activities

An activity is the specification of a parameterized sequence of behaviour. An activity is shown as a round-cornered rectangle enclosing all the actions, control flows and other elements that make up the activity.

Activity Element


Actions

An action represents a single step within an activity. Actions are denoted by round-cornered rectangles.

Action Element


Action Constraints

Constraints can be attached to an action. The following diagram shows an action with local pre- and post-conditions.

Action Constraint


Control Flow

A control flow shows the flow of control from one action to the next. Its notation is a line with an arrowhead.

Control Flow


Initial Node

An initial or start node is depicted by a large black spot, as shown below.

Initial Node


Final Node

There are two types of final node: activity and flow final nodes. The activity final node is depicted as a circle with a dot inside.

Final Node: activity

The flow final node is depicted as a circle with a cross inside.

Final Node: flow

The difference between the two node types is that the flow final node denotes the end of a single control flow; the activity final node denotes the end of all control flows within the activity.


Objects and Object Flows

An object flow is a path along which objects or data can pass. An object is shown as a rectangle.

Object Flow - Example 1

An object flow is shown as a connector with an arrowhead denoting the direction the object is being passed.

Object Flow - Example 2

An object flow must have an object on at least one of its ends. A shorthand notation for the above diagram would be to use input and output pins.

Object Flow - Example 3

A data store is shown as an object with the «datastore» keyword.

Object Flow - Example 4


Decision and Merge Nodes

Decision nodes and merge nodes have the same notation: a diamond shape. They can both be named. The control flows coming away from a decision node will have guard conditions which will allow control to flow if the guard condition is met. The following diagram shows use of a decision node and a merge node.

Decision and Merge Nodes


Fork and Join Nodes

Forks and joins have the same notation: either a horizontal or vertical bar (the orientation is dependent on whether the control flow is running left to right or top to bottom). They indicate the start and end of concurrent threads of control. The following diagram shows an example of their use.

Fork and Join Nodes

A join is different from a merge in that the join synchronizes two inflows and produces a single outflow. The outflow from a join cannot execute until all inflows have been received. A merge passes any control flows straight through it. If two or more inflows are received by a merge symbol, the action pointed to by its outflow is executed two or more times.


Expansion Region

An expansion region is a structured activity region that executes multiple times. Input and output expansion nodes are drawn as a group of three boxes representing a multiple selection of items. The keyword "iterative", "parallel" or "stream" is shown in the top left corner of the region.

Expansion Region


Exception Handlers

Exception Handlers can be modelled on activity diagrams as in the example below.

Exception Handler


Interruptible Activity Region

An interruptible activity region surrounds a group of actions that can be interrupted. In the very simple example below, the "Process Order" action will execute until completion, when it will pass control to the "Close Order" action, unless a "Cancel Request" interrupt is received, which will pass control to the "Cancel Order" action.

Interruptible Activity Region


Partition

An activity partition is shown as either a horizontal or vertical swimlane. In the following diagram, the partitions are used to separate actions within an activity into those performed by the accounting department and those performed by the customer.

Partition Element