Marlon Dumas marlon.dumas ät ut . ee

Slides:



Advertisements
Similar presentations
Business Process Modelling -8.2/2013 -
Advertisements

UML State chart/machine diagram State machine diagram is a behavior diagram which shows discrete behavior of a part of designed system through finite state.
Activity Diagrams in UML. Definition Activity diagrams represent the dynamics of the system. They are flow charts that are used to show the workflow of.
Process Patterns in BizAGI. Slide 2 Overview Types of events Types of gateways Design patterns list.
Marlon Dumas marlon.dumas ät ut . ee
Business Process Modelling -9.2/ Marcello La Rosa Queensland University of Technology Brisbane, 19 September 2013.
MIS 325 PSCJ. 2  Business processes can be quite complex  Process model: any abstract representation of a process  Process-modeling tools provide a.
1 Introduction to modeling Process modelling. 2 Where are we? #TitleDate 1Introduction ORM modeling Relational modeling
BPMN.
Introduction to BizAgi. Slide 2 User Interface (Summary) The user interface for BizAgi resembles Office It uses a similar ribbon The Palette contains.
BPMN An Introduction ISIS. © ILOG, All Rights Reserved 2 Definition of BPMN Business Process Modeling Notation provides:  The capability of defining.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
© Richard Welke 2002 CIS 4120 Fa13: Define/Innovate BP’s Richard Welke Director, CEPRIN Professor, CIS Robinson College of Business Georgia State University.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
Marlon Dumas marlon.dumas ät ut . ee
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Marlon Dumas University of Tartu
Interaction Modeling. Sequence Models  There are two kinds of sequence models: scenarios and sequence diagrams  A scenario is a sequence of events that.
IT323 - Software Engineering 2 Tutorial 1. 0 The system 1.0 A Function 1.1 Activity of the function Task Task Task 1.2 Another activity.
BPMN By Hosein Bitaraf Software Engineering. Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes.
Week 5: Business Processes and Process Modeling MIS 2101: Management Information Systems.
Interaction Models (2): Sequence Diagrams Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh 1.
مهندسی مجدد فرآیندهای تجاری
© Richard Welke 2002 CIS 4120 Fa13: Define/Innovate BP’s Richard Welke Director, CEPRIN Professor, CIS Robinson College of Business Georgia State University.
Chapter 11 Activity Diagrams. 2 “Activity diagrams are a technique to describe procedural logic, business processes, and work flows” - M. Fowler An activity.
CS212: Object Oriented Analysis and Design Lecture 34: UML Activity and Collaboration diagram.
Marlon Dumas University of Tartu
1 Modeling workflows : The organizational dimension and alternative notations. Wil van der Aalst Eindhoven University of Technology Faculty of Technology.
section II Analysis Systems Analysis and Design
MTAT Business Process Management Lecture 2 – Process Modeling I Marlon Dumas marlon.dumas ät ut. ee 1.
Prof. Marcello La Rosa BPM Discipline Queensland University of Technology.
MTAT Business Process Management Lecture 3 – Process Modeling II Marlon Dumas marlon.dumas ät ut. ee 1.
Prof. Marcello La Rosa BPM Discipline Queensland University of Technology.
Marlon Dumas University of Tartu
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
MTAT Business Process Management Lecture 7 – Process Redesign 1 Marlon Dumas marlon.dumas ät ut. ee 1.
Business Process Modelling
Prof. Marcello La Rosa BPM Discipline Queensland University of Technology.
Introduction to BPMN.
Studio modeling basics
Marlon Dumas marlon.dumas ät ut . ee
System Architect support for Business Process Modeling Notation (BPMN)
Information Delivery Manuals: Process Mapping
Chapter 4: Business Process and Functional Modeling, continued
Software Testing.
Enn Õunapuu ICT-643
Timing Model Start Simulation Delay Update Signals Execute Processes
CSS 496 Business Process Re-engineering for BS(CS)
Simulating Processes Motivation
Lab 6: Business Process Modeling Notation (BPMN) Additional Exercises
Lab 7: Business Process Modeling Notation (BPMN)
JavaScript: Control Statements.
Marlon Dumas marlon.dumas ät ut . ee
Chapter 10: Process Implementation with Executable Models
MTAT Business Process Management Lecture 3 – Process Modeling I
Information Systems in Organizations 2
Information Systems in Organizations 2
Marlon Dumas University of Tartu
Processor Fundamentals
Information Systems in Organizations 2
Chapter 10 Object States and The Statechart Diagram
Marlon Dumas marlon.dumas ät ut . ee
BPMN - Business Process Modeling Notations
Information Systems in Organizations 2
Chapter 3: Selection Structures: Making Decisions
Boolean Expressions to Make Comparisons
Use Case Analysis – continued
Chapter 14. Activity Modeling for Transformational Systems
Information Systems in Organizations 2
Presentation transcript:

