Se 5
Se 5
Activity Diagrams are used to illustrate the flow of control in a system and refer to the steps involved in
the execution of a use case. It is a type of behavioral diagram and we can depict both sequential
processing and concurrent processing of activities using an activity diagram i.e. an activity diagram
focuses on the condition of flow and the sequence in which it happens.
In activity diagrams, the notations are like visual symbols that help represent different
elements and actions in a simple way.
Initial State
The starting state before an activity takes place is depicted using the initial state.
A process can have only one initial state unless we are depicting nested activities. We use a
black filled circle to depict the initial state of a system. For objects, this is the state when they
are instantiated. The Initial State from the UML Activity Diagram marks the entry point and
the initial Activity State.
For example:
Here the initial state of the system before the application is opened.
Action flows or Control flows are also referred to as paths and edges. They are used to show
the transition from one activity state to another activity state.
An activity state can have multiple incoming and outgoing action flows. We use a line with
an arrow head to depict a Control Flow. If there is a constraint to be adhered to while making
the transition it is mentioned on the arrow.
For example:
Here both the states transit into one final state using action flow symbols i.e. arrows.
Decision node and Branching
When we need to make a decision before deciding the flow of control, we use the decision
node. The outgoing arrows from the decision node can be labelled with conditions or guard
expressions. It always includes two or more output arrows.
For example:
We apply the conditions on input number to display the result :
If number is odd then display the number.
If number if even then display the error.
Guard
A Guard refers to a statement written next to a decision node on an arrow sometimes within
square brackets.
The statement must be true for the control to shift along a particular direction. Guards help
us know the constraints and conditions which determine the flow of a process.
Fork
Fork nodes are used to support concurrent activities. When we use a fork node when both
the activities get executed concurrently i.e. no decision is made before splitting the activity
into two parts. Both parts need to be executed in case of a fork statement. We use a
rounded solid rectangular bar to represent a Fork notation with incoming arrow from the
parent activity state and outgoing arrows towards the newly created activities.
For example:
In the example below, the activity of making coffee can be split into two concurrent
activities and hence we use the fork notation.
Join
Join nodes are used to support concurrent activities converging into one. For join notations
we have two or more incoming edges and one outgoing edge.
For example:
When both activities i.e. steaming the milk and adding coffee get completed, we converge
them into one final activity.
Scenarios arise when activities which are not being executed concurrently have to be
merged. We use the merge notation for such scenarios. We can merge two or more
activities into one if the control proceeds onto the next activity irrespective of the path
chosen.
For example:
In the diagram below: we can’t have both sides executing concurrently, but they finally
merge into one. A number can’t be both odd and even at the same time.
Swimlanes
We use Swimlanes for grouping related activities in one column. Swimlanes group related
activities into one column or one row. Swimlanes can be vertical and horizontal.
Swimlanes are used to add modularity to the activity diagram. It is not mandatory to use
swimlanes. They usually give more clarity to the activity diagram. It’s similar to creating a
function in a program. It’s not mandatory to do so, but, it is a recommended practice.
For example:
Here different set of activities are executed based on if the number is odd or even. These
activities are grouped into a swimlane.
Time Event
This refers to an event that stops the flow for a time; an hourglass depicts it. We can have a
scenario where an event takes some time to completed.
For example:
Let us assume that the processing of an image takes a lot of time. Then it can be
represented as shown below.
Final State or End State
The state which the system reaches when a particular process or activity ends is known as a
Final State or End State. We use a filled circle within a circle notation to represent the final
state in a state machine diagram. A system or a process can have multiple final states.
Diagram: