-
BPMN 2.0 Introduction to the Standard for
Business Process Modeling
By
Thomas Allweyer
2.1
A First BPMN
Model
As a starting point, a simple
BPMN process model is considered. The model of
posting a job in
figure 1 can be
directly understood by most people who previously
have been concerned with any
kind of
process modeling. The way of modeling is similar
to well known flow charts and activity
diagrams.
Figure
1: A simple BPMN model
A business
department and the human resources department are
involved in the process
“
Post a
Job
”
. The process
starts when an employee is required. The business
department reports this job
opening.
Then
the
human
resources
department
writes
a
job
posting.
The
business
department
reviews this job posting.
At
this point, there are two possibilities: Either
the job posting is okay, or it is not okay. If it
is not
okay,
it
is
reworked
by
the
human
resources
department.
This
is
once
more
followed
by
the
business department
reviewing the job posting. Again, the result can
be okay or not okay. Thus, it
can
happen that the job posting needs to be reviewed
multiple times. If it is okay, it is published by
the human resources department, and the
end of the process is reached.
In
reality, the process for creating and publishing a
job posting can be much more complex and
extensive.
The
presented
example
is
–
like
all
examples
in
this
book
–
a
simplification
in
order
to
have
small
and
easily
understandable
models
which
can
be
used
for
explaining
the
different BPMN elements.
2.2
BPMN
Constructs Used
Below each element from the
model in figure 1 is explained more closely. The
entire process is
contained in a pool.
This is a general kind of container for a complete
process. In the example
above, the pool
is labeled with the name of the contained process.
Every process is situated within a
pool. If the pool is not important for
understanding the
process, it is not
required to draw it in the diagram. In a process
diagram which does not show a
pool, the
entire process is contained in an invisible,
implicit pool. Pools are especially interesting
when several pools are used in order to
model a collaboration, i.e. the interplay of
several
partners
’
processes. Each
partner
’
s process is then
shown in a separate pool. This will be
described in chapter 5.
The pool from
figure 1 is partitioned into two lanes. A lane can
be used for various purposes,
e.g. for
assigning organizational units, as in the example,
or for representing different components
within a technical system. In the
example, the lanes show witch of the
process
’
s activities are
performed by the business department
and which by the human resource department.
Pools and lanes are also called
“
swimlanes
”
.
They resemble the partitioning of swimming
pools into lanes. Every participant of
a competition swims only in his own process
itself
begins with the start event
“
Employee
required
”
. Processes usually
have such a start event. Its
symbol is
a simple circle. In most cases it makes sense to
use only one start event, not several
ones.
A rounded rectangle
represents an activity. In an activity something
gets done. This is
expressed by the
activities
’
names, such as
“
Report Job
Opening
”
or
“
Review Job
Posting
”
.
The connecting
arrows are used for modeling the sequence flow.
They represent the sequence
in which
the different events, activities, and further
elements are traversed. Often this is called
control flow, but in BPMN there is a
second type of flow, the message flow, which
influences the
control of a process as
well, and is therefore some kind of control flow,
too. For that reason, the
term
“
sequence
flow
”
is used.
For distinguishing it from other kinds of flow, it
is important to
draw sequence flows
with solid lines and filled arrowheads.
The
process
“
Post a
Job
”
contains a
split: The activity
“
Review
job posting
”
is
followed
by a gateway. A blank diamond
shape stands for an exclusive gateway. This means
that out of
several outgoing sequence
flows, exactly one must be selected. Every time
the right gateway in
the job posting-
process is reached, a decision must be taken.
Either the sequence flow to the right
is followed, leading to the activity
“
Publish Job
Posting
”
, or the one to the
left is selected,
triggering the
activity
“
Rework Job
Posting
”
. It is not possible
to follow both paths
simultaneously.
The
logic of such a decision is also called
“
exclusive
OR
”
, abbreviated
“
XOR
”
.
The
conditions on the outgoing paths
determine which path is selected. If a modeling
tool is used and
the process has to be
executed or simulated by a software program, then
it is usually possible to
formally
define exact conditions. Such formal descriptions,
which may be expressed in a
programming
language, can be stored in special attributes of
the sequence flows.
If, on the other hand, the
purpose of a model is to explain a process to
other people,then it is
advisable to
write informal, but understandable, statements
directly into the diagram, next to the
sequence flows. The meaning of
“
okay
”
and
“
not
okay
”
after the
activity called
“
Review
Job Posting
”
is clear to humans
–
a program could
not make use of it.
Gateways are also used for
merging alternative paths. In the sample process,
the gateway on
the left of the activity
“
Review Job
Posting
”
merges
the two incoming sequence flows. Again,
this is an exclusive gateway. It
expects that either the
activity
“
Write Job
Posting
”
or
“
Rework
Job
Posting
”
is
carried out before the gateway is reached
–
but not both at
the same time. It
should be taken care
to use a gateway either for splitting or for
joining, but not for a combination
of
both. The last element in the example process is
the end event. Like the start event it has a
circle as symbol
–
but with a
thick border.
2.3
Sequence Flow Logic
The flow logic of the job
posting process above is rather easy to
understand. In more complex
models it
is sometimes not clear how the modeled structure
exactly is to be interpreted. Therefore
it is helpful if the meaning of the
sequence flow
’
s elements is
defined in an unambiguous way.
The logic of a process
diagram
’
s sequence flow can
be explained by
“
tokens
”
. Just as in a
board
game tokens are moved over the board according to
the game
’
s rules, one can
imagine
moving tokens through a process
model according to BPMN
’
s
rules.
Every
time the process is started, the start event
creates a token (cf. figure 2). Since the job
posting process is carried out more
than once, many tokens can be created in the
course of time.
Thereby it can happen
that the process for one job posting is not yet
finished, when the process for
posting
another job starts. As it moves through the
process, each token is independent from the
other tokens
’
movements.
Figure 2: A start event creates a token
The token that has been created by the
start event moves through the sequence flow to the
first
activity. This activity receives
a token, performs its task (in this case it
reports a job opening), and
then
releases it to the outgoing sequence flow (cf.
figure 3).
Figure 3: An
activity receives a token and forwards it after
completion
The following activity
forwards the token. It then arrives at the merging
exclusive gateway. The
task of this
gateway is simple: It just takes a token that
arrives via any incoming sequence flow
and moves it to the outgoing sequence
flow. This is shown in figure 4. In case A, a
token arrives
from the left, in case B
from below. In both cases the token is routed to
the outgoing sequence
flow to the
right.
Figure 4: Routing of
a token by a merging exclusive gateway
The task of the splitting exclusive
gateway is more interesting. It takes one arriving
token and
decides according to the
conditions, to which sequence flow it should be
moved. In case A in
figure 5, the
condition
“
okay
”
is true, i.e. the preceding review
activity has produced a positive
result. In this case, the token is
moved to the right. Otherwise, if the condition
“
not
okay
”
is true,
the token is moved to the downwards
sequence flow (case B).
The modeler
must define the conditions in such a way that
always exactly one of the conditions is
true. The BPMN specification does not
state how to define conditions and how to check
which