Marlon Dumas marlon.dumas ät ut . ee MTAT.03.231 Business Process Management Lecture 4 – Advanced Process Modeling Marlon Dumas marlon.dumas ät ut . ee

Business Process Lifecycle

Introduction Process Identification Essential Process Modeling Advanced Process Modeling Process Discovery Qualitative Process Analysis Quantitative Process Analysis Process Redesign Process Automation Process Intelligence

BPMN Main Elements - Recap Flow Objects Connections Pools & lanes Artifacts Data Store

BPMN Gateways Exclusive (XOR) Parallel (AND) Exclusive decision take one branch Exclusive merge Proceed when one branch has completed Parallel (AND) Parallel split take all branches Parallel join proceed when all incoming branches have completed Inclusive (OR) Inclusive decision take one or several branches depending on conditions Inclusive merge 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 This is a more detailed version of our order-to-cash process where we added a branch to manufacture the product in case it is not in stock, and have made the shipment and invoicing part more detailed by asking for a shipment address and receiving the payment Ship and invoice

Expanded…

Sub-processes An activity in a process can invoke a separate sub-process Use this feature to: 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

Guideline: Multi-level modeling (cont.) At each level, decompose according to: Logical milestones towards achieving the outcome of the process Major objects used in the process Decompose until processes are of “reasonable” size e.g. up to 20 nodes (tasks+events+gateways) per model

Value chain with sub-processes

Fragment of SCOR’s process hierarchy APICS SCOR framework: http://www.apics.org/

Side Note: Bizagi Milestones (non-standard BPMN) For details see: http://tinyurl.com/pp5reuo

Side Note: non-BPMN value chain notation (e.g. Signavio, ARIS) Collapsed process model

Sub-processes An activity in a process can invoke a separate sub-process Use this feature to: Decompose large models into smaller ones, making them easier to understand and maintain Share common fragments across multiple processes

Shared sub-process

Sub-processes An activity in a process can invoke a separate sub-process Use this feature to: Decompose large models into smaller ones, making them easier to understand and maintain Share common fragments across multiple processes Delimit parts of a process that can be: Repeated Interrupted

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 In the previous lecture we introduced a mechanism for modeling rework and repetition by means of cycles: a repetition block starts with an XOR-join (entry point) and completes with an XOR-split (exit point) Denoted with a circular arrow marker

More on rework and repetition XOR-join: entry point XOR-split: exit point Structured cycle (SESE component) So far we have learnt how to model cycles. A cycle is a flow that goes back to an “earlier” point of the process. It is used to model parts of the process that can be repeated.

Example: block-structured repetition Completion condition The advantage of using activity loops is that the size of the model can be sensibly reduced, as the details of the repetition block are hidden inside the collapsed sub-process Must have a decision activity

Exercise After a claim is registered, it is examined by a claims officer. The claims officer writes a “settlement recommendation”. This recommendation is checked by a senior claims officer who may mark the claim as “OK” or “Not OK”. If the claim is marked as “Not OK”, it is sent back to the claims officer and the examination is repeated. If the claim is marked as “OK”, the claims officer notifies the settlement to the customer.

Parallel repetition: multi-instance activity The multi-instance activity provides a mechanism to indicate that an activity is executed multiple times concurrently 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 Denoted with a three-vertical lines marker

Example: multi-instance activity INB/INN320 – Business Process Modelling Lecture – 17 August 2009 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. QUT Brisbane, Dr. Jan Recker

Solution: without multi-instance activity INB/INN320 – Business Process Modelling Lecture – 17 August 2009 Solution: without multi-instance activity Procurement QUT Brisbane, Dr. Jan Recker

