BPMN diagrams
Definition
BPMN (or
"Business Process Modeling Notation") diagrams support business
process modeling.
A BPMN diagram
is constructed around activity flows ("Tasks" and "SubProcesses"),
associated with flow control events ("Events" and
"Gateways"). Other elements central to a BPMN diagram are structuring
elements oriented around process participants ("Pools" and "Lanes"),
and artifacts produced and consumed by activities ("DataObjects").
The main aim of BPMN
is to provide notation that is truly understandable by all company users
including:
· business analysts who create the preliminary outline of procedures
· developers who are in charge of implementing the technology that will run procedures
· company users who will manage and apply procedures.
In this way, BPMN provides standardized notation to bridge the gap between business process modeling and process implementation.
An example of a
BPMN diagram is shown in the figure below.

An example of a BPMN diagram
BPMN elements
The following table provides an exhaustive list of all the elements that can feature in a BPMN diagram.
|
Element type |
Icon |
Element |
||
|
Elements |
|
Task |
||
|
|
MultipleInstanceTask |
|||
|
|
ActivityLoopingTask |
|||
|
|
SubProcess |
|||
|
|
MultipleInstanceSubProcess |
|||
|
|
ActivityLoopingSubProcess |
|||
|
|
Transaction |
|||
|
|
Group |
|||
|
|
DataObject |
|||
|
|
CompensationTask |
|||
|
|
Pool |
|||
|
|
Lane |
|||
|
|
TextAnnotation |
|||
|
Gateways |
|
ExclusiveGateway |
||
|
|
EventBasedGateway |
|||
|
|
InclusiveGateway |
|||
|
|
ComplexGateway |
|||
|
|
ParallelGateway |
|||
|
Events |
Start |
Inter |
End |
|
|
|
|
|
Event |
|
|
|
|
|
Message |
|
|
N/A |
|
|
Error |
|
|
N/A |
|
|
Cancel |
|
|
N/A |
|
|
Compensation |
|
|
|
|
N/A |
Timer |
|
|
|
|
N/A |
Rule |
|
|
|
|
|
Link |
|
|
|
|
|
Multiple |
|
|
N/A |
N/A |
|
Terminate |
|
Tasks
A "Task" is an atomic activity participating in a process. It represents a process activity that cannot be broken down into sub-activities.
Four activity sub-types exist:
·
Tasks
·
LoopTasks
·
MultipleInstanceTasks
·
CompensationTasks
|
Element |
Role |
Creation icon |
|
Task |
Atomic activity participating in a process. |
|
|
LoopTask |
Iterative atomic activity. |
|
|
MultipleInstanceTask |
Iterative atomic activity that can contain several parallel instances. |
|
|
CompensationTask |
Compensation activity triggered following the failure of a
transaction. |
|
CompensationTasks
A
CompensationTask is an activity triggerered by a CompensationEvent.
In BPMN, an activity can be considered as a transaction. If a transaction fails, the CompensationEvent is triggered and the CompensationTask run.
A CompensationTask cannot have outgoing flows.

