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.