Professional Documents
Culture Documents
AboutMe
Founder,BPMessentials,theleadingproviderof , , gp BPMNtrainingandcertification (www.bpmessentials.com) AuthorofBPMNMethodandStyle(www.bpmnstyle.com) A th f BPMN M th d d St l ( b t l ) MemberofBPMN2.0technicalcommitteein OMG BPMSWatch,commentaryonBPMNand BPMSuites(www.brsilver.com) DeveloperoftoolstosupporttheMethod andStyleapproachusingVisio
BPMNistoohard
Itsamyth.Nottrue. y butbadBPMNiscommonplace. GoodBPMN
isareadilylearnableskill doesnotrequiretechnicalknowledge does not require technical knowledge isacommonprocesslanguagesharedbybusinessandIT doesrequiredisciplineandattentiontodetail
ObjectivesoftheTraining j g
YouwilllearnhowtocreategoodBPMN,i.e.process diagramsthat
Standontheirown
Processlogicevidentfromthediagramalone
Arecorrect,pertheBPMNspecification Arecomplete,including
Howtheprocessstarts Significantendstatesandexceptionpaths Touchpointswiththeexternalenvironment
Areconsistentacrossthebusiness AreshareablebetweenbusinessandIT
YouWillLearn
ThemeaningoftheimportantBPMNshapesandsymbols
usingaLevelsbasedapproach
Amethodology
Acookbookapproachtogofromablanksheettocompleteandwell A cookbook approach to go from a blank sheet to complete and well structuredprocessdiagram
Astyleguide
Rulesfordiagramcompositionandusagetofosterconsistencyacross Rules for diagram composition and usage to foster consistency across thebusinessandmaximizesharedunderstanding
Supportedby
HandsonexercisesinclassusingaBPMNtool Hands on exercises in class using a BPMN tool Anonlinemethodandstylevalidationtool Certificationofproficiencybasedonpostclassexamandexercise
MethodandStyle y
Intendedfornonexecutablebutcompleteprocessmodels
asusedbyprocessconsultant/facilitator,businessanalyst,business architect,processarchitect
Topdown,hierarchicalstyle,showing
Howtheprocessstarts Itspossibleendstates Itstouchpointswithrequesters,serviceproviders,andotherinternaland externalprocesses
Suitableforqualitativeorquantitativeanalysis,andeffectivebusiness requirements
ShareableacrossthebusinessandbetweenbusinessandIT
Objective:maximizedsharedunderstanding
Diagramsthatstandontheirown
MethodandStyle TheBook y
TrainingbasedonmybookBPMNMethodandStyle g y y
www.bpmnstyle.com Amazon.com
http://www.amazon.com/exec/obidos/ASIN/0982368100 p // / / / /
BasedonBPMN2.0standard
Levelsbasedmethodandstyle Usefulreferenceforthetraining Coversadditionaleventtypesandpatterns
TheTool
ProcessModelerforVisio,BusinessEdition,fromitpcommerceltd
AddintoMicrosoftVisio 2modes BPMN1.2modeandBPMN2.0mode
Whythistool? y
SupportsBPMN2.0shapes Drawingquality,layers,andotherfeaturesofMSVisio Supportsmytopdown,hierarchicalmethodology pp y p , gy ExportstoBPMN2.0XMLforinteroperabilitywithothertoolsandMethod andStylevalidation
60daylicenseincludedinthetraining y g
Certificationexercisesonlyacceptedfromthistool 60dayextensionsavailable SpecialBPMessentialspricingonupgradetononexpiringlicense p p g pg p g
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
PostClassCertification
MasteryofBPMN,notallBPM
AbilitytointerpretBPMN AbilitytocreategoodBPMN
Step1:MultiplechoicetestchecksunderstandingofBPMN p p g
8outof10requiredtopass,3chances.MustpassStep1tobecertified.
Step2:Createaprocessmodelmeetingspecificcriteria
Submitviaemailaftertraining,iterateuntilgoodenough Submit via email after training, iterate until good enough
Youonlyhave60days!
60dayor1yearextensionavailableforafee
Certificationisoptionalbutnoextracost
CourseOutline
Level1 1. WhyLearnBPMN? 2. BPMNByExample 3. TheMethod 4. BPMNStyle Level2 5. Events 6. BranchingandMerging 7. Iteration 8. FollowingtheRules 9. CertificationandBeyond
ProcessModelingwithBPMN g
Part1.WhyLearnBPMN? Part 1 Why Learn BPMN?
WhatisBPMN?
1. Adiagrammingnotationforbusinessprocessmodels g g p
WhatisBPMN?
1. Adiagrammingnotationforbusinessprocessmodels g g p 2. AnOMGstandard
WhatisBPMN?
1. Adiagrammingnotationforbusinessprocessmodels g g p 2. AnOMGstandard 3. Flowchartbased
WhatisBPMN?
1. 2. 3. 4. Adiagrammingnotationforbusinessprocessmodels g g p AnOMGstandard Flowchartbased Simple just3primaryflowobjects!
WhatisBPMN?
1. 2. 3. 4. 5. Adiagrammingnotationforbusinessprocessmodels g g p AnOMGstandard Flowchartbased Simple Expressiveexceptionhandling
WhatisBPMN?
1. 2. 3. 4. 5. 6. Adiagrammingnotationforbusinessprocessmodels g g p AnOMGstandard Flowchartbased Simple Expressiveexceptionhandling Supportsbroadgroupof Business ITarchitect/ analyst Developer stakeholders BPMN
BusinessUser ProcessOwner
HowBPMNDiffersfromFlowcharts
1. Builtinsemanticsandrules
HowBPMNDiffersfromFlowcharts
1. Builtinsemanticsandrules 2. Hierarchicalview
Drilldowntoanylevelofdetailwhileretainingintegrityofasingle modelendtoend model end to end
Collapsed
Hierarchicalexpansion
HowBPMNDiffersfromFlowcharts
1. Builtinsemanticsandrules 2. Hierarchicalview
Drilldowntoanylevelofdetailwhileretainingintegrityofasingle modelendtoend model end to end
3. Mayshowinterprocess collaboration
10
HowBPMNDiffersfromFlowcharts
1. Builtinsemanticsandrules 2. Hierarchicalview
Drilldowntoanylevelofdetailwhileretainingintegrityofasingle modelendtoend model end to end
HowBPMNDiffersfromFlowcharts
1. Builtinsemanticsandrules 2. Hierarchicalview
Drilldowntoanylevelofdetailwhileretainingintegrityofasingle modelendtoend model end to end
11
BPMNSupportsExecutableProcesses pp
BPMSuiteexecutes themodel
Integratedtoolsandruntimefromasinglevendor
Humanworkflowautomation Applicationintegration Businessrules Performancemonitor,audittrail f d l
Graphical/pointclickdesign
Littleornocode Buildforchange
BusinessITcollaboration ll b
BPMNSupportsExecutableProcesses pp
RoundtrippingprobleminfirstgenerationBPMS
Modelandexecutabledesignusedifferentlanguages
BAM
Performance Data
SO OAMiddleware
Modeling
Ru ule Framework
Process Engine
HumanTask Framework
Integration Framewor rk
Rules
Business
User
User
User
12
BusinessEmpoweredImplementation p p
SecondgenerationBPMSlayerexecutiondetailontopofstandardized BPMNflowdiagram
Noroundtrippingproblem!
BAM
Performance Data SO OAMiddleware ERP Legacy External Services
Business
Process Engine
HumanTask Framework
Integration n Framework
Rules
IT
Commonprocesslanguage
User
User
WhatsNOTStandardizedbyBPMN y
BPMNdescribesjusttheactivityflow
When stepsoccur,inwhatorder
Startandendpoints,conditionalandconcurrentpaths
Doesnotdefine
How stepsareperformed* Who performsthem,andwhere* Basedonwhat businessrules Based on what business rules* orwhy problems,strategiesandgoals Norsimulationparameters(times,costs)orKPIs *ExecutableBPMN(Level3)includestheseforexecutableprocesses Executable BPMN (Level 3) includes these for executable processes
BPMNtools providethosethings,butnotpartofthestandard
13
BPMN2.0
FinalizedAugust2010 Whatsnew?
ChoreographyandConversationdiagramsforB2B Executabledetails XMLschemaformodelinterchange h f d l h
ProcessDiagram
Onlyminoradditionstothenotation
Level1palettevirtuallyunchangedfromBPMN1.2 New:Noninterruptingevents,eventsubprocess New: Non interrupting events event subprocess Changed:Pools,lanes,dataflow
ChoreographyDiagram
ImportanceofBPMN2.0
FormalmetamodelandXMLschema Formal metamodel and XML schema
DescriptiveandAnalyticsubclasses =Level1andLevel2palettes
ConversationDiagram
Directlinktoprocessexecution
BPMN2.0DescriptiveandAnalyticSubclasses p y
Descriptive(Level1)
Pool,Lane Sequenceflow,Messageflow , g y Exclusive, Parallelgateway Usertask,Servicetask None,Message,Timerstartevent None,Message,Terminateendevent d Subprocess,CallActivity Dataobject,Datastore,Dataassociation Data object Data store Data association Textannotation,Association Group,Documentation
Analytic(Level2)
Loop,MIactivity Conditional,Defaultsequenceflow Inclusive, Eventgateway , g y Sendtask,Receivetask Message,Timer, Signal,Conditionalcatchingevent Message,Signal,Escalationthrowingevent l l h Message,Timer,Error,Signal,Conditional, Escalation boundaryevent Error,Escalationendevent;Signal, Conditionalstartevent Error Escalation end event; Signal Conditional start event Linkpair Message
14
Recap:UniqueBenefitsofBPMN p q
1. Amultivendorstandard
Widerangeoftools Lowcosttools Educationfrommanysources=widespreadunderstanding
2. Commonprocesslanguage
Businessfriendlybutexpressiveandprecise Usableatmultiplelevels p
3. SupportsBPMsendtoendview
Collapse/expandsubprocesses Inter process collaboration Interprocess collaboration
4. Businessempowereddescriptionofeventtriggeredbehavior
Howprocessshouldrespondtoexceptions
15
ProcessModelingwithBPMN g
Part2 BPMNByExample
FireUptheTool! p
ClickStart/ProcessModeler5/ProcessModeler5forMicrosoftVisio
Visio2003/2007
Visio2010
16
BPMNinOneSlide
Just3primaryflowobjects p y j
Sequenceflowcanonlyconnecttothese3shapes
1. Activity roundedrectangle
Workperformedintheprocess Work performed in the process Eithertask (atomic)orsubprocess (compound)
2. Gateway diamond
Routinglogic,doesnotperformwork
3. Event circle
Asignalthat somethinghappened A signal that something happened
HighLevelProcessMap g p
17
EndStatesandExceptionPaths p
Processmodelshowsactivityflowfromstarttoendstate y
Eachdistinctendstateisaseparateendevent Processdiagramshowsallpossiblepathstosomeendstate
Whichactivitiesaresometimesskipped Which activities are sometimes skipped Whichactivitiesruninparallelwithothers
Gatewayafteranactivitytestsitsendstate
TopLevelProcessModel p
UsegatewaytoskiptoOrderfailedendeventonexception g y p f p
DontFulfillOrderifcreditisbad DontSendInvoiceifitemoutofstock
OrdercompleteandOrderfailedaredistinctendstates Od l t d O d f il d di ti t d t t
Representedbyseparateendevents labeledtoindicatetheendstate
Save(wewillcomebacktothis)
18
GatewayControlsProcessFlow y
Withoutagateway,allsequenceflowsoutofactivityenabled g y, q y inparallel Someothernotationsdontworkthisway:
NotBPMN
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
GatewayControlsProcessFlow y
Withoutagateway,allsequenceflowsoutofactivityenabled inparallel
Ifyoumeanexclusivechoice,useagateway:
BPMN Withnosymbolinside,gatewayis exclusivedatabased With no symbol inside gateway is exclusive databased (XOR)
Thereareothergatewaytypes
19
GatewaysDoNotPerformWork y
justroutinglogic Useanactivity
Tomakeahumandecision Toinvokeadecisionservice(e.g.inaruleengine) ( g g )
Insteadofthis
GatewaysDoNotPerformWork y
justroutinglogic Useanactivity
Tomakeahumandecision Toinvokeadecisionservice(e.g.inaruleengine) ( g g )
Dothis
Assumegatewayteststheendstateoftheprecedingactivity g y f p g y
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
20
Exercise21
DiagramthisOrderFulfillmentprocessusingstartevent,tasks,and gateways.
Giveeachdistinctendstateitsownendevent
1. Checkinventory 2. Ifinstock
Pickstockfrominventory Pick stock from inventory b. Packforshipment c. Shiporder d. Endprocess d End process
a. a
3. Ifnotinstock
Notifypurchasingtoreplenishstock b. Endprocess b End process
a.
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
Exercise21Solution
21
AddPoolandLanes
Pool=BPMNprocess
AddPoolandLanes
22
AddActivityType y yp
Usertask(humantask)
Servicetask(automated)
Subprocess(collapsed)
Subprocess p
Collapsed
Acompound(decomposable)activity
Canbedisplayedasanopaquerectangle (collapsed) orexpandedinchildleveldiagram (hierarchicalexpansion) (hierarchical expansion) orastransparentrectangleinparent leveldiagram(expandedinline) Allrepresentationsreferencetheidentical semanticelement i l
Hierarchicalexpansion
MusthaveNonestartevent
Triggeristhesequenceflowintothe subprocess
Inlineexpansion
Strictcontainmentsemantics
Sequenceflowmaynotcrosssubprocess boundary(cannotcrossprocesslevels)
23
ValueofSubprocesses p
Usedformanypurposes 1. Hierarchicalmodelingbased onnestedlevels
Multipleviews zoomoutor in Understandendtoend processassingleentity
2. Topdownmethodology p gy
Abstractionofunknown details
ParallelBox
Subprocesscontainsfloatingactivities,nosequenceflowsorstart/end events Meansperformalltheactivitiesinparallel Subprocessiscompletewhenallthecontainedactivitiesarecomplete p p p
24
AdHocSubprocess p
Specialkindofsubprocesswherenormalcompletionrulesdonotapply Identifiedbytildemarkeratbottomcenter Containsactivitiesthat
maybeperformedinanyorder may be performed in any order donotallneedtobecompletedtocompletethesubprocess
ExpandSubprocessatNewProcessLevel p p
25
ExpandSubprocessatNewProcessLevel p p
Onchildlevelpage,modeltheexpandedFulfillOrder p g , p subprocess
Noteendstatelabelmatchwithgateway(Fulfilledok) Don tdrawpoolautomaticallyinheritedfromtoplevel Dont draw pool automatically inherited from top level
Drawlanesonlyifyouwanttorefineorredefinelaneattoplevel
EquivalentInlineExpansion q p
Flatmodelingstyle g y
26
IncorrectExpansionofFulfillOrder p
Why? y
ParallelSplitandJoin p
Parallelsplitmeanseitheractivitymaystartfirst,andmay p y y , y overlapintime Joinmeanswaitforbothtocompletebeforecontinuing Rightclick,GatewayType=Parallel(AND)
27
ParallelSplitandJoin p
ANDgatewaysplitisoptionaloutofactivity orstartevent
Multiplesequenceflowsoutmeanstakeallpathsinparallel
CannotomitANDgatewayjointomergeparallelpathsintoactivity
butdonotuseANDgatewayjoinintoendevent Joinisalwaysimpliedatendevent y p
Parallelpathscangotoseparateendevents
Processleveliscompletewhenallparallelpathsreachendevent
ShowCustomerCollaboration
Messageflow
28
Message g
InBPMN,messagemeansanycommunicationbetweenthe , g y processandexternalentity
Mustbebetweenprocessandcustomer/requester,serviceprovider, oranotherinternalprocess or another internal process
EmailtoperformerinanotherlaneisNOTmessageinBPMN
Cantakeanyform
Automatedapplicationmessage,e.g.SOAPorJMS Email Papermail,fax Phonecall
MessageFlowandMessageEvent g g
Messagerepresentedbymessageflow connector g p y g f
SourceandtargetMUSTbeindifferentpools Connecttoboundaryofblackboxpool,toanyactivityormessage eventinwhiteboxpool event in white box pool
29
IstheCustomerInorOut?
IstheCustomerInorOut?
Modelingcustomerasexternal toprocessgoesbackto g p g originalswimlanediagramsof1980s
Topswimlaneandlinesofvisibilityoftheprocess AlsoconsistentwithSOAtoday Also consistent with SOA today
Process(service)providervsrequester
Whenshouldyouputinitiatorinexternalpool?
Relatedtohowprocessstarts 3Basicrulesofthumb
30
RuleofThumb#1
Modelinitiatorasexternalblackboxpoolwhen p
Processstartsuponrequest
withreceiptofadocumentorformfrominitiator
RuleofThumb#1
Modelinitiatorasexternalblackboxpoolwhen
Processstartsuponrequest
withreceiptofadocumentorformfrominitiator
andeither
Processhasnootherinteractionwith initiatorexceptpossiblytoreturn finalstatusnotice(e.g.confirmation orrejection),or or rejection), or 2. Requesterisexternaltotheprocess providerorganizationanddoesnot performdefinedprocesstasks
1.
UseMessagestartevent
Goodpracticetoreturnfinalstatus inMessageendevent
31
RuleofThumb#2
Donotcreateexternalrequesterpoolwhen q p
Initiatorispartoftheorganizationperformingtheprocessand performstaskswithintheprocess
Makeinitiatoralaneinprocesspool,withNonestartevent Make initiator a lane in process pool with None start event
Signifiesmanualstart Employeefacingprocessesareagrayarea
RuleofThumb#3
Donotcreateanexternalrequesterpoolwhen q p
Processisinitiatedonpredefined(usuallyrecurring)schedule
UseTimerstartevent
Labeltoindicatescheduledstart
32
StartandEndEvents
Startevent
Normallyjustoneinaprocessorsubprocess
Messagetrigger(toplevel)meansstartedbyexternalrequest Timertrigger(toplevel)meansscheduled/recurringprocess Nonetrigger(toplevel)meansmanualstartbytaskperformer SubprocessMUSThaveNonestart
Endevent
Oftenmorethanoneinaprocessorsubprocess
Oneforeachdistinctendstate Messageresultmeanssendmessageonreachingtheendevent
Allparallelpathsmustreachendeventtocompletetheprocessor subprocess
Terminateresultmeansdonotwaitforparallelpathstocomplete
Exercise22
Scenario:TimeOffrequest q
Anemployeerequestingtimeoffsubmitsatimeoffrequest.Thisstartsthe process. 2. Managerreviewstherequest.
1.
Ifmanagerdisapproves,endprocesswithdisapprovalmessagetoemployee. Ifmanagerapproves
Performautomatedlookupoftheemployeesavailablevacationtime Regardlessoftheresult,gotoHRreview.
3.
HRReviewstep.HRmustapproveorrejecttherequest.
IfHRapproves,endprocesswithapprovalmessagetoemployee. IfHRdisapproves,endprocesswithdisapprovalmessagetoemployee
33
SolutiontoExercise22
Exercise23
WewanttoshowthedetailsoftheHRReviewRequeststep q p
HRhasto
Reviewtheavailabletimeofffromthelookup 2. Ifinsufficienttimeavailable,Reviewthejustification.Ifsufficienttimeis 2 If insufficient time available Review the justification If sufficient time is available,canskipthisstep. 3. ThenDecidetherequest 4. Ifapproved,updateavailabletimeoff. pp , p
1.
ConverttheHRReviewRequesttasktoacollapsed subprocess
Definethesubprocessdetailsatanewprocesslevel Matchendstatelabeltogatewayatparentlevel
34
Exercise23Solution
DataObject j
DataflownotemphasizedinBPMN
Allinstancedata,endstatesassumedtobevisibledownstream
InBPMN1.x,dataobjectwasanartifact
Effectivelyanannotation,hasnoimpactonflow y , p LinkedviaAssociationtosequenceflow
InBPMN2.0,technicallymeansinstancevariable
Localtotheprocesslevel Local to the process level DirectionalDataAssociationismappingto/fromactivityinput/output
35
DataStore
Persistentdata(newinBPMN2.0)
Externaltoprocessbutprocess hasstore/retrieveaccesstoit
Usedirectionaldataassociationtoshowdataflowto/fromtheprocess / p
Alternativetomessaging
Whenprocessactivitygets orpollsforinfo,use p , datastore Whenprocesswaitsto receiveinfo,usemessage
TextAnnotation
Freetextannotationofthediagram
Denotedbysquareleftbracket Linkedtodiagramobjectbyassociationconnector
36
Recap:TheLevel1Palette p
WorkingsetofBPMN shapesfordescriptive modeling
Level1modelsrestricted totheseshapes
37
ProcessModelingwithBPMN g
Part3 TheMethod
BPMNMethod
Prescriptiveguidancetomaximizesharedunderstanding p g g
Methodandstyle notrequiredbyBPMNspec
Goals
Structuralconsistency
Topdown,hierarchical,explicitendstates,visibleglobalcontext.
Readability
Topdowntraceable
Modelcompleteness
Diagramstandsonitsown(withoutattacheddocumentation)
ShareabilitywithIT
AlignedwithLevel2modelsusedfordetailedrequirements,executable processes
38
MethodOverview
1. Defineprocessscope
When/howitstartsandends
4. [Optional]Addpoolsandlanes 5. Expandsubprocessesinchildleveldiagrams
Ensuretopdowntraceabilitybymatchingendstateandgatewaylabels Ensure top down traceability by matching end state and gateway labels
6. Addglobalcontextwithmessageflows
Ensuretopdowntraceabilitybymatchingmessageflowsatparentandchild levels
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
BPMNConcepts p
Activity
Anaction LabelitVERBNOUN Hasawelldefinedstartandend Mayhavemultipleendstates Repeated Understandwhateachactivityinstancerepresents
ABPMNactivityisnotafunctionorcapability
Somemismatchtobusinessprocessarchitectureframeworks Manage,Maintain,MonitorareusuallynotusefulnamesforBPMN activities
E.g.AQPCProcessClassification
WhichoftheseProcessexpense reimbursementactivitieswould reimbursement activities would makegoodactivitiesinaBPMN processmodel?
39
BPMNConcepts p
Process
AsequenceorflowofActivitiesinanorganizationwiththeobjective ofcarryingoutwork.BPMN2.0spec Orchestration:Explicitlogicdescribingallactivityflowpathsleading Orchestration: Explicit logic describing all activity flow paths leading fromasingleinitialstateoftheprocessinstancetooneormore alternativeendstates
Repeated Samelogicalmodelappliestoallinstances Repeated Same logical model applies to all instances Continuoussequenceflowchainstarttoend Nothingfloating Coordinated Sequenceflowtriggersthenextsteptostart
Step1.DefineProcessScope p p
Whatdoestheinstancerepresent?
Whendoesaninstanceoftheprocessstart?
Triggeredbyrequest?(Messagestart) Regularlyscheduled?(Timerstart)
Whenisaninstancecomplete?
Processscoperelatedtoperformancemetrics(KPIs)
Cycletime Cost Resourceutilization Qualitymetrics %Successfuloutcomes
Someendtoendprocessesstandardizedbyenterpriseappvendors
Ordertocash,Procuretopay,Opportunitytoorder
40
Exercise31.DefineProcessScope p
Considerthesalesorder(ordertocash)processforanewcar ( )p dealer.
Whatstartstheprocess?
Whoistheinitiator? Who is the initiator?
Whatdetermineswhentheprocessiscomplete? Whatdoesaninstanceoftheprocessrepresent?
Example
Startswithan order from customer Starts with an orderfromcustomer
Knowncarspecification,price,andbuyer Smalldeposittoreservecaruntilclosing
Endswithclosingthefinancialtransactionanddeliveryofthecar E d ith l i th fi i lt ti d d li f th
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
Step2.HighLevelProcessMap p g p
Enumeratethehighlevelactivities(phasesormilestones)in g (p ) theprocess
510sothetopleveldiagramwillfitononepage
Processdetailsinsideeachactivity,notinbetweenthem Process details inside each activity not in between them
Principles
Activityinstancealignedwiththeprocessinstance Activitycompletionenablesnextone
Minimizeinteractionbetweensubtasksindifferenthighlevelactivities
Activitymaybeperformedinsomeinstances,notothers y y p , Activitymaybeperformedinparallelwithotheractivities
41
Exercise32.HighLevelProcessMap g p
Scenario
Startuponreceiptofanorder Enduponclosingfinancialtransactionanddeliveryofthevehicle. Highlevelmapactivities High level map activities
EnterOrder OrderCarfromFactory PrepareCarforDelivery P C f D li ArrangeFinancing CloseandDeliver
Exercise32Solution
42
Exercise33a.TopLevelDiagram,HappyPath p g , ppy
Scenario
OrderCarfromFactoryisconditional
Onlyneededifthecarisnotavailableonthelot
Hint:Exclusivegateway Hint: Exclusive gateway
Ifnotneeded,canskipandgotoPrepareCarforDelivery
Hint:Canmergealternativepathswithoutgateway
ArrangeFinancingrunsconcurrentlywithOrderCarfromFactory Arrange Financing runs concurrently with Order Car from Factory
CanstartafterEnterOrder
Hint:Multiplesequenceflowstoindicateparallelflow
CloseandDelivercannotstartuntilbothArrangeFinancingand Close and Deliver cannot start until both Arrange Financing and PrepareCarforDeliveryarecomplete
Hint:ParallelgatewaytoindicateANDjoin
43
Exercise33aSolution
Step3b.TopLevelDiagram,ExceptionPaths p p g , p
1. Identifyexceptionendstates y p 2. Insertendeventforeachdistinctendstate
UseMessageendifitsendsamessage 2. UseTerminateifitabortsparallelpaths 3. OtherwiseuseNoneend
1.
3. Addgatewaysandexceptionpathstonewendstates g y p p
Labelgatewayasyes/nocondition
44
Exercise33b.TopLevelDiagram,Exception Paths
Exceptionendstates p
Deliverydateproblem factoryavailabilitydateunacceptableto customer
AbortFinancingpathwithTerminateendevent Abort Financing path with Terminate end event AfterOrderCarfromFactory,conditionallyredirecttoDeliverydate problem
Financingunavailable g
AbortFactoryOrder/CarpreppathwithTerminateendevent AfterArrangeFinancing,conditionallyredirecttoFinancingunavailable
Exercise33bSolution
45
Step4.AddPoolsandLanes p
CustomerandProcesspools p
Labelprocesspoolwithprocessname,blackboxpoolswith role/entityname Allprocessnodesandsequenceflowchainmustbeinsidetheprocess All process nodes and sequence flow chain must be inside the process pool Ifstartedbycustomerrequest,addMessagestarttriggerandmessage flow
Optional:Addlanesinprocesspooltodistinguishperformer rolesororganizationalunits
OKtoputlanesinchildleveldiagrams,evenifomittedfromtoplevel
Exercise34.PoolsandLanes
AddProcessandCustomerpools p Lanesinprocesspool:
Sales(Enterorder,Ordercarfromfactory) Service(Preparecarfordelivery) Finance(Arrangefinancing,Closeanddeliver)
Customercollaboration
ProcessstartswithOrdermessagefromCustomer Finalstatus
ReturnOwnership/RegistrationdocumentsfromTransactioncomplete Return Ownership/Registration documents from Transaction complete ConfirmcancellationbeforebothTerminates
UseCallActivityforduplicatetasks
46
Exercise34Solution
Step5.ExpandSubprocessesatChildLevel p p p
Hierarchicalexpansionatchildprocesslevel
MuststartwithNonestart Expansionmayincludecollapsedsubprocesses
Nolimittodepthofhierarchy
Donotenclosetheexpandedsubprocessinapool
Inheritedautomaticallyfromtoplevel OKtouselanesinexpandedsubprocess OK to use lanes in expanded subprocess
Topleveltraceability
Ifsubprocessisfollowedbyayes/nogateway,interpretgatewayas testingthesubprocessendstate testing the subprocess end state Inchildlevelexpansion,defineendeventstodistinguishtheend states
Matchoneendeventlabelwithgatewaylabel Match one end event label with gateway label
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
47
Exercise35.ExpandSubprocesses p p
ExpandEnterOrder p
Twoactivities
Collectsignedagreementanddeposit Enterorderintothesystem Enter order into the system
Ifcarisnotonthelot,endstateisOrderfromFactory
Payattentiontotopdowntraceability
IntopleveldiagramEnterOrderisfollowedbyyes/nogateway labeled(inmydiagram)OrderfromFactory? sooneendeventofchildleveldiagrammustbeOrderfrom Factory
Exercise35Solution
48
Step6a.AddGlobalContext p
Poolsandmessageflowsshowhowprocessfitsinoverallbusiness environment
Touchpointswithcustomer,serviceproviders,otherinternalprocesses Architecturalperspectiveaddscomplexitytodiagram
Canhideitfromuserswhodontwanttoseeit
Serviceprovidersperformactionsuponrequestbytheprocess
Returnresultstotheprocess
Representrequester,serviceproviders,otherinternalprocessesasblack boxpools
Drawmessageflows toshowcommunications(requestsandresponses) Connecttoboundaryofexternalpool Connecttoactivityormessageeventofprocess
Exercise36a.AddGlobalContext
2moreexternalparticipants
FactoryandLender
Messageflows
BetweenOrderCarfromFactoryandFactorypool
ProcesssendsFactoryOrder messageflow FactoryrespondswithFactoryOrderConfirmation ProcessmaysendCancelFactoryOrder ifdeliverydateunacceptable,andfactory respondswithCancelConfirmation responds with Cancel Confirmation
BetweenOrderCarfromFactoryandCustomer
ProcesssendsConfirmationRequest withdeliverydate CustomerreturnsConfirmationResponse (confirmorcancel) Customer returns Confirmation Response (confirm or cancel)
BetweenArrangeFinancingandLenderpool
ProcesssendsLoanRequest LenderreturnsLoanResponse
49
Exercise36aSolution
Exercise36aSolution(Hidemessageflows) ( g )
50
Step6b.ChildLevelMessageFlows p g
Ifcollapsedsubprocesshasmessageflowtoexternalpool, p p g p , replicatetheexternalpoolandmessageflowinchildlevel expansion
Count,nameofmessageflowsshouldmatchbetweenparentand Count name of message flows should match between parent and childdiagrams Connecttoboundaryofblackboxpool,connecttoactivityoreventin processpool process pool
Exercise36b.ChildLevelMessageFlows g
ExpandOrderCarfromFactory p y
PlaceFactoryOrder:ThedealersendstheFactoryorder messageand receivestheFactoryorderconfirmationinreply. 2. CalculateDeliveryDate:DealerusesFactoryorderresponseto 2 Calculate Delivery Date: Dealer uses Factory order response to calculatethepromiseddeliverydatetothecustomer. 3. NotifyCustomerDeliveryDate:DealersendsConfirmationrequest to CustomerandreceivesConfirmationresponse. Customer and receives Confirmation response 4. Iftheresponseisconfirm,thesubprocessendsinDeliverydate acceptableendstate.
1.
51
Exercise36bSolution
ReusableSubprocesses p
Defineasanindependent(toplevel)process
Saveinitsownfile CallActivitycallsitasareusablesubprocess RegularSubprocessdefinitionisembeddedinparentprocessmodel
Subprocess
CallActivity
Modelingprocedure
1. 2. 3. 4.
52
MethodRecap p
1. Defineprocessscope
When/howitstartsandends
5. Expandsubprocessesinchildleveldiagrams
Ensuretopdowntraceabilitybymatchingendstateandgatewaylabels Ensure top down traceability by matching end state and gateway labels
6. Addglobalcontextwithmessageflows
Ensuretopdowntraceabilitybymatchingmessageflowsatparentandchild levels
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
53
ProcessModelingwithBPMN g
Part4. BPMNStyle
WhatisBPMNStyle? y
Rulesandconventionsthatestablishconsistencyandoptimizemodelsfor aparticularpurpose
Mypurposeisdiagramsthatstandontheirown,maximizingshared understandingandtopdowntraceability KeytogoodBPMNvsbadBPMN
RulesintheBPMNspec
aresupportedbyvalidationfunctionbuiltintomodelingtools areimportant,butjustafirstcut allowvalidbutbadBPMN
GoodBPMNstylemeansfollowingtherules y g
Principlesofcomposition Stylerules OfficialrulesoftheBPMNspec p
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
54
PrinciplesofComposition p p
1. Uselabelstomakeflowlogicclearfromthediagram g g
Howtheprocessstarts Alternativeendstates Messageflows Message flows Gatewaysandgates Allevents Tasktypes Lanesifhandoffsareimportanttoanalysis
PrinciplesofComposition p p
3. Useblackboxpoolstorepresentexternalparticipants
Theyshouldnotcontainanyactivities
55
PrinciplesofComposition p p
4. Modelinternalprocessparticipants(activityperformers)as p p p ( yp ) laneswithinasingleprocesspool,notasseparatepools.
Labellaneswiththeroleororganizationalunitthatperforms(oris responsiblefor)itscontainedactivities. responsible for) its contained activities
PrinciplesofComposition p p
5. Indicatesuccessandexceptionendstatesofaprocessor p p subprocesswithseparateendevents,andlabelthemto indicatetheendstate.
56
PrinciplesofComposition p p
6. LabelactivitiesVERBNOUN
Activityisanaction,notafunction,condition,orstate UseCheckcredit (action),notCreditcheck (function)orCreditOK? (condition) UseApproveloan (action),notLoanapproval (function)orLoanrejected (state)
UseMessagestarteventintop levelprocesstoindicateprocessinitiatedby Use Message start event in toplevel process to indicate process initiated by externalrequest. 8. UseNonestartintoplevelprocesstoindicatemanualstartbyataskperformer 9. UseTimerstartintoplevelprocesstoindicateascheduledprocess. 10. Labelwhiteboxpoolswiththenameofaprocess;labelblackboxpoolswitha participantroleorbusinessentity. 11. Ifpossible,labelexclusivegatewaysas[Endstate]?,andlabeltheoutgoing sequenceflowsyesandno q y 12. Dontuseagatewaytomergealternativepaths;mergethemdirectly.
7.
StyleRules y
13. Topdowntraceability p y
Ifsubprocessisfollowedbyyes/nogateway,matchoneendeventof subprocesswithgatewaylabel
57
StyleRules y
14. TopdowntraceabilityII p y
Showmessageflowsconsistentlyinparentandchildleveldiagrams.
StyleRules y
14. TopdowntraceabilityII p y
Showmessageflowsconsistentlyinparentandchildleveldiagrams.
58
StyleRules y
15. Labelmessageflowswiththenameofthemessage. g g
StyleRules y
16. Twoendeventsinaprocesslevelshouldnothavethesamename. Iftheyrepresentthesameendstate,combinetheminoneend event;otherwisegivethemdifferentnames.
59
StyleRules y
17. DontusejoingatewayintoaNoneendevent;joinisimplied j g y ;j p atallNoneendevents
StyleRules y
18. Processpoolinchildleveldiagram(ifdrawn)shouldbe p g ( ) labeledwithnameofthetoplevelprocess
NOTthenameofthesubprocess
19. Subprocessshouldhaveexactlyonestartevent 19 S b h ld h tl t t t
60
RulesfromtheBPMNSpec p
20. Sequenceflowmustnotcrossapoolboundary. q p y
Usemessageflowtolinkpools.
RulesfromtheBPMNSpec p
21. Sequenceflow(orequivalentlinkeventpair)mustnotcross q ( q p ) subprocessboundary,i.e.,fromchildleveltoparentlevel.
61
RulesfromtheBPMNSpec p
22. Messageflowcannotconnectpointsinthesamepool. g p p
RulesfromtheBPMNSpec p
23. Messageflowcannotconnecttoagateway g g y
62
RulesfromtheBPMNSpec p
24. Allactivities,gateways,andeventsmustbeconnectedviaa ,g y, continuouschainofsequenceflowsleadingfromastart eventtoendevent
Donotleaveflowobjects floating in the diagram Do not leave flow objects floatinginthediagram
63
ProcessModelingwithBPMN g
Part5 Events
BPMNIsTooComplicated p
Meaningthis EspeciallyIntermediateevents
(Eventsubprocessstartevents arereallyintermediateevents)
Butyoucanignoremostof them!!
64
BPMNIsTooComplicated p
Meaningthis EspeciallyIntermediateevents
(Eventsubprocessstartevents arereallyintermediateevents)
Butyoucanignoremostof them!!
WehavealreadyseentheLevel1 palette(Descriptivesubclass)
BPMNIsTooComplicated p
Meaningthis EspeciallyIntermediateevents
(Eventsubprocessstartevents arereallyintermediateevents)
Butyoucanignoremostof them!!
Level1palette(Descriptive subclass) Level2palette(Analyticsubclass)
FocusontheBig3
Message,Timer,Error
65
IntermediateEvents
Occur during a process or subprocess
Distinguished by double border
Throwing: send the signal and continue Catching ( sequence flow): wait for the g (in q ) signal, then continue Boundary, interrupting: listen for the signal while activity is running
If signal occurs, abort activity and exit on exception flow If signal does not occur, continue on normal flow
4.
Boundary, non-interrupting (BPMN 2.0): listen for the signal while activity is running
If signal occurs, initiate parallel path on exception fl i l i iti t ll l th ti flow Continue activity, exit when done on normal flow
5.
TimerEvent
Throwing doesnotexist g Catching(insequenceflow)
Waitfor[duration],orWaituntil[date/time] MeansjustadelayNOTwaitforsomethingtohappen
Example
Loopingretrydelay Looping retry delay
66
TimerBoundaryEvent y
Boundaryevent y
Timeout Timerstartswhenactivityattachedtostarts Triggerfiresatspecified[duration]or[date/time] Trigger fires at specified [duration] or [date/time]
InterruptingTimereventexample p g p
TimerBoundaryEvent y
Boundaryevent y
Timeout Timerstartswhenactivityattachedtostarts Triggerfiresatspecified[duration]or[date/time] Trigger fires at specified [duration] or [date/time]
NoninterruptingTimereventexample p g p
67
SubprocesstoDefineTimedInterval p
Canwrapprocessfragmentinasubprocesstodefinetimedintervalfor exceptionhandling
Timerstartswhenattachedtoactivitystarts Timershutoffwhenattachedtoactivityends
Example:Fastfoodprocess
Ifnotreadytodeliverwithin5minutesafterTakeOrder,refundthemoney
SubprocesstoDefineTimedInterval p
Canwrapprocessfragmentinasubprocesstodefinetimed pp g p intervalforexceptionhandling
Timerstartswhenattachedtoactivitystarts Timershutoffwhenattachedtoactivityends Timer shut off when attached to activity ends
Solution
Wraptimedintervalin asubprocess Attach timerevent toit
68
(b)
69
Exercise51 TimerEvent
DiagramthefollowingCustomersupportprocess g g pp p
Followingsupportrequest, Fixtheproblem Wait1hr Wait 1 hr VerifyfixwithCustomer
AlltasksareUsertasktype
Exercise51Solution
DiagramthefollowingCustomersupportprocess g g pp p
Triggeredbyrequest Fixtheproblem Wait1hr Wait 1 hr VerifyfixwithCustomer
AlltasksareUsertasktype
70
Exercise52 TimerEvent
DiagramthefollowingCustomersupportprocess g g pp p
Triggeredbyrequest Fixtheproblem Iffixnotcompletein1hr If fix not complete in 1 hr
AbortitandContactCustomertoreschedule
Iffixcompletein1hr
VerifywithCustomer f
AlltasksareUsertasktype
Exercise52Solution
DiagramthefollowingCustomersupportprocess g g pp p
Triggeredbyrequest Fixtheproblem Iffixnotcompletein1hr If fix not complete in 1 hr
AbortitandContactCustomertoreschedule
Iffixcompletein1hr
VerifywithCustomer f
AlltasksareUsertasktype
71
Exercise53 TimerEvent
DiagramthefollowingCustomersupportprocess
Triggeredbyrequest Fixtheproblem Iffixnotcompletein1hr
ContinueworkingonitandimmediatelyNotifyCustomerwithexpected completiontime
Afterfixcomplete
VerifywithCustomer V if i h C
AlltasksareUsertasktype
Exercise53Solution
DiagramthefollowingCustomersupportprocess
Triggeredbyrequest Fixtheproblem Iffixnotcompletein1hr
ContinueworkingonitandimmediatelyNotifyCustomerwithexpected completiontime
Afterfixcomplete
VerifywithCustomer V if i h C
AlltasksareUsertasktype
72
Exercise54 TimerEvent
DiagramthefollowingCustomersupportprocess
Triggeredbyrequest Assesstheproblem Fixtheproblem Iffixnotcompletein1hrafterinitialrequest
ContinueworkingonitandNotifyCustomerwithexpectedcompletiontime
Afterfixcomplete
VerifywithCustomer
Exercise54Solution
DiagramthefollowingCustomersupportprocess
Triggeredbyrequest Assesstheproblem Fixtheproblem Iffixnotcompletein1hrafterinitialrequest If fix not complete in 1 hr after initial request
ContinueworkingonitandNotifyCustomerwithexpectedcompletiontime
Afterfixcomplete
VerifywithCustomer
73
Can send and receive message with either Activity (any kind) or Message event
Send Task
Task that sends a message
Sending the message is the only action performed
Sendtask
and this?
74
How do you send work to a downstream task performer in the process? How do you notify someone else inside the process, such as Manager?
75
Intra-Process Notification/Reporting p g
Do not use sequence flow to recipient activity q p y
That implies recipient has a task to perform Instead add User task in sender lane
Label it Notify or similar not Send Notify similar, Send
76
Receiving g
Message start event g
Only allowed in top level process Means create a new instance whenever a message arrives
same as catching Message intermediate event Waiting for the message is the only action
and this?
77
MessageEvent g
ThrowingandCatching
SameasSendandReceivetasks Onlyusethemwhenyoucandrawmessageflowtoanotherpool
EventGateway y
Whatifthemessageyouarewaitingfordoesntcome?
Eventgatewayletsyouaddatimeouttothewait
GatewayType=Exclusiveeventbased
Catchingeventsoneachgate g g
Typicallymessage(s) andtimer
Eventgateway
78
ModelingAlternativeResponses g p
ResponseandFaultaredifferentmessages(messagestructures)
Eventgatewaytestswhich messagedidweget
Approvedandrejectedaredifferentvaluesofresponsemessage
Testvaluewith regularXORgateway
MessageBoundaryEvent g y
Listenforamessagewhileattachedtoactivityisrunning
Ifitarrives,triggerexceptionflow Abortactivity(interruptingtype solidborder),or Continueactivity(noninterruptingtype dashedborder)
79
Exercise55 MessageEvent/EventGateway g / y
Uponreceiptofaclaim,theclaimsprocessor
Reviewstheclaim Ifcomplete,Processclaim(collapsedsubprocess)andrespondwithEOB. Ifincomplete,sendMissingInfoRequesttocustomerandwaitforresponse
Ifreceiveresponsewithin30days,Processclaimasbefore Ifnoresponsewithin30days,endtheprocessandrespondwithRejection
Exercise55Solution
Uponreceiptofaclaim,theclaimsprocessor
Reviewstheclaim Ifcomplete,Processclaim(collapsedsubprocess)andrespondwithEOB. Ifincomplete,sendMissingInfoRequesttocustomerandwaitforresponse
Ifreceiveresponsewithin30days,Processclaimasbefore If receive response within 30 days Process claim as before Ifnoresponsewithin30days,endtheprocessandrespondwithRejectionnotice
80
Exercise56 MessageEvent g
Uponreceiptofanorder,theorderprocesshasthefollowingsteps:
Checkcredit Pickstock Packforshipment Shiporder EndbysendingInvoice(messageendevent)
IfcustomercancelsanytimebeforeendofPackforshipment y p
Aborttheprocess(Donotship,invoice) ReturnCancelConfirmationtocustomer
Exercise56Solution
81
Exercise56Solution
WheredidFulfillOrdercomefrom?
It sthesubprocessaddedtodefinescopeofno feecancellationevent Its the subprocess added to define scope of nofee cancellation event
ExpandFulfillOrder:
82
MessageEvent AlternativeStart g
Multiplestarteventsareconsideredindependent p p
Firstonetriggeredstartstheinstance
Usecase:channeldependentstart
Initialactivitiesdependonchannelofrequest Downstreamactivitiescommonforallchannels ModeleachchannelasseparateMessageevent
ErrorBoundaryEvent y
Alwaysinterrupting Onatask,signifiesimplicitexceptionendstate
83
ErrorBoundaryEvent y
Alwaysinterrupting Onatask,signifiesimplicitexceptionendstate Onasubprocess,canseeexplicitexceptionendstateasthrowingError endevent(Errorthrowcatch) ( )
Matchlabelof throwerandcatcher
Expandatchild processlevel
ErrorThrowCatch
Thesebothdothesamething:
Errorthrowcatch
84
AbnormalCompletiononError p
Errorboundaryeventsignifiesabnormalcompletion
Interruptsanyuncompletedparallelpaths Exitonexceptionflow,notnormalflow
Exercise57 ErrorEvent
Orderprocess p
Simplehappypathshownbelow
Receiveorder,Fulfillorder,Shiporder,Messageend
ExpandFulfillorderandshowexceptionsusingErrorthrowcatch Expand Fulfill order and show exceptions using Error throw catch
Checkavailability(Usertask) Ifnotavailable(modelasUnavailableErrorevent)
LogOutofStockconditionandthrowOutofStockerror Log Out of Stock condition and throw Out of Stock error EndtheOrderprocesswithOutofstockresponsetocustomer
Ifavailable
Pickitem,Packforshipment,andendsubprocess , p , p
85
Exercise57Solution
ExpandFulfillOrderat NewProcessLevel
Supplementary Material pp y
86
Escalation Event
Non-interrupting equivalent of Error event p g q
Does not imply an error
On U O a User task t k
Use it to signify ad-hoc user action
Signal potentially generated by performer in the middle of the task
Escalation Throw-Catch
On a subprocess p
Throw-catch semantics like Error except does not abort the subprocess if still running
87
Signal Event g
General purpose throw-catch signaling
without constraints of other throw-catch event types Error and Escalation
Only from subprocess end to boundary event on the same subprocess
Message
Only between pools, not within a pool Addressed to a specific process
Intra-Pool Signaling g g
How to communicate between parallel p p paths of a process?
E.g. failure in one path should cancel the other path as well Cannot use message, only works between pools message
Solution
Throw Signal to paired boundary event in the other path
88
Conditional Event
Continuously monitored data condition
Start, catching, or boundary event
Can only connect nodes that could legally be connected by sequence flow q
Cannot cross pool boundary, subprocess or process level boundary Not important in hierarchical models
89
Event Subprocess p
Alternative to boundary event
better fit to some execution languages
Escalationhandler(Childlevel)
90
ProcessModelingwithBPMN g
Part6 BranchingandMerging
GatewayBasics y
Gatewaycontrolsprocessflow
Withoutagatewayallsequenceflowsoutofactivityaretakeninparallel Symbolinsidethediamonddeterminesgatewaymeaning
Wehavealreadyseen y
Exclusivegateway(databased)
AlsocalledXORgateway Onlyonegateenabled,basedonprocessdatacondition
91
GatewayBasics y
Gatewaycontrolsprocessflow
Withoutagatewayallsequenceflowsoutofactivityaretakeninparallel Symbolinsidethediamonddeterminesgatewaymeaning
Wehavealreadyseen y
Eventgateway
Alsocalledexclusiveeventbasedgateway Pathbasedoneventoccurringfirst
GatewayBasics y
Gatewaycontrolsprocessflow
Withoutagatewayallsequenceflowsoutofactivityaretakeninparallel Symbolinsidethediamonddeterminesgatewaymeaning
Wehavealreadyseen y
Parallelsplitgateway
AlsocalledANDsplit Allpathsenabledunconditionallyinparallel
92
UnconditionalParallelSplit p
Gatewaycontrolsprocessflow
Withoutagatewayallsequenceflowsoutofactivityaretakeninparallel
Thesediagramsmeanthesamething
soANDsplitgatewayisactuallyredundant p g y y
ConditionallyParallelFlow y
Inclusive(OR)gateway(ORsplit) ( )g y( p )
LikeXORgateway,evaluatesprocessdataconditions butconditionsareindependent
1ormoreconditionsmaybetrue 1 or more conditions may be true Example:
1. 2. 2 3.
Enablealltruepathsinparallel
Ifapathisalwaystrue,labelit If a path is always true, label it always Theotherwisecondition(called default)isindicatedbytickmark
93
ConditionallyParallelFlow y
Conditionalsequenceflow q
AlternativetoORgateway(meansthesamething) Omitsgateway,putconditiondiamondontailofsequenceflow
Canonlybeusedoutofactivity,notgatewayorevent Can only be used out of activity not gateway or event
MergingAlternativePaths g g
Multiplesequenceflows p q mergedirectlyintoan activity
i.e.,withoutagateway i e without a gateway iftheyrepresentexclusive alternatives
Totellifpathsareexclusive alternatives
Needtolookupstreamin p thediagram
94
MergingParallelPaths g g
Join mostcommon ANDorORgateway g y
Waitforallincomingpathstocomplete,thencontinue
Nogateway=Multimerge
Dontdoit!Downstreamactivitieswillbeexecutedmultipletimes XORgatewaymergemeansthesamething
ANDJoin
Normalwaytomergeparallelpaths
ANDgatewaymaynotbeomitted
Example
FinalizecontractcannotstartuntilbothLegalReviewandFinancialRevieware g complete
95
ANDJoin
Normalwaytomergeparallelpaths
ANDgatewaymaynotbeomitted
GatewaywaitsforALLincomingsequenceflows
SothisdiagramistechnicallyINVALID: g y
JoiningConditionallyParallelFlows g y
ORgatewayjoinwaitsforallenabled paths
Ignorespathsnottaken
ThisdiagramisVALID
96
JoiningConditionallyParallelFlows g y
ORgatewayjoinwaitsforallenabledpaths
Ignorespathsnottaken
ThisdiagramisVALID
DiscriminatorPattern
Specialjoinofparallelorconditionallyparallelflow p j p yp
Passfirstpathtoreachthejoin,discardsubsequentones
UsesComplexgateway(asteriskinside)
Complexgatewaymeansnonstandardjoinsemantics
Needtoannotatetheintendedmeaning
Example p
97
Exercise61 Branch/Merge / g
Diagramthefollowingprocess g gp
Lognewproposal PerformTechnicalReview InparallelwithTechReview,performFinancialReview In parallel with Tech Review perform Financial Review Whenbothcomplete,performDirectorReview
Exercise61Solution
Diagramthefollowingprocess g gp
Lognewproposal PerformTechnicalReview InparallelwithTechReview,performFinancialReview In parallel with Tech Review perform Financial Review Whenbothcomplete,performDirectorReview
98
Exercise62 Branch/Merge / g
Diagramthefollowingprocess g gp
Lognewproposal PerformTechnicalReview Ifcost>$10K If cost > $10K
InparallelwithTechReview,performFinancialReview
Whenneededreviewscomplete,performDirectorReview
Exercise62Solution
Diagramthefollowingprocess
Lognewproposal PerformTechnicalReview Ifcost>$10K
InparallelwithTechReview,performFinancialReview
Whenneededreviewscomplete,performDirectorReview
99
Exercise63 Branch/Merge / g
Diagramthefollowingprocess
Lognewproposal Iftechnicalproposal,performTechnicalReview Ifcost>$10K
InparallelwithTechReview,performFinancialReview
Ifneithertechnicalproposalorcost>$10K,performQuickReview Whenneededreviewscomplete,performDirectorReview
Exercise63Solution
Diagramthefollowingprocess
Lognewproposal Iftechnicalproposal,performTechnicalReview Ifcost>$10K
InparallelwithTechReview,performFinancialReview In parallel with Tech Review perform Financial Review
Ifneithertechnicalproposalorcost>$10K,performQuickReview Whenneededreviewscomplete,performDirectorReview
100
ProcessModelingwithBPMN g
Part7 Iteration
RepeatingActivities p g
Standardloop p
LikeDoWhile
Performtheactivityonce Thentestaloopcondition Then test a loop condition E.g.basedonmaxnumberofiterations,timeexpired,needsmorework Iftrue,performitagain isthesameas
NumberofiterationsnotknownwhenAstarts
101
RepeatingActivities p g
Multiinstanceactivity y
LikeForEach
PerformtheactivityNtimes Typicallyinparallel,butmayspecifysequential Typically in parallel but may specify sequential ActivityiscompletewhenallNiterationsarecomplete
isthesameas
Numberofiterationsknown whenAstarts
HiringExercise:WhatstheProblem? g
102
TryStandardLoop y p
Wrapentirecandidateevaluationinaloopingsubprocess
Thisisnotapracticalsolution.Whynot?
PracticalRepeatingActivityMethod p g y
Fastlooptoscreen,thenMItoevaluate
Loop(While) iterationcountunknown,testconditioneachtime MI(ForEach) iterationcountknowninadvance
Thisworks!Butwithlimitations
CannotbeginInterviewCandidatesuntilscreeningperiodcomplete OnceInterviewCandidatesbegins,cannotreceivemoreresumes
Bruce Silver Associates 2011 In cooperation with itp commerce ltd.
103
MultiPoolMethod
Splithiringprocessinto2BPMNprocesses(whiteboxpools)
MainpoolHiringProcess, instanceisjobopening ChildpoolEvaluateCandidate, instanceisacandidate
EachApplicationmessage createsaninstanceof EvaluateCandidate
Instance= I t
Norepeatingactivitiesin thisstructure
Instance=job
MultiPoolMethod
Abettersolution
104
AnotherMultiPoolExample p
Exercise71:LoopActivity p y
Acontestawardsaprizetothefirstcontestanttoprovidethe p p correctsolutiontoapuzzlepostedontheweb.
Postthepuzzle. Receiveentriesfromcontestants Receive entries from contestants Checkentrytoseeifitiscorrect.
Ifcorrect,haveawinner Ifincorrect,keeplooking f
Ifnocorrectsolutionisfoundwithin1week,thecontestisdeclared overwithoutawinner.
Assumecheckingisfastandcanbedonesequentially
Hint:Loopsubprocess
105
Exercise71Solution
Exercise72:MultiPoolSolution
Acontestawardsaprizetothefirstpersontoproveafamous p p p mathematicalconjecture.
Assumecheckingisslowandentriescheckedinparallel
Posttheprobleminmainpool P t th bl i i l
WaitfornotificationfromMIpool Ifnocorrectsolutionisfoundwithin1year,thecontestisdeclared overwithoutawinner.
ReceiveentriesinMIpool
Checkentrytoseeifproofisvalid. Check entry to see if proof is valid
Ifcorrect,haveawinner;notifymainpool Ifincorrect,keeplooking
106
Exercise72Solution
Exercise73:HiringProcessRevisited g
Improvethemultipoolmethod
EndstatesofEvaluateCandidateareRejectedorViable CollectshortlistofviablecandidatesinHiringProcess Makeoffertobestone.Ifofferrejected,makeoffertonextbest. Ifshortlistemptybeforecandidateaccepts,collectmoreviablecandidates,repeat Ifcannotfillwithin3months,abandonposition
107
Exercise73Solution
108
ProcessModelingwithBPMN g
Part8 FollowingtheRules
TurnonValidationintheTool
ProcessModelerValidate featurereports
Errors(specviolations) Warnings(e.g., duplicatenames) duplicate names) Infos(e.g.stylerules) Cancustomizethe errorlevel
109
FollowingtheRules g
Officialrulesnotenumerated inthespec
Mostlydealwithallowed connections andeventtypes
ValidationinProcessModeler
Errorslistedin ToDoList
ALL Currenttabonly Selectedshapesonly GotofromToDo listselection
110
TheRulesofBPMN
Sequenceflows Allflowobjectsotherthanstartevents,boundaryevents,andcompensatingactivitiesmust haveanincomingsequenceflow,iftheprocesslevelincludesanystartorendevents [212602,213606,321607,380605]. Allflowobjectsotherthanendeventsandcompensatingactivitiesmusthaveanoutgoing j p g g g sequenceflow,iftheprocesslevelincludesanystartorendevents[211606,213604, 213623,321608,380606]. Asequenceflowcannotcrossaprocessboundary.[261602] Aconditionalsequenceflowcannotbeusedifthereisonlyonesequenceflowoutofthe A conditional sequence flow cannot be used if there is only one sequence flow out of the element[220601]. Sequenceflowoutofaparallelgatewaycannotbeconditional[261603]. Messageflows Amessageflowcannotconnectnodesinthesamepool[262602]. AmessageflowcanonlycomefromaMessageendorintermediateevent;Send,User,or Servicetask;Subprocess;orblackboxpool[211605,213621,230602,222601,250604, 222603,242602,262601]. 222603, 242602,262601].
TheRulesofBPMN
Messageflows(cont.) AmessageflowcanonlygotoaMessagestartorintermediateevent;Receive,User,or Servicetask;Subprocess;orblackboxpool[230601,222603,242602,262601,213622, 222602,250603]. Startevents Astarteventcannothaveanincomingsequenceflow.[211601] Astarteventcannothaveanoutgoingmessageflow[211605]. AstarteventwithincomingmessageflowmusthaveaMessagetrigger[211603]. AstarteventcannothaveanErrortrigger[211610]. AstarteventinasubprocessmusthaveaNonetrigger[211613]. Endevents Anendeventcannothaveoutgoingsequenceflow[212603]. An end event cannot have outgoing sequence flow [212603] Anendeventcannothaveincomingmessageflow[212604]. AnendeventwithoutgoingmessageflowmusthaveMessageresult[212606].
111
TheRulesofBPMN
Intermediateevents Aboundaryeventmusthaveanoutgoingsequenceflow[213604]. AboundaryeventtriggermustbeeitherMessage,Timer,Signal,Error,Escalation, Conditional,Cancel,orCompensation[213607,213609,213615,213616,213617]. Aboundaryeventcannothaveincomingsequenceflow[213605]. A boundary event cannot have incoming sequence flow [213605]. AnErrorboundaryeventonasubprocessrequiresamatchingErrorthrowevent[313605]. AnErrorboundaryeventcannotbenoninterrupting[113604]. AnEscalationboundaryeventonasubprocessrequiresamatchingEscalationthrowevent [313606]. AnintermediateeventwithincomingmessageflowmustbecatchingtypewithMessage trigger[213626]. AnintermediateeventwithoutgoingmessageflowmustbethrowingtypewithMessage An intermediate event with outgoing message flow must be throwing type with Message trigger[213629]. AthrowingintermediateeventresultmustbeeitherMessage,Signal,Escalation,Link,or Compensation.
TheRulesofBPMN
Intermediateevents(cont.) AcatchingintermediateeventtriggermustbeeitherMessage,Signal,Timer,Link,or Conditional. AthrowingLinkeventcannothaveoutgoingsequenceflow[213619]. AcatchingLinkeventcannothaveincomingsequenceflow[213618]. A catching Link event cannot have incoming sequence flow [213618]. Gateways Agatewaycannothaveincomingmessageflow[230601]. Agatewaycannothaveoutgoingmessageflow[230602]. Asplittinggatewaymusthavemorethanonegate[230603,232601]. AneventgatewaymusthaveeitheracatchingintermediateeventorReceivetaskoneach gate[332602]. gate [332602]
112
StyleRules y
Labeling Activitiesshouldbelabeled[120701]. AMessagestarteventshouldbelabeledReceive[messagename][311701]. ATimerstarteventshouldbelabeledtoindicatetheprocessschedule[111701]. ASignalstarteventshouldbelabeledtoindicatetheSignalname[111702]. A Signal start event should be labeled to indicate the Signal name [111702] AConditionalstarteventshouldbelabeledtoindicatethecondition[111703]. Astarteventinatoplevelprocessshouldbelabeled. Ifatoplevelprocesscontainsmore thanonestartevent,allshouldbelabeledtoidentifythealternativestartconditions [311701]. Thelabelofachildlevelpageshouldmatchthenameofthesubprocess[321701]. Twoactivitiesinthesameprocessshouldnothavethesamename. (Useglobalactivityto reuseasingleactivityinaprocess.)[320701] reuse a single activity in a process.) [320701] Aboundaryeventshouldbelabeled[311701]. AnErrorboundaryeventonasubprocessshouldbelabeledtomatchthethrowingError event[313701].
StyleRules y
Labeling(cont.) AnEscalationboundaryeventonasubprocessshouldbelabeledtomatchthethrowing Escalationevent[313702]. Athrowingintermediateeventshouldbelabeled[113702]. Acatchingintermediateeventshouldbelabeled[113703]. A catching intermediate event should be labeled [113703]. Anendeventshouldbelabeledwiththenameoftheendstate[312702]. Anexclusivegatewayshouldhaveatmostoneunlabeledgate[230701]. Anexclusiveorinclusivegatewaywithanunlabeledgateshouldbelabeled[230702]. Endstates Twoendeventsinaprocesslevelshouldnothavethesamename. Iftheymeanthesame endstate,combinethem;otherwisegivethemdifferentnames[312701]. Ifasubprocessisfollowedbyayes/nogateway,atleastoneendeventofthesubprocess If a subprocess is followed by a yes/no gateway at least one end event of the subprocess shouldbelabeledtomatchthegatewaylabel[321703]. Subprocessexpansion Onlyonestarteventshouldbeusedinasubprocess[321605]. Achildleveldiagramshouldnotbeenclosedinanexpandedsubprocessshape[321704].
Bruce Silver Associates 2010 In cooperation with itp commerce ltd.
113
StyleRules y
Messageflows ASendtaskshouldhaveanoutgoingmessageflow[222701]. AReceivetaskshouldhaveanincomingmessageflow[222702]. AMessagestarteventshouldhaveanincomingmessageflow[211701]. AcatchingMessageeventshouldhaveincomingmessageflow[213701]. A catching Message event should have incoming message flow [213701] AthrowingMessageeventshouldhaveoutgoingmessageflow[213702]. Amessageflowshouldbelabeledwiththenameofthemessage[162701]. Amessageflowfromacollapsedsubprocessshouldbereplicatedinthechildleveldiagram g p p p g [362701]. Amessageflowtoacollapsedsubprocessshouldbereplicatedinthechildleveldiagram [362702]. Anincomingmessageflowinchildleveldiagramshouldbereplicatedintheparentlevel An incoming message flow in child level diagram should be replicated in the parent level [362703]. Anoutgoingmessageflowinchildleveldiagramshouldbereplicatedintheparentlevel [362704].
114
ProcessModelingwithBPMN g
Part9. CertificationandBeyond
Certification
CertificationdemonstratesBPMNmastery y
Understandingofprocessbehaviorfromthediagram AbilitytocreategoodBPMNconsistentwithmethodandstyle principles
Itsoptionalandfree
butitsnoteasy
Newinv5.0
Step1.Onlinemultiplechoiceexam Step2.Createprocessmodelandsubmitformyreview Step 2 Create process model and submit for my review
Strict60daylimit
Canpurchase60dayextensionifneeded
115
Step1.TheOnlineExam p
TestsunderstandingofBPMNdiagrams g g
Whatdoesadiagramfragmentmean? Whichdiagrambestmatchesadescribedbehavior?
10multiplechoicequestions,8correctneededtopass 10 lti l h i ti 8 t d dt
Maximum3attempts
AccessfromBPMessentials TrainingArea g
OnlineExamExample p
Whichdiagramfragmentbelowis equivalenttothefragmentonthe right?
116
Step2:TheCertificationExercise p
Createamorecomplexprocessmodel,withindividualizedfeedback 1. Pickany*businessprocessinyourorganization.
*Pleasedonotsubmitanyproprietaryinformation.Simplifyifnecessary.
2. CreateprocessmodelfollowingMethodandStyleprinciples
Hierarchical,collaboration,endstates,top downtraceability,followstylerules Hierarchical collaboration end states topdown traceability follow style rules
3. ThemodelasawholemustincludeatleastoneeachofthefollowingLevel2 elements.
1. 2. 3. 4.
AdditionalTrainingandEducation g
BPMNMethodandStyle
Moreinfo:www.bpmnstyle.com Additionalpatternsandexamples AbitonBPMNLevel3
Trainingforyourteam T i i f
Privateandpublicclasses Liveandonlinevirtualclassroom Becomealicensedtrainer! Become a licensed trainer!
Consultingandmentoring
Modelingyourprocesses,generalBPMeducation,BPMSvendorselection Relatedtrainingonprocessanalysisanddesign,businessdecisionmodeling Related training on process analysis and design business decision modeling
Moreinfoonwww.bpmessentials.comandwww.brsilver.com
117
ExtendingtheToolLicense g
ProcessModelerforVisiofromitpcommerce
Manyfeatureswehaventcoveredinthetraining Simulation Documentation BPMN2.0outputandinterchange
Contact
v4.6 February 2011 Training content Bruce Silver Associates 20092010. Unauthorized reproduction prohibited. BPMessentials is a joint venture of Bruce Silver Associates and itp commerce ltd For sales and licensing inquiries contact sales@bpmessentials com sales@bpmessentials.com For questions about training content contact bruce@bpmessentials.com For technical support on Process Modeler tool contact info@itp-commerce.com
Papiermhlestrasse 73 Stade de Suisse Business Center CH-3014 Berne Switzerland Phone: +41 31 3053 444 Fax.: +41 31 3053 443 E-mail: info@itp-commerce.com Web: www.itp-commerce.com
118
ProcessModelingwithBPMN g
SolutionstoExercises Solutions to Exercises
Exercise21Solution
119
SolutiontoExercise22
Exercise23Solution
120
Exercise51Solution
DiagramthefollowingCustomersupportprocess g g pp p
Triggeredbyrequest Fixtheproblem Wait1hr Wait 1 hr VerifyfixwithCustomer
AlltasksareUsertasktype
Exercise52Solution
DiagramthefollowingCustomersupportprocess g g pp p
Triggeredbyrequest Fixtheproblem Iffixnotcompletein1hr If fix not complete in 1 hr
AbortitandContactCustomertoreschedule
Iffixcompletein1hr
VerifywithCustomer f
AlltasksareUsertasktype
121
Exercise53Solution
DiagramthefollowingCustomersupportprocess
Triggeredbyrequest Fixtheproblem Iffixnotcompletein1hr
ContinueworkingonitandimmediatelyNotifyCustomerwithexpected completiontime
Afterfixcomplete
VerifywithCustomer V if i h C
AlltasksareUsertasktype
Exercise54Solution
DiagramthefollowingCustomersupportprocess
Triggeredbyrequest Assesstheproblem Fixtheproblem Iffixnotcompletein1hrafterinitialrequest If fix not complete in 1 hr after initial request
ContinueworkingonitandNotifyCustomerwithexpectedcompletiontime
Afterfixcomplete
VerifywithCustomer
122
Exercise55Solution
Uponreceiptofaclaim,theclaimsprocessor
Reviewstheclaim Ifcomplete,Processclaim(collapsedsubprocess)andrespondwithEOB. Ifincomplete,sendMissingInfoRequesttocustomerandwaitforresponse
Ifreceiveresponsewithin30days,Processclaimasbefore If receive response within 30 days Process claim as before Ifnoresponsewithin30days,endtheprocessandrespondwithRejectionnotice
Exercise56Solution
123
Exercise56Solution
WheredidFulfillOrdercomefrom?
It sthesubprocessaddedtodefinescopeofno feecancellationevent Its the subprocess added to define scope of nofee cancellation event
ExpandFulfillOrder:
Exercise57Solution
ExpandFulfillOrderat NewProcessLevel
124
Exercise61Solution
Diagramthefollowingprocess g gp
Lognewproposal PerformTechnicalReview InparallelwithTechReview,performFinancialReview In parallel with Tech Review perform Financial Review Whenbothcomplete,performDirectorReview
Exercise62Solution
Diagramthefollowingprocess
Lognewproposal PerformTechnicalReview Ifcost>$10K
InparallelwithTechReview,performFinancialReview
Whenneededreviewscomplete,performDirectorReview
125
Exercise63Solution
Diagramthefollowingprocess
Lognewproposal Iftechnicalproposal,performTechnicalReview Ifcost>$10K
InparallelwithTechReview,performFinancialReview In parallel with Tech Review perform Financial Review
Ifneithertechnicalproposalorcost>$10K,performQuickReview Whenneededreviewscomplete,performDirectorReview
Exercise71Solution
126
Exercise72Solution
Exercise73Solution
127
Contact
v4.6 February 2011 Training content Bruce Silver Associates 20092010. Unauthorized reproduction prohibited. BPMessentials is a joint venture of Bruce Silver Associates and itp commerce ltd For sales and licensing inquiries contact sales@bpmessentials com sales@bpmessentials.com For questions about training content contact bruce@bpmessentials.com For technical support on Process Modeler tool contact info@itp-commerce.com
Papiermhlestrasse 73 Stade de Suisse Business Center CH-3014 Berne Switzerland Phone: +41 31 3053 444 Fax.: +41 31 3053 443 E-mail: info@itp-commerce.com Web: www.itp-commerce.com
128