Example of a CompensationTask
SubProcesses
A SubProcess is an activity participating in a process that can contain other activities and controls. SubProcesses are used when it is necessary to describe the behavior of an activity in more detail.
Three SubProcess sub-types exist:
· ActivityLoopingSubProcesses
· MultipleInstanceSubProcesses
· SubProcessReferences
|
Element |
Role |
Creation icon |
|
SubProcess |
Subdivisible activity participating in a process. |
|
|
LoopSubProcess |
Iterative subdivisible activity. |
|
|
MultipleInstance SubProcess |
Iterative subdivisible activity that can contains several parallel
instances. |
|
|
Compensation SubProcess |
Subdivisible compensation activity triggered following the failure of
a transaction. A CompensationSubProcess cannot have outgoing flows. |
|
Gateways
Gateways are activity
flow control elements that manage flow divergence and convergence.
The notions of
"Fork", "Join" and "Merge" are implemented
through gateways, as are conditions.
Five types of gateway exist:
· ExclusiveGateways
· InclusiveGateways
· ParallelGateways
· EventBasedGateways
· Complex Gateways
|
Element |
Role |
Creation icon |
|
ExclusiveGateway |
An ExclusiveGateway is used when the
process flow divides into two or more flows. As the process proceeds, only
one of these flows is taken (XOR). |
|
|
InclusiveGateway |
An Inclusive Gateway is used when the process flow divides into two
or more flows. As the process proceeds, several outgoing flows can be
simultaneously taken (OR). |
|
|
ParallelGateway |
A ParallelGateway is used to manage parallel flow creation and
syncrhonization. As the process proceeds, all outgoing flows are
simultaneously taken. |
|
|
EventBasedGateway |
An EventBasedGateway is used when the
process flow divides into two or more flows. An EventBasedGateway's outgoing flows are "Flows" linked to "IntermediaryEvents". |
|
|
ComplexGateway |
A ComplexGateway is used when the process flow divides into two or
more flows. A ComplexGateway
is used in situations where other types of gateway cannot be used. |
|
Forks
To define a Fork, a ParallelGateway is used, as shown below.

Using a ParallelGateway to define a Fork
Joins and Merges
To define a Join
or a Merge, a ParallelGateway is also used.

Using a ParallelGateway to define a Merge
Events
The notion of event is used to represent "something that happens" during the execution of the process. These events affect the flow of the process.
Three types of event exist:
·
StartEvents,
which trigger the process.
·
IntermediateEvents,
which take place between the start and the end of the process.
Ø IntermediateEvents can intervene during the process flow, signifying that an event must be triggered in order for the process to continue (as shown below).

Ø An IntermediateEvent can intervene alongside a
Task or a SubProcess. In this case, it
represents an event triggered during the execution of the activity (as shown
below).

· EndEvents, which mark the end of the process.
|
Element |
Role |
Start |
Inter |
End |
|
Event |
Any event. |
|
|
|
|
Message |
Event implying the reception or sending of a message. |
|
|
|
|
Error |
Event implying the triggering of an error. |
N/A |
|
|
|
Cancel |
Event triggered
when a transaction is cancelled. |
N/A |
|
|
|
Compensation |
Event triggered when a transaction fails. |
N/A |
|
|
|
Timer |
Event linked to a specific date or a temporal cycle. |
|
|
N/A |
|
Rule |
Event triggered when a rule becomes true. |
|
|
N/A |
|
Link |
Event used to connect the end of one process to the beginning of the
next. |
|
|
|
|
Multiple |
Event resulting from the composition of other types of event. |
|
|
|
|
Terminate |
Event used to
indicate that all activities on the process must be immediately suspended. |
N/A |
N/A |
|
Swimlanes
Swimlanes represent a participant in a process. They are used as containers and organize the process around participants.
A swimlane can contain "Pools", high-level containers, and "Lanes", which represents sub-divisions of "Pools".
|
Element |
Role |
Creation icon |
|
Pool |
A Pool represents a participant in the process. Pools are used as high-level
containers and organize the process around participants. |
|
|
Lane |
A subdivision of a Pool. |
|
Artifacts
|
Element |
Role |
Creation icon |
|
DataObject |
Artifacts produced
and consumed by the activities of the process. |
|
|
Transaction |
A "Transaction" is a diagram region used to represent the
existence of a transaction containing all the activities present. |
|
|
Group |
A "Group" is a diagram region used to group together the
process' elements. |
|
Flows
Flows are used to link and sequence process elements.
|
Element |
Role |
Creation icon |
|
Flow |
Flow used to
sequence two of a process' activities. |
|
|
ConditionalFlow |
A conditional flow. |
|
|
DefaultFlow |
A default flow. |
|
|
MessageFlow |
Flow used to make a message transit between two of a process'
entities. |
|
Activity sequencing

Example of activity sequencing
Using ConditionalFlows and DefaultFlows
A conditional
branch can be expressed in two different ways using ConditionalFlows and
DefaultFlows:
· Through the use of a Gateway, as shown below :

· By directly attaching Flows to Tasks (see figure below). This makes the presence of an InclusiveGateway implicit.
