cis 4120 fa13: define/innovate bp’s...suggestion 5: use appropriate split/merge ! remember and use...

19
© 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

Upload: others

Post on 07-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

© 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

Page 2: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 3: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 4: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 5: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 6: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 7: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 8: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 9: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 10: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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”

Page 11: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 12: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 13: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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”

Page 14: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 15: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

CIS4120 Fa13 Session 6: Additional hints on BPMN modeling © Richard Welke 2008-12

Other things … ! Iterations ! Interleaved coordination ! Complex decision patterns (with rules)

15

Page 16: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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:

Page 17: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 18: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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

Page 19: CIS 4120 Fa13: Define/Innovate BP’s...Suggestion 5: Use appropriate split/merge ! Remember and use the appropriate forms of merge when splitting ! X-OR " X-OR or Task ! OR " OR !

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