Session 6: Additional hints on BPMN modeling

Size: px
Start display at page:

Download "Session 6: Additional hints on BPMN modeling"

Transcription

1 CIS 4120 Fa13: Define/Innovate BP s Session 6: Additional hints on BPMN modeling Richard Welke Director, CEPRIN Professor, CIS Robinson College of Business Georgia State University Atlanta, GA Richard Welke 2002

2 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

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 3

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 4

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 5

6 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

7 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

8 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

9 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 subprocess 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

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 10

11 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

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 subprocess 12

13 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 Note: This can also be done using send/receive message events from the main pool 13

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 14

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

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: 16

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 17

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 18

19 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