BPMN

From GEST-S482 Digital Business
Jump to navigation Jump to search

BPMN

What is BPMN ?
Business Process Model and Notation (BPMN) is a language that allows us to model a process.

BPMN is a graphic notation that captures the logic of the activities, messages between the various participants and all information necessary for a process to be analyzed, simulated and implemented.

The processes of a company are considered as the most important asset. BPMN is a tool used to illustrate business processes by using asset of figures. A process model helps to improve how yours manage your business processes and document how they really work and then improve them.

First step : Modeling your process. BPMN is a unified language used to diagram your business processes in a clear, standardized and comprehensive way. It helps the company to understand the general idea of the processes within the company and help them to communicate.

This language can be used to model complex process and it can be used by management people and technician such as engineer: BPMN create a mapping of the process.

Why to model it ?

There are 4 main reasons why modeling a Business Process can be usefull.

Communication
A modeled Business Process is much clearer and easier to understand than just words. It can be used as explanation of how the process works or as as support to base the explanation on.

Fixing or optimization
As the process is, in general, much clearer under the form of BPMN, it is also easier to see where the issues of the process are or where it can be optimized (especially for complex processes).

Simulation
For some steps of the process, it can be interesting to simulate it to have an idea of what it will take in terms of time or ressources. Thanks to a simulation it is also easier to evaluate the consequences of an improvement or a change of the process or a part of it.

Automation
This is very important in terms of profit for a company; it can shorten a process, standardize it but it can also have an negative impact on the flexibility. So, having the business process in the form of BPMN is helpful in order to automate a process.

Pools and Lanes

We all know what a pool is and lanes are the lanes in a pool.

Pools and lanes represent the Who. Lanes represent the category of agent who will do the action (typically a department in an entreprise). Each Lane belongs to a pool. To know where the pool stops we need to ask ourselves the questions : Are the lanes controlled by the same entity ? If they are, they belong to the same pool.

e.g1: The lanes : "Waiters" and "Cooks" need to be in the same pool (because they belong to the same restaurant).

e.g2: The lanes : "Cooks" and "Uber Eat's Drivers" need to be in different pools (because Uber Eat is a different entity).

LanePool.png

Activities and links between activities

In each lanes, agents will do some tasks. Those tasks are called Activities.

Linking activities in the same pool is easy, we can draw a line from an activity to another.

However, linking activities between two different pools cannot just be done with a line. We have to send a Message (and therefore write what the message contains). To define a message, you need to identify the pool sending the message which is quite obvious but you also need to know your target pool. In it, you will have to select a target element. A message always has a sender and a receiver.

Gateways

Gateways allow us to put condition and do control flow (such as in Python) - Splitters Gateways can also be used as colliders Gateways are used to control the divergence and convergence of sequence flows. The term “Gateway” implies that there is a gating mechanism that either allows or disallows passage through the Gateway.

XOR

The XOR is the exclusive OR (it's either one or the other), we can talk about the XOR as a splitter or as a collider.
First, the splitter XOR gateway is used as a start of a branching structure which means that exactly one of the branches will be followed (these branches are mutually exclusive). e.g: To go home you can take path A OR path B (not both)

Second, the XOR as a collider will do what is after the XOR, if any of its predecessor ends and will not waiting for both source event to be complete. So when it is used as an aggregator of two branches (collider), only one condition must be fulfilled before you can go on with the process (equivalent to say "If one of these conditions is fulfilled, I can continue").

e.g: After taking path A OR after taking path B you will check if you have new mails in your mailbox

XOR.png

AND

The AND is the same as in python, it will do the action only if every condition is fulfilled.

  • The AND gateway as an aggregate : It aggragates several branches, this indicates that all the branches must be completed before going on with the process.
 e.g: you only go skiing if you feel like it AND it snows
  • The AND gateway as a collider : It will do what is after when all its predecessor have been completed (if everything has been done, go ahead). So all the branches must be completed before going on with the process (equivalent to say "If all of these conditions is fulfilled, I can continue").
AND.png

OR

  • The OR is the inclusive OR (one or more path will be taken). We can think of : If x, also if y, also if z, ...
e.g: You want a new house. If your wife wants a big dressing room, you'll take a house with a big dressing room. Also if you want a home theater, you'll take a house with a home theater.
  • The OR gateway as a collider will do what's next if all what's before has been completed or do not exist (because the condition that could create them was not fulfilled). It means that the process wait for a subset of the branches to be terminated before going on (which entails that the branches were originally split by another OR gateway).
e.g: We bring the meal to the table if all the vegetables are init (if any), the meat is init (if any) the fish is init (if any), ... 
OR.png

Summary

  • Here is a summary of the difference between AND, OR and XOR:
AND OR XOR .png

Special behaviour elements

Some additional usefull tools including specific set of events, repeating, and correlation. These elements allow us to design executable workflow that can behave in complex ways.

  • Messages and message flow are used to transfer action or data from one pool/process to another and to correlate related processes.

There are two main types of messages: task messages and event messages.
Task messages are mandatory steps in the process, they are sent because one must perform a task. The task messages are used to link two pools with "send" and "receive" actions.
Event messages come from external factors (i.e. outside the process), they are used to inform and do not require any action from anyone.

  • Signals are used to send data to multiple activities simultaneously.
  • Correlation is used to coordinate progress between to running process instances.
  • Timers are used to launch periodic activities, or to ensure that an activity happens within a specified deadline.
  • Errors are used to define behaviour when the system encounters error.
  • Repeating is used to repeat behaviour, such as multiple launches of the same task, or repeating the same task multiple times.

Here is a summary of the main BPMN events:

Main Events


Bonita Software

A way to model BPMN is with Bonita BPM.

An example of a BPMN model done with Bonita

Check your understanding

Question 1: You need to use a "send message" task to link two activities in different lanes

  • True
  • False

Question 2: A XOR gateway used as collider will make the process go ahead

  • Only if specific condition is fulfilled
  • If any of its predecessor ends
  • If all its predecessors end
  • If the end of the process is attained

Question 3: An important advantage of BPMN diagrams is that it is usually shorter than the description of the process.

  • True
  • False

Question 4: According to you, which of those are required beside what we have done to be able to simulate a process in order to get the distribution of total process time?

  • A distribution of the time it takes to execute each task
  • A covariance matrix of the times between every task combination
  • A strict definition of the messages that are passed. This is more used to determine and automate interfaces.
  • A notion of available resources (employees and/or material resource)

Solutions

  • Question 1: False
  • Question 2: If any of its predecessor ends
  • Question 3: False
  • Question 4: A distribution of the time it takes to execute each task, A covariance matrix of the times between every task combination, A notion of available resources (employees and/or material resource)


Link to the assistant web page


Examination of BPMN

A BPMN schema may be presented and you would be asked to deduct which type of process it supports, or where there could be areas for quick improvements.


Where to go ?

Main page Exercises - Next Session Automating