Solution: with multi-instance activity INB/INN320 – Business Process Modelling Lecture – 17 August 2009 Solution: with multi-instance activity Procurement cardinality QUT Brisbane, Dr. Jan Recker

Exercise Motor insurance claim lodgement After a car accident, a statement is sought from the witnesses that were present, in order to lodge the insurance claim. As soon as the first two statements are received, the claim can be lodged to the insurance company without waiting for the other statements.

Events

Events In BPMN, events model something instantaneous happening during the execution of a process Types of event: Start Intermediate End Let’s take a step back and see how we can handle events in BPMN They affect the process flow in three ways

BPMN event types So far we have seen these events

Comparison with sending/receiving tasks = = = ≠

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

Example PO handling 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. Point to the fact that the PO response needs to be prepared and this is what the last activity does.

Recap: Message and Timer events We should always specify the type of an event when this is known, as this improves the understanding of the model but does not increase its complexity/size

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 See “exclusive choice” pattern: http://www.workflowpatterns.com/patterns/control/basic/wcp4_animation.php See “deferred choice” pattern: http://www.workflowpatterns.com/patterns/control/state/wcp16.php

Choices outside our control… Stock replenishment 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.

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 Two types of XOR split: What we saw in the previous lecture is called “data-driven” XOR-split, as opposed to the “event-driven” XOR-split Talk about the symbol: a diamond marked with an intermediate catching event whose symbol is an empty pentagon data-driven XOR-split event-driven XOR split

Solution: event-driven XOR split Stock replenishment

Exercise In the context of a claim handling process, it is sometimes necessary to send a questionnaire to the claimant to gather additional information. The claimant is expected to return the questionnaire within five days. If no response is received after five days, a reminder is sent to the claimant. If after another five days there is still no response, another reminder is sent and so on until the completed questionnaire is received.

Exception handling

Let’s extend our PO handling process 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. 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.

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) Provide examples of exceptions (business faults, technology faults) An exception is not handled, leading to a negative outcome. For example the order is canceled, or the product is discontinued. The negative outcome is that the order isn’t fulfilled

Example 1: terminate event Signal the negative outcome… Remember our stock replenishment example at a restaurant chain? This process leads to two outcomes, but one is negative: so we should indicate it. The exception in this case is caused by the receipt of an error message, or by the fact that no message is received by Friday afternoon.

Example 2: terminate event Abort the process by removing all tokens… This is a variant of the home loan application that we saw before, which includes checking for both liability and debts. Approved only if no debts and high liability. Rejected in all other cases: low liability, debts or both. OPTIONAL: make token animation

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 What can we do if we want to go beyond notifying exceptions to the reader? We need to handle them. BPMN provides a mechanism to handle 3 types of exceptions: internal, external and timeout. These types of exceptions are orthogonal to business vs IT. They can be applied to any of them, e.g. if a software application doesn’t reply within a given timeframe, then the activity is timed out, but it could also be: if the order is not shipped by Friday, then abort. Generally, however, external exceptions are business related, e.g. an order cancelation, while internal are both (stocks unavailability and system errors) 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 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 Coming back to our PO handling process, we have two external exceptions, each triggered by an intermediate catching message event: one leads to repeating the bulk of the process, the other leads to an abrupt termination of the process

Internal exception: error event 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. We see in this example that the unavailability of the item is actually an internal problem, not due to the business environment in which our process is executed

Solution: internal exception Throwing and catching error events must have the same label Solution: internal exception PO handling Must catch an error event thrown from within the same activity Note that we could have handled this with a normal XOR split, but we decided to do it this way to model the fact that all processing is interrupted.

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. 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. We have already seen the timer event. Let’s now see how we can use it to handle activity timeouts by means of this example, which is a lead-to-quote at a supplier

Solution: activity timeout Order-to-transportation quote

Exercise When a claim is received, it is registered. After registration, the claim is classified leading to two possible outcomes: simple or complex. If the claim is simple, the policy is checked. For complex claims, both the policy and the damage are checked independently. A possible outcome of the policy check is that the insurance is invalid. In this case, any processing is cancelled and a letter is sent to the customer. In the case of a complex claim, this implies that the damage checking is cancelled if it has not yet been completed.

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 just registered, without further action.

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 activity - A task or sub-process Double dashed border Must be attached to the activity’s boundary

Solution: non-interrupting boundary events PO handling

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