Lecture 4
Process Modeling (part2)
1
Learning Objectives
• Understand key concepts of business processes, and the importance
of systematically managing such processes to improve organizational
performance
• Identify and document business processes at different levels of detail
using contemporary process modelling techniques
2
Content
Process Modelling
• Describe the essential concepts of process models, namely how process models
relate to process instances.
• Definition of the Process Architecture.
• Explain the four main structural blocks of branching and merging in process
models. These define exclusive decisions, parallel execution, inclusive decisions,
and repetition
• Learn how to use sub-processes to reduce
the model’s complexity, and how to reuse these sub-process models from
within
different process models
• Exercise 3 -4
3
Course structure
Process
Week 2
identification
Process Weeks 3-4
discovery
Process
Weeks 12-14 Process Weeks 5-7
monitoring and
controlling analysis
Weeks 10-11 Process Process Weeks 8-9
implementation redesign
BPMN Main Elements - Recap
Flow Objects Connections
Activity
Message Association
Gateway
Event
Flow
Pools & lanes Artifacts
Pool
Data Data
Object Store
Lane
BPMN Gateways
Exclusive Parallel Inclusive
(XOR) (AND) (OR)
• Exclusive decision • Parallel split • Inclusive decision
take one branch take all branches take one or several
• Exclusive merge • Parallel join branches depending
Proceed when one proceed when all on conditions
branch has completed • Inclusive merge
incoming branches
have completed proceed when all
active incoming
branches have
completed
Exercise: critique the following model
http://tinyurl.com/nnnfgd5
Anything wrong with this model?
Is this better?
Identifying sub-processes
Acquire raw materials
Ship and invoice
Using the Expanded Sub-Process Notation
Sub-processes
• An activity in a process can invoke a separate sub-process
• Use this feature to:
1. Decompose large models into smaller ones, making them easier to understand and
maintain
Guideline: Multi-level modeling
• Level 1: value chain
• Simple linear description of the phases of the process
• No gateways
• Each activity chain is a sub-process
• Level 2+: expand each activity in the value chain, add incrementally the
following:
• Decisions, handoffs (lanes, pools)
• Parallel gateways, different types of events
• Data objects & data stores
• And as much detail as you need, and no more
Multi-Level Modeling: Example
Level 1:
Value Chain
Level 2: … …
Detailed
Processes
Sub-processes
• An activity in a process can invoke a separate sub-process
• Use this feature to:
1. Decompose large models into smaller ones, making them easier to understand and
maintain
2. Delimit parts of a process that can be:
• Repeated
• Interrupted
Events
Block-Structured Repetition
Block-structured repetition: Activity loop
Activity loop markers allow us to state that a task or a sub-process may be repeated
multiple times
Task Sub-process
Loop Loop
More on rework and repetition
XOR-join: entry point XOR-split: exit point
Structured
cycle (SESE
component)
Example: block-structured repetition
Completion
condition
Until Response is approved
Finalise
Assign Investigate
Ministerial
Ministerial Ministerial
Response
Enquiry Enquiry
Ministerial Ministerial
Enquiry Enquiry
received finilized
Prepare Review
Ministerial Ministerial
Response Response
Enquiry Response
investigated reviewed
Must have a
decision activity
Parallel repetition: multi-instance activity
The multi-instance activity provides a mechanism to indicate that an activity is
executed multiple times concurrently
Multi-Instance Multi-Instance
Task Sub-process
Useful when the same activity needs to be executed for multiple entities or data items, such as:
• Request quotes from multiple suppliers
• Check the availability for each line item in an order separately
• Send and gather questionnaires from multiple witnesses in the context of an insurance claim
Example: multi-instance activity
Procurement
In procurement, typically a quote is to be obtained from all preferred suppliers
(assumption: five preferred suppliers exist). After all quotes are received, they are
evaluated and the best quote is selected. A corresponding purchase order is then
placed.
Solution: without multi-instance activity
Procurement
Obtain Quote
from Supplier A
Obtain Quote
from Supplier B
Obtain Quote Select best ...
... Place PO
from Supplier C quote
Obtain Quote
from Supplier D
Obtain Quote
from Supplier E
Solution: with multi-instance activity
Procurement
cardinality
For each supplier
... Select best ...
Obtain Quote Place PO
quote
Events
Events
Events
In BPMN, events model something instantaneous happening during the execution of a
process
Types of event:
• Start
• Intermediate
• End
BPMN event types
Start Intermediate End
Untyped Event – Indicates that an instance of the
process is created (start) or completed (end),
without specifying the cause for creation/completion Catching
Start Message Event – Indicates that an instance
of the process is created when a message is
received
End Message Event – Indicates that an instance of
the process is completed when a message is sent
Intermediate Message Event – Indicates that an
event is expected to occur during the process. The
event is triggered when a message is received or
sent
Comparison with sending/receiving tasks
= Receive
invoice
Invoice
received
Invoice
= Send invoice
sent
Invoice
= Send invoice
sent
≠
Receive
invoice
Invoice
received
So, when to use what?
Use message events only when the corresponding activity would simply send or receive a message and
do nothing else
Temporal events
Start Intermediate End
Start Timer Event – Indicates that an instance of the
process is created at certain date(s)/time(s), e.g. start
process at 6pm every Friday
Intermediate Timer Event – Triggered at certain date(s)/
time(s), or after a time interval has elapsed since the
moment the event is ³enabled´ (delay)
Example
A Purchase Order (PO) handling process starts when a PO is received. The PO is first
registered. If the current date is not a working day, the process waits until the
following working day before proceeding. Otherwise, an availability check is
performed and a PO response is sent back to the customer.
Next working day
weekend/
holiday
weekday Check Send PO
Register PO
Availability Response
PO PO
Received fulfilled
Recap: Message and Timer events
Start Intermediate End
Catching Catching Throwing Throwing
process message message process
starts upon received sent during ends upon
message during the the process message
received process sent
process time event
starts when occurred
time event (to model delay)
occurs
Data-based vs. event-based choices
• In an XOR-split gateway, one branch is chosen based on expressions
evaluated over available data
Choice is made immediately when the gateway is reached
• Sometimes, the choice must be delayed until something happens
Choice is based on a “race between events”
• BPMN distinguishes between:
• Exclusive decision gateway (XOR-split)
• Event-based decision gateway
Event-based decision
With the XOR-split gateway, a branch is chosen based on conditions that evaluate over
available data
The choice can be made immediately after the token arrives from the incoming
flow
Sometimes, the choice must be delayed until an event happens
The choice is based on a “race” among events
data-driven event-based
XOR-split gateway
Choices outside our control…
A restaurant chain submits a purchase order (PO) to replenish its warehouses every
Thursday. The restaurant chain’s procurement system expects to receive either a “PO
Response” or an error message. However, it may also happen that no response is
received at all due to system errors or due to delays in handling the PO on the
supplier’s side. If no response is received by Friday afternoon or if an error message is
received, a purchasing officer at the restaurant chain’s headquarters should be notified.
Otherwise, the PO Response is processed normally.
Solution: event-driven XOR split
Stock replenishment
Events
Exception Handling
Abortion (terminate event)
Exceptions are events that deviate a process from its “normal” course
The simplest form of exception is to notify that there is an exception (negative
outcome)
This can be done via the Terminate end event: it forces the whole process to abort
(“wipes off” all tokens left behind, if any)
Example: terminate event
Abort the process by removing all tokens…
Exception handling
Handling exceptions often involves stopping a sub-process and performing a special
activity
Types of exceptions for an activity (task/sub-process) in BPMN:
External: something goes wrong outside the process, and the execution of the current activity must be
interrupted. Handled with the Message event
Internal: something goes wrong inside an activity, whose execution must thus be interrupted. Handled with the
Error event
Timeout: an activity takes too long and must be interrupted. Handled with the Timer event
All these events are catching intermediate events. They stop the enclosing activity and
start an exception handling routine.
Let’s extend our PO handling process
PO handling
A PO handling process starts when a PO is received. The PO is first registered. If the
current date is not a working day, the process waits until the following working day
before proceeding. Otherwise, an availability check is performed and a PO response is
sent back to the customer.
Next working day
weekend/
holiday
weekday Check Send PO
Register PO
Availability Response
PO PO
Received fulfilled
Let’s extend our PO handling process
PO handling
Next working day
weekend/
holiday
weekday Check Send PO
Register PO
Availability Response
PO PO
Received fulfilled
A PO change request may be received anytime after the PO is
registered. This request includes a change in quantity or line items.
When such a request is received, any processing related to the PO
must be stopped. The PO change request is then registered.
Thereafter, the process proceeds as it would do after a normal PO
is registered. Further, if the customer sends a PO cancelation
request after the PO registration, the PO processing must be
stopped and the cancelation request must be handled.
Solution: exception handling
PO handling
Handle PO
Next workingNext
day working day
weekend/ weekend/
holiday holiday
weekday weekday Check Check Send PO Send PO
Register PO Availability Response Response
Availability
PO PO PO PO
Response
Received Registered fulfilled fulfilled
sent
PO Change PO Cancel
received received
Handle PO
Cancelation
Register PO
PO
Change
canceled
Internal exception: error event
Start Intermediate End
Error Event – Indicates an error: the ³end´ version generates an
error event while the ³catching intermediate´ version consumes it
when attached to the boundary of an activity
Must be attached to the
activity’s boundary
Example: internal exception
PO handling
Consider again our “PO Handling process” example with the following extension: if
an item is not available, any processing related to the PO must be stopped.
Thereafter, the client needs to be notified that the PO cannot be further processed.
Handle PO
Next workingNext
day working day
weekend/ weekend/
holiday holiday
weekday weekday Check Check Send PO Send PO
Register PO
Availability Availability Response Response
PO PO PO PO
Response
Received Registered fulfilled fulfilled
sent
PO Change PO Cancel
received received
Handle PO
Cancelation
Register PO
PO
Change
canceled
Throwing and catching
Solution: internal exception error events must have
PO handling the same label
Handle PO
Handle PO
Nextworking
Next working day
day Items not
weekend/
weekend/ available
holiday
holiday
weekday
weekday Check
Check Send POSend PO
Register PO
Register PO Availability
Availability ResponseResponse
Items
PO
PO
PO available Response PO PO
Response
Received
Received
Registered
Registered fulfilled
fulfilled
sent sent
PO Change PO Cancel Items not
received received available
Handle PO
Cancelation
Register PO
PO Notification
Change
canceled sent
Must catch an error
event thrown from
within the same activity
Example: activity timeout
Order-to-transportation quote
Once a wholesale order has been confirmed, the supplier transmits this order to the
carrier for the preparation of the transportation quote. In order to prepare the quote, the
carrier needs to compute the route plan (including all track points that need to be
traversed during the travel) and estimate the trailer usage.
By contract, wholesale orders have to be dispatched within four days from the receipt
of the order. This implies that transportation quotes have to be prepared within 48
hours from the receipt of the order to remain within the terms of the contract.
Solution: activity timeout
More on the PO handling example…
The customer may send a request for address change after the PO registration. When
such a request is received, it is registered, without further action.
Handle PO
Next working day Items not
weekend/ available
holiday
weekday Check Send PO
Register PO Availability Response
Items
PO PO available PO
Response
Received Registered fulfilled
sent
PO Change PO Cancel Items not
received received available
Handle PO
Cancelation
Register PO PO
Change Notification
canceled sent
Non-interrupting boundary events
Sometimes we may need to trigger an activity in parallel to the normal flow, i.e.
without interrupting the normal flow.
This can be achieved by using non-interrupting boundary events
Must be attached to the
activity’s boundary
Solution: non-interrupting boundary events
PO handling
Handle PO
Next working day Items not
weekend/ available
holiday
weekday Check Send PO
Register PO Availability Response
Items
PO PO available PO
Response
Received Registered fulfilled
sent
PO Change PO Cancel Items not Address
received received available change
Handle PO received
Cancelation
Register PO Update
PO Notification
Change customer
canceled sent address
Customer
address
updated
Summary
• In this lecture we have learned about:
• BPMN sub-processes
• Repetition markers: loop marker and parallel multi-instance marker
• Events: timer, message and error events
• Event-based choice gateway
• Boundary events: interrupting and non-interrupting
• Error events (throw and catch)
And once I’ve got a model, what’s next?
Process analysis techniques:
• Added-value and waste analysis
• Root-cause analysis
• Flow Analysis
• Queuing Analysis
• Process Simulation