Session 6 - Week 3 BPMN Part 2
Session 6 - Week 3 BPMN Part 2
Session 6 - Week 3 BPMN Part 2
SESSION 6
BUSINESS PROCESS
MODEL AND
NOTATION (BPMN 2)
- Part 2 -
BCO5501
BUSINESS PROCESS ENGINEERING
2
Acknowledgement of Country
We acknowledge the Ancestors, Elders and families of the Kulin Nation and Eora Nation
who are the Traditional Owners of University land. We also acknowledge all Traditional
Owners of Country throughout Victoria and NSW and pay our respect to their culture, and
their Elders past, present and future.
As we share our own knowledge practices within the University may we pay respect to the
deep knowledge embedded within the Aboriginal community and their ownership of Country.
We acknowledge that the land on which we meet is a place of age old ceremonies of
celebration, initiation and renewal and that the Kulin people’s living culture has a unique role
in the life of this region.
3
BPMN Levels and Process Modelling
Conformance Subclasses
◆ BPMN Level 1 palette composed of a limited working set of shapes and
symbols carried over from traditional flowcharting
◆ Sufficient for describing most process behaviour in a compact business-
friendly way
◆ In the spec, Level 1 is called Descriptive Process Modelling Conformance
Subclass
◆ BPMN Level 2 palette slightly larger to include exception handling, with
emphasis on Message, Timer, and Error events, plus some additional
branching and merging patterns
◆ Since event-triggered behaviour is a fact of life in real-world processes,
business analysts who want to use BPMN for defining solution requirements
need to learn this level
◆ Level 2 palette still has only about half of the full BPMN 2.0 working set, but
some tools don’t support all of it
◆ In the spec, Level 2 is called Analytic Process Modelling Conformance
Subclass
4
BPMN Levels and Process Modelling
Conformance Subclasses
◆ BPMN Level 3 refers to Executable BPMN
◆ Both Level 1 and Level 2 concern non-executable processes and rely solely
on information visible in the diagram.
◆ Executable BPMN, in contrast, is all about the XML details that are not
displayed in the diagram
◆ E.g. data models, detailed task assignment logic, conditional data expressions
at gateways
◆ In the spec, this is called the Common Executable Process Modelling
Conformance Subclass
◆ For non-executable process models, it’s the notation – what you see in
the diagram – that really matters
◆ If it’s not in the diagram it doesn’t count
5
6
Order Process, Top-Level Diagram
◆ Let’s take another look at our top-level Order process diagram.
◆ The details of Fulfill order are hidden, but we can drill down to see the child-level expansion
in a separate hyperlinked diagram.
◆ Note how much the top-level diagram reveals about this process.
◆ We see that the instance represents an order, since it starts upon receipt of the Order
message.
◆ It has two end states, Order complete and Order failed.
◆ The source of order failure is either
bad credit or out of stock with non-
acceptance of the offered replace-
ment.
◆ Each end state returns a different
final status message to the
Customer.
◆ With processes initiated by a
request message, it is good
practice to return final status to the
requester from message end events.
◆ It is a simple process, but not too
different from the top-level diagram of
typical real-world end-to-end processes.
7
The Level 1 Palette
◆ All of the shapes and symbols used so far are part of the Level 1 palette
◆ Called Descriptive Process Modelling Conformance subclass in BPMN 2.0
◆ If you are willing to ignore event-triggered behaviour, you can model almost
any process with the Level 1 palette.
◆ With the exception of message flows and Message events, the Level 1 notation is
basically carried over from traditional flowcharting.
◆ Complete list of the members of the Descriptive subclass in BPMN 2.0:
◆ Activity: Task (User, Service, None), Subprocess, Call Activity
◆ Gateway: Exclusive, Parallel
◆ Start event: None, Message, Timer
◆ End event: None, Message, Timer
◆ Sequence flow and Message flow
◆ Pool and Lane
◆ Data object, Data store, and Data association
◆ Documentation
◆ Artifact: Text annotation, Association, and Group
8
Step 1: Determine Process Scope
◆ Scenario: Let’s go through a car dealer’s order-to-cash process
◆ Top-down modelling starts with agreeing on the scope of the process, where it starts
and ends.
◆ The process does not have to be customer-facing, what we sometimes call end-to-end.
◆ There needs to be agreement on the scope before modelling begins.
◆ Key questions:
1. How does the process start?
◆ E.g., is it on request, either from an external entity or an internal task performer; or is it
regularly scheduled?
◆ Here: It starts with an order, an agreement from a particular buyer to buy a particular car for
an agreed price.
2. What determines when it is complete?
◆ Here: the process is not complete until the full amount of the purchase is paid and the buyer
receives the car.
3. What does each instance of the process represent?
◆ An instance of this process is a single order. What if the buyer purchase two cars?
9
Step 2: The High-Level Map
◆ High-level map activities in our example scenario:
◆ Finalise order
◆ Performed by Sales department; end states: Reserved from stock; Dealer trade; Order from factory.
◆ Acquire car from local dealer
◆ Conditional (not performed in all process instances); performed by Sales department; end state: Car
received.
◆ Acquire car from factory
◆ If the factory delivery date is later than the one estimated at the time of Finalise Order, the customer can
cancel the transaction.
◆ Conditional; performed by Sales; end states: Car received; Order cancelled.
◆ Prepare car for delivery
◆ Performed by Service department; end state: Ready.
◆ Arrange financing
◆ Can run in parallel with acquiring and preparing the car.
◆ Performed by Finance department; end states: Financing confirmed; Financing unavailable.
◆ Close and deliver
◆ May not start until both Arrange financing and Prepare car for delivery are complete.
◆ Performed by Finance department; end state: Transaction complete.
◆ Handle order cancellation
◆ Only performed when the order is cancelled before the closing.
◆ Performed by Finance department; end states: Delivery date unacceptable; Financing unavailable.
10
Step 3: Top-Level Process Diagram
◆ Now we can turn the high-level map into a top-level BPMN diagram.
◆ The process starts on request from the customer: Message start event
Receive order.
◆ Each high-level map activity becomes a subprocess in the diagram.
◆ We’ll start by considering only the “happy path” of the process and then add
the exception paths.
◆ It is often better to omit lanes in the top-level diagram and just put them in the
child-level diagrams.
11
Step 4: Child-Level Expansion
◆ The top-level diagram tells you how the process starts and ends, but it
reveals little about the internal details.
◆ For that you need to show the child-level expansion of each top-level activity.
◆ If you draw a pool, it must be named the same as the pool of the parent level,
i.e. the name of the process.
◆ You may include lanes; they are defined independently at each process level.
◆ Remember to create a separate end event for each end state of the high-
level map activity identified in Step 2, and label it with the name
of the end state.
◆ Here, we illustrate the first activity,
Finalise order, only.
12
Step 5: Add Message Flows
◆ Message flows show how your process interacts with the customer,
service providers, and other internal processes.
◆ They provide valuable business context for the process.
13
Step 5: Add Message Flows
Top-level diagram,
with message flows
14
Step 5: Add Message Flows
16
Events
◆ BPMN provides a visual language for
all these event-triggered behaviours.
◆ “Bewildering array of event types”
◆ Table with 13 rows, one for each
trigger/result type, and 8 columns, a
total of 104 distinct combinations (half
of which are combinations that are not
allowed).
◆ But: No need to memorise them all!
◆ We will focus on the “Big 3” event types
– Timer, Message and Error
17
Events
◆ Level 1:
◆ None, Message and Timer start events
and None, Message and Terminate end
events (plus Multiple start and end
events)
◆ Level 2:
◆ Adds intermediate events (double ring)
plus a few additional triggers
◆ Error, Escalation, Conditional, Signal
and Link
◆ Timer, Message and Error are the ones
you really need to know.
◆ See green highlighting
18
Intermediate Events Catching and throwing Message event
19
Boundary Events
Interrupting and non-interrupting Message boundary event
◆ A catching intermediate event drawn on the boundary of an activity
(boundary event) does not signify waiting.
◆ It means while the activity is running the process listens for that signal.
◆ If it occurs before the activity completes, the sequence flow out of the event
(the exception flow) is triggered.
◆ On the other hand, if the activity completes without the occurrence of the
boundary event signal, the exception flow is ignored and the process
continues on the sequence flow out of the activity (the normal flow).
◆ A boundary event has no incoming sequence flow and must have exactly
one outgoing sequence flow, the exception flow.
20
Boundary Events
Interrupting and non-interrupting Message boundary event
◆ Two types of boundary events
◆ Interrupting boundary event (solid double ring) means the activity that the event is
attached to is terminated immediately upon occurrence of the trigger signal.
◆ The process continues immediately on the exception flow.
◆ Message, Timer and Error events all support interrupting boundary event
behaviour.
◆ A non-interrupting boundary event (dashed double ring) does not terminate the
activity.
◆ The activity continues uninterrupted, and when it completes, the process continues
on the normal flow.
◆ But, in addition, upon occurrence of the trigger a new parallel path of the process
is instantiated immediately on the exception flow.
◆ In this case, the exception flow represents actions taken in addition to those on the
normal flow.
◆ Non-interrupting events are new in BPMN 2.0
◆ Message and Timer events support non-interrupting boundary event
behaviour
◆ Error boundary events are always interrupting.
21
Timer Event
Catching Timer Event
◆ Drawn with a sequence flow in and out,
a catching Timer event represents a delay.
◆ It means either
◆ wait for [specified duration] or
◆ For example, you might want to wait for a short while before retrying an
activity such as polling for posted data.
◆ wait until [specified date/time].
◆ You can also use a catching Timer to model a wait for a scheduled action,
such as a semi-monthly check run.
◆ A catching Timer event does NOT mean waiting for something to occur,
such as a response to a request; that would be a Message event.
◆ You don’t use a catching Timer event to signify that an activity “usually”
takes three days
◆ You can use a Timer boundary event to say what happens
if the activity takes longer than three days.
22
Timer Event
Timer Boundary Event
◆ A Timer boundary event acts like a
combination stopwatch and alarm clock.
◆ By convention, the stopwatch starts when the activity the event is attached to
starts, i.e., when the sequence flow into the activity arrives.
◆ If the activity is not complete by the Timer event’s specified duration or date-time
parameter, the alarm is triggered.
◆ An interrupting Timer event aborts the activity, and the process continues
immediately on the exception flow.
◆ A non-interrupting Timer event immediately triggers a parallel thread of
execution on the exception flow without aborting the activity or the normal
flow out of it.
◆ Example above (interrupting Timer boundary event):
◆ If the search for internal candidates does not complete within two weeks, you
want to abandon it and engage an external search firm.
◆ Note: exception flow and normal flow are exclusive alternatives,
so no gateway is needed to merge them.
23
Timer Event
Timer Boundary Event
◆ A non-interrupting Timer event is often more useful.
◆ If something takes too long, you usually want to keep doing it but do
something else in addition, such as notify the requester, notify the manager
or get additional help.
◆ Since it does not terminate the activity it is attached to, a non-interrupting
Timer event could be triggered multiple times (e.g. label every hour).
◆ Example above (non-interrupting Timer boundary event):
◆ If it takes more than 4 hours to complete a service request, you want to notify
the manager but keep performing the service.
◆ The exception flow is triggered at 4 hours after Perform service starts, but it
does not terminate Perform service, and after completion the process
continues to Send invoice.
◆ With non-interrupting events, the normal flow and the exception flow are
performed in parallel.
◆ Here we join the normal and exception flow paths directly to the end event,
since a gateway is not used to join into a None end event.
24
Timed Interval
◆ A Timer boundary event measures the time from start to completion of a
single activity, but what if you want to time the interval from point A to
point B in the process, spanning multiple activities?
◆ Wrap the fragment from point A to point B in a subprocess, and attach the
Timer event to the subprocess boundary.
25
Timer Event vs. Gateway
◆ Example: A wireless carrier’s Add Plan Features process
◆ Adding the features is supposed to take no longer than one hour. If it does,
we want to notify the customer with the expected completion time.
◆ Question:
Does the customer notification occur at the same time in both diagrams?
26
Message and Message Flow
27
Send Task and
Throwing Message Event
◆ A message may be sent from a black-box pool, a throwing Message
event, or any type of activity.
◆ Recall that a message flow out of an activity signifies the possibility of
sending the message, not the certainty of it.
◆ To be able to say that a step in the process always sends the message,
BPMN Level 2 offers two ways
◆ A Send task (black envelope icon) is a task that does only one thing, send a
message.
◆ A throwing Message intermediate event does the same thing and is effectively
the same as a Send task.
◆ There are some subtle differences, which we are going to ignore here.
28
Receive Task and
Catching Message Event
◆ We have already seen that a Message start event creates a new process
instance when the message is received.
◆ We can also receive a message in the middle of a process
◆ As with sending, a message flow into a user task only suggests the
possibility of incoming message, not the certainty of it.
◆ A Receive task (white envelope icon) is a task that does only one thing, wait
for/receive a message.
◆ When the incoming sequence flow arrives, the process instance pauses; when
the message arrives, the process immediately resumes on the outgoing sequence
flow.
◆ A catching Message intermediate event does the same thing and is effectively
the same as a Receive task.
◆ There are some subtle differences, which we are going to ignore here.
29
Asynchronous and Synchronous Messaging
◆ Send and receive tasks, or throwing and catching events, represent
asynchronous communications.
◆ As soon as the process sends the message, the flow continues on the
outgoing sequence flow; it does not wait for a response message.
◆ Synchronous communications, on the other hand, means when the
process sends a message it waits for a response before continuing.
◆ A Service task is an example of synchronous communications.
◆ It’s an automated request for an action performed by some external system,
with receipt of that system’s response.
◆ The Service task is not complete until it receives the response from the
system that performs the action.
◆ If an automated function is long-running (minutes, hours, weeks),
represent it with separate Send and Receive tasks (with message flows).
◆ Reserve Service tasks for short-running actions.
30
Message Inter-
mediate Events
◆ Example of the use of throwing and catching Message intermediate
events in a process for issuing a credit card.
◆ If the Customer’s application is missing required information, the process
sends a request for it and waits for the response.
◆ Whenever you use a Message event you should draw the message flow, and
label both the event and the message flow.
◆ The event should be labelled with the action (e.g., Request X), and the
message flow should be labelled with the name of the message.
◆ Better solution…?
31
Event Gateway
32
Message Boundary Event
33
Multiple Boundary Events
34
Error Event
35
Error Throw-Catch
◆ If Check credit were a subprocess, the Bad credit Error boundary event
on the subprocess implies the child-level expansion must contain a
corresponding Error end event Bad credit.
◆ An Error end event in a subprocess throws an error signal to the boundary of
the subprocess, where it is caught by the Error boundary event and exits on
the exception flow.
◆ => Error throw-catch pattern (propagating an exception from child to parent
levels)
Parent level
Child level
36
Loop Activity
◆ BPMN provides a way to say that an activity, either task or subprocess, is
not complete until it is performed multiple times.
◆ A loop activity (circular arrow marker at bottom centre) is like Do-While in
programming.
◆ Perform the activity once, and then evaluate the loop condition, a Boolean
data expression.
◆ If the condition is true, perform the activity a second time, evaluate again etc.
◆ When the loop condition is false, the sequence flow out of the loop activity is
enabled.
◆ With loop activities, the iteration is always sequential.
<=>
37
Multi-Instance Activity
◆ A multi-instance (MI) activity (marker of 3 parallel bars at the bottom centre)
is like For-Each in programming.
◆ Perform the activity once for each item in a list.
◆ In a single process instance, there are multiple instances of the activity, and
each activity instance acts on one item in the list.
◆ List: A multi-instance activity only makes sense when the process instance data
contains some kind of collection, such as items in an order.
◆ In an order process, MI activity Check stock means check the stock of each order
item.
◆ Each order does not have the same number of items, but when Check stock begins
for a particular order, you already know how many iterations will be required. It’s the
number of items in the order.
◆ This is a fundamental difference between multi-instance and loop activities.
◆ MI instances may be performed in parallel (if so, the MI marker is 3 vertical
bars).
◆ If the instances are always performed sequentially, the marker is 3 horizontal
bars.
<=>
38
Using Multiple Pools
39
OR Gateway Split
◆ The inclusive gateway, also called the OR gateway (O symbol inside),
represents conditional split.
◆ Like the exclusive (XOR) gateway, each gate has a Boolean condition, but
here the conditions are independent.
◆ More than one of them could be true, and each gate with a true condition is
enabled.
◆ If two or more are enabled, those paths run in parallel.
◆ An OR gateway split requires a condition on each of its gates.
◆ If the gate is always enabled, use the label Always.
◆ A gate with a tickmark is called the default flow, which means “otherwise”.
◆ It is enabled if and only if no other gate is enabled for the process instance.
40
OR Gateway Join
◆ If some of the parallel paths to be joined are conditional, meaning not
enabled in every process instance, you may still join them, but you use
an OR gateway, not an AND gateway.
◆ An OR gateway join is like an AND gateway join except that it ignores
incoming sequence flows that are not enabled for this process instance.
◆ In the example below, either one or two of the flows could be enabled in any
process instance. The OR gateway join ignores the incoming sequence flows
that are not enabled in this instance.
41