Lecture 2 – Process Modeling I · · 2015-02-161. Introduction 2. Process Identification 3....
Transcript of Lecture 2 – Process Modeling I · · 2015-02-161. Introduction 2. Process Identification 3....
MTAT.03.231 Business Process Management
Lecture 2 – Process Modeling I
Marlon Dumas
marlon.dumas ät ut . ee
1
Business Process Lifecycle
1. Introduction 2. Process Identification 3. Essential Process Modeling 4. Advanced Process Modeling 5. Process Discovery 6. Qualitative Process Analysis 7. Quantitative Process Analysis 8. Process Redesign 9. Process Automation 10. Process Intelligence
Purposes of process modeling
Process identification
Conformance and performance insightsConformance and
performance insights
Processmonitoring and controlling
Executable processmodel
Executable processmodel
Processimplementation To-‐be process
modelTo-‐be process
model
Processanalysis
As-‐is processmodel
As-‐is processmodel
Process discovery
Process architectureProcess architecture
Processredesign
Insights onweaknesses and their impact
Insights onweaknesses and their impact
4
• Communication • Documentation • Analysis (e.g. simulation)
• Automation • Testing
Conceptual
Conceptual
Executable
Business Process Model and Nota6on (BPMN) • OMG standard (nowadays BPMN 2.0) • Supported by numerous tools: bpmn.org lists over 70 tools • Both for conceptual and executable models
BPMN from 10,000 miles…
A BPMN process model is a graph consis6ng of four types of core elements:
activity gateway event sequence flow
A typical order-‐to-‐cash process is triggered by the receipt of a purchase order from a customer. The purchase order has to be checked against the stock regarding the availability of the item(s) requested. Depending on stock availability the purchase order may be confirmed or rejected. If the purchase order is confirmed, an invoice is emiSed and the goods requested are shipped. The process completes by archiving the order or if the order is rejected.
Let’s start modeling Order-‐to-‐cash
BPMN Model
start event
end event
activity
split gateway
8
Order-‐to-‐cash
Purchaseorderreceived
end event
Ship goods
Orderrejected
Orderfulfilled
Archiveorder
Check stock
Reject order
Confirm order
Items instock
Items not in stock
Check stock availability
Emit invoice
• Event: noun + past-‐par6ciple verb (e.g. insurance claim lodged) Naming conven9ons
• Ac6vity: verb + noun (e.g. assess credit risk)
Check stock availability
Reject order
Confirm order
Emit invoice Ship goods
Purchaseorder
receivedItems in
stock
Items not in stock Order
rejected
Orderfulfilled
Archiveorder
Process model vs process instances – The “token game”
9
Order #1 Order #2 Order #3
A start event triggers a new process instance by genera6ng a token that traverses the sequence flow (“tokens source”)
An end event signals that a process instance has completed with a given outcome by consuming a token (“tokens sink”)
A liSle bit more on events…
10
start event
end event
[…] If the purchase order is confirmed, an invoice is emi:ed and the goods requested are shipped (in any order). The process completes by archiving the order. […]
Order-‐to-‐cash example revisited…
11
Check stock availability
Reject order
Confirm order
Emit invoice Ship goods
Purchaseorder
receivedItems in
stock
Items not in stock Order
rejected
Orderfulfilled
Archiveorder
Check stock availability
Reject order
Confirm order
Emit invoice Ship goods
Purchaseorder
receivedItems in
stock
Items not in stock Order
rejected
Orderfulfilled
Archiveorder
Check stock availability
Reject order
Confirm order
Purchaseorder
receivedItems in
stock
Items not in stock Order
rejected
Orderfulfilled
Archiveorder
Emit invoice
Ship goods
First try
split
split join
12
Order-‐to-‐cash
XOR-‐split è takes one outgoing branch
XOR-‐join è proceeds when one incoming branch has completed
A liSle more on gateways: XOR Gateway
condition
¬ condition
13
An XOR Gateway captures decision points (XOR-split) and points where alternative flows are merged
(XOR-join)
Example: XOR Gateway
5
Invoice checking process
A liSle more on gateways: AND Gateway
15
An AND Gateway provides a mechanism to create and synchronize “parallel” flows.
AND-‐split è takes all outgoing branches
AND-‐join è proceeds when all incoming branches have completed
16
Example: AND Gateway Airport security check
Check stock availability
Reject order
Confirm order
Send invoice
Ship goods
Purchaseorder
receivedItems in
stock
Items not in stock Order
rejected
Orderfulfilled
Archiveorder
Revised order-‐to-‐cash process model
XOR-split
AND-split AND-join
17
A company has two warehouses that store different products: Amsterdam and Hamburg. When an order is received, it is distributed across these warehouses: if some of the relevant products are maintained in Amsterdam, a sub-‐order is sent there; likewise, if some relevant products are maintained in Hamburg, a sub-‐order is sent there. Agerwards, the order is registered and the process completes.
Between XOR and AND
18
Order distribu9on process
Solu6on 1
XOR-split XOR-join
AND-split AND-join
19
Order distribu9on process
Solu6on 2
20
Order distribu9on process
XOR-split XOR-join
AND-split AND-join
OR Gateway
21
An OR Gateway provides a mechanism to create and synchronize n out of m parallel flows.
OR-‐split è takes one or more branches depending on condi6ons OR-‐join è proceeds when all ac9ve incoming branches have completed
cond1
condn
Solu6on using OR Gateway
22
Order distribu9on process
What join type do we need here?
23
Beware: Beginner’s Mistake…
Guidelines: Naming Conventions
1. Give a name to every event and task 2. For tasks: verb followed by business object name and
possibly complement • Issue Driver Licence, Renew Licence via Agency
3. For message events: object + past participle • Invoice received, Claim settled
4. Avoid generic verbs such as Handle, Record… 5. Label each XOR-split with a condition
• Policy is invalid, Claim is inadmissible
Poll: Which model do you prefer? !"#$%&"'&($)
*+,"&-)
,+*$'
./0#%"1#)
2"%&"/&'
45$1&63)
&-#$7%"#$*)
08/030#$,
9$-$%"#$)
0&7-&6&1"-#)
5"#:0
9$-$%"#$)
+5#&,"')5"#:)
1+,/&-"#&+-
4$'$1#)6&%0#)
08/030#$,
;&<)+5#&,"')
5"#:)
5"%",$#$%0
=:++0$)
-$<#)
08/030#$,
9$-$%"#$)
%$5+%#
!"#$%&'$"()*$&+'
,$"-.
/",
'+
!"#$%&"'&($)
*+,"&-)
,+*$'
./0#%"1#)
2"%&"/&'
45$1&63)
&-#$7%"#$*)
08/030#$,
9$-$%"#$)
0&7-&6&1"-#)
5"#:0
9$-$%"#$)
+5#&,"')5"#:)
1+,/&-"#&+-
4$'$1#)6&%0#)
08/030#$,
;&<)+5#&,"')
5"#:)
5"%",$#$%0
=:++0$)
-$<#)
08/030#$,
9$-$%"#$)
%$5+%#
!"#$%&'$"()*$&+'
,$"-.
/",
'+
./0#%"1#)
2"%&"/&'
45$1&63)
&-#$7%"#$*)
08/030#$,
One more guideline…
• Model in blocks • Pair up each AND-split with an AND-join and each XOR-split with a XOR-
join, whenever possible • Exception: sometimes a XOS-split leads to two end events – different
outcomes (cf. order management example)
Rework and repe66on Address ministerial correspondence In the minister’s office, when a ministerial inquiry has been received, it is registered into the system. Then the inquiry is inves6gated so that a ministerial response can be prepared. The finaliza6on of a response includes the prepara6on of the response itself by the cabinet officer and the review of the response by the principal registrar. If the registrar does not approve the response, the laSer needs to be prepared again by the cabinet officer for review. The process finishes only once the response has been approved.
XOR-join: entry point XOR-split: exit point
28
Quick Note: Implicit vs. explicit gateways
A
B
C
B
C
A=
A
B
C
A
B
C=
29
What’s this process doing?
Collectmail
New mailarrived
Sortmail
Registermail
Checkmail for
compliance
Compile documentrequisition
Capture matter details
Acceptable
Not acceptable
Pay fee Capture party details
Printphysical file
Prepare document response
Documentrequisitioncompiled
Documentresponseprepared
Physicalfile
printed
New emailarrived
30
What’s wrong with this model? How to fix it?
X
Informa6on Ar6facts
32
When? Flows
Gateways
Which?
Data / Materials
What? Tasks Events
Who? Organization
Process Modelling Viewpoints
Lanes & Pools
Data Objects, Stores
Organiza6onal Elements in BPMN – Pools & Lanes
34
Pool Captures a resource class. Generally used to model a business party (e.g. a whole company)
Pool
Pool
Lane
Lane
LaneLane
Lane A resource sub-class within a pool. Generally used to model departments (e.g. shipping, finance), internal roles (e.g. Manager, Associate), software systems (e.g. ERP, CRM)
Order-‐to-‐cash process with lanes
A Message Flow represents a flow of information between two process parties (Pools)
Message
Message Flow
36
Pool 2
Poo
l 1
Poo
l 2P
ool 1
Send
Receive
Send Receive
A Message Flow can connect: • directly to the boundary of a Pool è captures an informative message
to/from that party • to a specific activity or event within that Pool è captures a message
that triggers a specific activity/event within that party
Order-‐to-‐cash process with a black-‐box customer pool
37
1. The Sequence Flow cannot cross the boundaries of a Pool 2. Both Sequence Flow and Message Flow can cross the
boundaries of Lanes 3. A Message Flow cannot connect two flow elements within
the same pool
Pools, Lanes and Flows: syntac6c rules
Which?
Data / Materials
Process Modelling Viewpoints
Data Objects, Stores
The purchase order document serves as an input to the stock availability check. Based on the outcome of this check, the status of the document is updated, either to “approved” or “rejected”. If the order is approved, an invoice and a shipment no6ce are produced.
Order-‐to-‐cash process, again
40
Check stock availability
Confirm order
Reject order
Send invoice
Ship goodsPurchase
orderreceived
Items not in stock
Items instock
Orderrejected
Orderfulfilled
Archiveorder
PurchaseOrder
Invoice
Check stock availability
Confirm order
Reject order
Send invoice
Ship goodsPurchase
orderreceived
Items not in stock
Items instock
Orderrejected
Orderfulfilled
Archiveorder
Model with informa6on ar6facts
PurchaseOrder
41
PurchaseOrder
[checked]
PurchaseOrder
[rejected]
PurchaseOrder
[approved]
PurchaseOrder
Shipmentnotice
Warehouse DB
Orders DB
PurchaseOrder
A Data Object captures an ar6fact required (input) or produced (output) by an ac6vity.
• Can be physical or electronic
BPMN Informa6on Ar6facts
42
Emitinvoice
Purchaseorder
Invoice
Retrieve client information
Oracle CRM Client info
A Data Store is a place containing data objects that must be persisted beyond the dura6on of a process instance. It is used by an ac6vity to store (as output) or retrieve (as input) data objects.
A Text Annota;on is a mechanism to provide addi6onal text informa6on to the model reader
• Doesn’t affect the flow of tokens through the process
Quick Note: BPMN Text Annota6ons
43
Clear vendor line items
For blocked invoices
Ship goods
Includes packaging
BPMN Poster (link in “Readings” page)
44