cis 4120 fa13: define/innovate bp’s...suggestion 5: use appropriate split/merge ! remember and use...
TRANSCRIPT
© Richard Welke 2002
CIS 4120 Fa13: Define/Innovate BP’s
Richard Welke Director, CEPRIN
Professor, CIS Robinson College of Business
Georgia State University Atlanta, GA
Session 6: Additional hints on BPMN
modeling
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
Suggestion 1 ! Before starting to draw the process model
! Clearly identify the customer of the process ! Clearly state the name of the process and be clear
about its scope ! Identify what triggers (starts) the process and what the
normal result is ! Identify any activities that are out-of-scope of the
process ! In other words … ! The process owner has no control over how these activities
are done ! These will be external services
! Then draw your pools (customer, process, external services) ! And the start event and what triggers it (e.g., message
from the client) 2
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 3
Suggestion 2: Label everything ! One of BPMN’s objectives is to communicate (to a
variety of audiences) ! Therefore, label everything:
! Sub-processes (make the names meaningful) ! Conditional gateways (both the gateway “question” and
the paths) ! Events (including start/end where useful; particularly
multiple ends) ! Messages (the content of flows sent to other pools)
! Use annotation shapes where there’s potential ambiguity
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 4
Suggestion 3: Use verb-noun for tasks ! Label activities as Verb-Noun (you’ve heard this
before J) ! Action taken (verb) ! Thing the action is taken on (noun) ! Avoid “wishy-washy” names (e.g. perform, process,
handle, transform) i.e., be precise ! Examples
! Good … ! Check credit ! Approve request
! Poor … ! Claims processing ! Compliance ! Handle claim
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 5
Suggestion 4: Let sequence flow do work
! Don’t use a task to do the work of a sequence flow ! Send/receive should be used *only* for messages
going from/to *outside* the process
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
Suggestion 5: Use appropriate split/merge
! Remember and use the appropriate forms of merge when splitting ! X-OR à X-OR or Task ! OR à OR ! AND à AND (Task may or may not be legal) ! Event Gateway à X-OR
! If splitting from a task directly: ! No conditional “diamond” means always take this
path ! Conditional “diamond” on path means just that; must
label the condition ! Conditional path split acts like an “OR” gateway so
use the appropriate merge
6
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
Suggestion 6: Decompostion ! In nearly every form of professional modeling
there’s a means for aggregating details ! In BPMN this is the sub-process ! Applies when there’s a set of 2+tasks that:
! Are performed within the same role (swimlane) ! Have a single starting and normal end point ! Have a common purpose (and name)
! For example: Credit-Check, Order Validation
! Two kinds: ! Embedded/reference (not intended to be reused) ! Independent (separately defined, modeled and
maintained – reused or intended for re-use)
7
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
Catching common errors ! A pool must have one and only one start event
! No sequence lines allowed into a start event ! Intermediate events must have one and only one
flow line in and one and only one out ! X-OR gateways must have the question it answers
stated (and all flows out with “answers”) ! OR gateways and conditional flows out of tasks
must have all paths out labeled with condition ! You can only communicate between pools with
message flows (not sequence flows) ! All tasks must have at least one sequence flow in
and out ! Don’t use tasks to describe sequence flow behavior
(e.g., “Go back and re-calculate quote”)
8
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
More on subprocesses ! Used for (and useful for):
! De-cluttering your diagram (decomposition) ! Grouping a set of tasks/gateways within a swimlane ! Replace with one sub-process
! An event whose effect spans multiple activities ! Put the event on the sub-process boundary ! If it occurs it will halt whatever is going on within the sub-
process and take the external branch you show ! A prospective “service”
! A collection of activities could be an independent service ! Might initially show it as a subprocess (As-Is model) ! Could then be a service in the To-Be model
9
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 10
How to do it … ! Develop first-cut, main process (start-end) ! Look for collections of activities that have a
common goal (single start-end) ! Use collapsed sub-processes for those aspects your
process will directly control
Consider …
Could group and call it “Create PO”
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
How to do it (II) … ! Should it be an embedded or external sub-process?
! Will it be re-used or independently modified? ! Is it a candidate “service” (another reuse form)?
! Either way, we’ll have to “cut and paste” ! Select for cut …
11
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
How to do it (III) … ! Cut then put a sub-process in place of the cut
! And paste the “cut” into the “Generate PO” sub-process
12
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
Suggestion 4: Use services ! Different kinds of service usage
! Synchronous ! Both the request and response happen within the scope of the
requesting activity
! Asynchronous ! The request is made to a service by one task but a response is
received by a different task
13
Note: This can also be done using send/receive message events from the “main pool”
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 14
Using services ! Use “black-box” pool services when the needed set
of activities are: ! Not in your control (i.e. outside of your domain of
influence) ! As a way to temporarily “black-box” collections of
activities ! Those that remain “black-boxed” are indirectly
controlled via SLA’s (service-level agreements)
This set of activities are performed by a group outside of your scope Since you can’t model and include them; show as external service
with messages between “your” process and the “black-box” service
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
Other things … ! Iterations ! Interleaved coordination ! Complex decision patterns (with rules)
15
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 16
Iteration patterns ! Number of iterations known at design time
! N known at process design time ! Example: Perform two credit checks
! Number of iterations only known at run-time ! Condition for activity completion determined as
process is running ! Example: Variable number of line items in a purchase
request each have to be examined and priced
! Can be done on a collection of tasks:
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 17
Interleaved routing ! Sequential execution of many non-ordered activities
! Way of working arises, for example, when many tasks compete for the same resources
! Performers of these tasks decide, in-situ, who will perform the next step
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12 18
Handling complex decision patterns ! When faced with a cascading set of decision gateways …
! Often better to treat as a rules processing service interaction ! The rules engine contains the
logic that determines an outcome value that sets the path followed
! We’ll cover rules specification in a upcoming session
CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12
In-Class 6-0 (Attraction booking) Develop a BPMN diagram for the following scenario: A travel agency wants to establish an “attraction booking” service that’s
comprised of a bus trip, hotel and “attraction” (e.g. a museum). The service is triggered by an incoming client request and returns one of two different messages: an unavailable notification or a confirmation.
The business process of the service starts by first checking the request. If for certain reasons the request can only be handled manually by an employee (e.g. group travels), a sub-process for manual handling is begun. Otherwise, the process enters a sub-process, where a bus and hotel booking occur in parallel. However, if one of these fails, the transaction is canceled, a log message is written and the unavailability message is sent.
If both bookings succeed, an attraction is booked by invoking another service. The only thing that could go wrong is a timeout; i.e. the attraction booking service is not responding in time. If this happens, a manual handling of the booking has to be made.
If the attraction booking invocation succeeds, a confirmation is sent. The manual handling always results in a successful booking, in which case a confirmation message is sent.
19