O nota­cji tej mówi się od kil­ku już lat. Początkowo spo­tkać moż­na było opi­nie, że będzie czę­ścią BPMN, a tak­że że będzie jej kon­ku­ren­cją itp.. Pojawiały się nawet tezy (wróż­by lub groź­by 😉 ), że będzie to dobre narzę­dzie do roz­ry­so­wy­wa­nia” zło­żo­nych prze­pły­wów w pro­ce­sach (nadzie­ja dla zwo­len­ni­ków algo­ryt­mi­za­cji firm…). Jednak nie. Walka z kile­rem” pro­jek­tów, jakim jest utra­ta pano­wa­nia nad zło­żo­no­ścią dia­gra­mów”, z two­rze­niem mon­stru­al­nych dia­gra­mów ocie­ra­ją­cych się o pró­by algo­ryt­mi­zo­wa­nia orga­ni­za­cji trwa.

Niedawno napi­sa­łem:

Modele ana­li­tycz­ne, jak sama nazwa wska­zu­je, to mode­le któ­rych celem jest stwo­rze­nie abs­trak­cji, mode­lu pozwa­la­ją­ce­go na pro­wa­dze­nie ana­liz a nie uru­cha­mia­nie czy nawet symu­la­cja mode­lo­wa­nych kon­struk­cji. Każda ana­li­za to pra­ca z uprosz­cze­nia­mi. Te uprosz­cze­nia mają na celu pozby­cie się zbęd­nych szcze­gó­łów, tych nie­istot­nych dla dane­go bada­ne­go zagad­nie­nia. (Źródło: Analityczne i wyko­ny­wal­ne mode­le).

Dlatego model ana­li­tycz­ny pro­ce­su, poziom jego szcze­gó­ło­wo­ści raczej wyglą­da tak:

Przypomnę, że pod­sta­wo­wym blo­kiem kon­struk­cyj­nym” w takich ana­li­tycz­nych mode­lach jest pro­ces biz­ne­so­wy czy­li chro­no­lo­gicz­ny łań­cuch zadań, prze­twa­rza­ją­ca okre­ślo­ny stan wej­ścia pro­ce­su w stan jego wyj­ścia”, te sta­ny to okre­ślo­ne zesta­wy infor­ma­cji (danych, w BPMN DataObject na dia­gra­mie zobra­zo­wa­ne jako kar­tecz­ka z zagię­tym rogiem). Elementarnym (ato­mo­wym) pro­ce­sem biz­ne­so­wym jest jed­na aktyw­ność i jej wej­ście i wyj­ście. Na dia­gra­mie powy­żej mamy pro­ces biz­ne­so­wy obsłu­że­nia pisma (na wej­ściu Pismo a na wyj­ściu Odpowiedź) skła­da­ją­cy się z czte­rech ato­mo­wych” pro­ce­sów biz­ne­so­wych (poje­dyn­czych aktyw­no­ści mają­cych wej­ście i wyj­ście). Każda z aktyw­no­ści na dia­gra­mie może mieć poten­cjal­nie nawet bar­dzo zło­żo­ną i wie­lo­wa­rian­to­wą pro­ce­du­rę reali­za­cji. Zobrazowanie jej w posta­ci algo­ryt­micz­ne­go” dia­gra­mu (np. tak­że z uży­ciem BPMN, albo co gor­sza, wry­so­wa­nie tej zło­żo­no­ści bez­po­śred­nio w dia­gram powy­żej!!!) dopro­wa­dzi do pró­by stwo­rze­nia mega-dia­gra­mu, kosz­tow­ne­go zarów­no na eta­pie jego two­rze­nia jak i aktualizacji!

Ratunkiem przed utra­tą pano­wa­nia nad zło­żo­no­ścią takich deta­licz­nych sche­ma­tów blo­ko­wych nadal jest sto­so­wa­nie pisem­nej for­my reguł biz­ne­so­wych i powo­ły­wa­nie się na udo­ku­men­to­wa­ne w pro­jek­cie umie­jęt­no­ści i kom­pe­ten­cje wyko­naw­cy (ról). Jednak taka for­ma (pozo­sta­wie­nie pro­ce­dur poza mode­lem) nie pod­da­je się łatwo ana­li­zie tak, jak moż­na to zro­bić z mode­la­mi wyra­żo­ny­mi w okre­ślo­nej nota­cji (ana­li­zy wpły­wu, wery­fi­ka­cje kom­plet­no­ści i spój­ność itp.). Zgrabnym wyj­ściem z tej sytu­acji w BPMN, jest sto­so­wa­nie dia­gra­mów z aktyw­no­ścia­mi ad-hoc.

I tu z pomo­cą przy­cho­dzi CMMN. Notacja ta pozwa­la na two­rze­nie mode­li opi­su­ją­cych to, jakie powin­no­ści i moż­li­wo­ści ma wyko­naw­ca (per­for­mer w BPMN), jakie zależ­no­ści powo­du­ją to, że w danej kon­kret­nej sytu­acji wyda­rzy się taki nie inny sce­na­riusz. Jednak nie pole­ga to na two­rze­nia tych paskud­nych zawi­łych algo­ryt­micz­nych mon­stru­al­nych dia­gra­mów. Polega to na opi­sa­niu tego jakie aktyw­no­ści muszą być wyko­na­ne (aktyw­no­ści pla­no­wa­ne do reali­za­cji) , jakie mogą być wyko­na­ne (aktyw­no­ści prze­wi­dzia­ne ale nie­obli­ga­to­ryj­ne) oraz tego, jakie regu­ły (warun­ki) tym wszyst­kim ste­ru­ją (Tablica pla­no­wa­nia). Nie powsta­je więc model algo­ryt­mu” a model tego co musi i czym dys­po­nu­je” wyko­naw­ca. To jak” ma to robić opi­su­ją deta­licz­ne doku­men­ty, repre­zen­to­wa­ne na mode­lu jako Case files i Tablice pla­no­wa­nia (może ich być wie­le i mogą być sko­ja­rzo­ne z kon­kret­ny­mi elementami).

Notacja CMMN to tak na praw­dę roz­wi­nię­ta i upo­rząd­ko­wa­na meto­da mode­lo­wa­nia przy­pad­ków (wnę­trze aktyw­no­ści), któ­rych reali­za­cja to zło­żo­ny zestaw aktyw­no­ści ad-hoc mogą­cy wyge­ne­ro­wać bar­dzie wie­le kon­kret­nych indy­wi­du­al­nych sce­na­riu­szy. W BPMN był by to albo zestaw nie­po­wią­za­nych logi­ką aktyw­no­ści ad-hoc albo mon­stru­al­ny bar­dzo trud­ny w per­cep­cji dia­gram, z nie­zli­czo­ną licz­bą rom­bów decy­zyj­nych (nie wie­dzieć cze­mu tę wer­sję upodo­ba­ła sobie znacz­na więk­szość analityków).

Na powyż­szym mode­lu w nota­cji BPMN jest zobra­zo­wa­na, mię­dzy inny­mi, aktyw­ność Opracowanie odpo­wie­dzi. Próba stwo­rze­nia mode­lu opi­su­ją­ce­go wszel­kie moż­li­we, pla­no­wa­ne i dopusz­czal­ne zacho­wa­nia wyko­naw­cy, skoń­czy się mega-dia­gra­mem. Użycie nota­cji CMMN (i logi­ki two­rze­nia w niej mode­li) zaowo­cu­je mniej wię­cej takim o to diagramem:

opracowanie-odpowiedzi-cmmn

źr. Busnes Process Trends http://www.bptrendsassociates.com/
źr. Busnes Process Trends

Nie pla­nu­ję tu opi­sy­wa­nia z deta­la­mi nota­cji CMMN, pole­cam dostęp­ną spe­cy­fi­ka­cję, a w lżej­szej for­mie ). Mam nadzie­ję, że komen­ta­rze co nie­co wyja­śnia­ją. Celem moim było teraz jedy­nie poka­za­nie tego, że taka nota­cja jest, jak moż­na jej użyć w ana­li­zach i jaką korzyść daje przej­ście z mozol­ne­go pisa­nia pro­ce­dur w edy­to­rach tek­stów na mode­le, któ­re sta­ją się czę­ścią całe­go mode­lu (w jakimś narzę­dziu CASE), pod­da­ją­ce­mu się ana­li­zie oraz kon­tro­li spój­no­ści. Notacja jest kom­pa­ty­bil­na poję­cio­wo z BPMN, powsta­ła jako narzę­dzie do mode­lo­wa­nia tego co obja­wia się zło­żo­no­ścią na naj­niż­szym pozio­mie. Po pra­wej stro­nie, czę­sto tu przy­ta­cza­ny, model pozio­mów abs­trak­cji w mode­lo­wa­niu orga­ni­za­cji. CMMN pla­su­je się narzę­dzie mode­lo­wa­nia pra­cy ludzi na naj­niż­szym trze­cim pozio­mie. Nie zastę­pu­je żad­nej z obec­nych notacji.

Case Management Model and Notation. Formal Version of CMMN. (OMG CMMN). Polecam do mode­lo­wa­nia z uży­ciem CMMN CASE ArchiMetric 🙂 

Polecam też cie­ka­wą pre­zen­ta­cję fir­my CAMUNDA:

Jarosław Żeliński

Jarosław Żeliński: autor, badacz i praktyk analizy systemowej organizacji: Od roku 1991 roku, nieprzerwanie, realizuje projekty z zakresu analiz i projektowania systemów, dla urzędów, firm i organizacji. Od 1998 roku prowadzi samodzielne studia i prace badawcze z obszaru analizy systemowej i modelowania (modele jako przedmiot badań: ORCID). Od 2005 roku, jako nieetatowy wykładowca akademicki, prowadzi wykłady i laboratoria (ontologie i modelowanie systemów informacyjnych, aktualnie w Wyższej Szkole Informatyki Stosowanej i Zarządzania pod auspicjami Polskiej Akademii Nauk w Warszawie.) Oświadczenia: moje badania i publikacje nie mają finansowania z zewnątrz, jako ich autor deklaruję brak konfliktu interesów. Prawa autorskie: Zgodnie z art. 25 ust. 1 pkt. 1) lit. b) ustawy o prawie autorskim i prawach pokrewnych zastrzegam, że dalsze rozpowszechnianie artykułów publikowanych w niniejszym serwisie jest zabronione bez indywidualnej zgody autora (patrz Polityki Strony).

Ten post ma 9 komentarzy

  1. Mike_R

    Chyba strzał­ka z zesta­wu danych «Odpowiedź na pismo [Opracowana]» do «Nadanie pocz­tą kurier­ską» ma zły wektor…

    1. Jaroslaw Zelinski

      Tak :), lite­rów­ka”, już popra­wi­łem i bar­dzo dzię­ku­ję za zwró­ce­nie uwa­gi. Ciesze się, gdy ktoś uważ­nie czy­ta to co piszę.

  2. burbulatorr

    Opis zada­nia” chy­ba jest przy­go­to­wa­ny w złym momen­cie, bo jeśli nie ma potrze­by budże­to­wa­nia, to jest nad­mia­ro­wy. Element BR002 to nie wia­do­mo co to ma być, bo nie przy­po­mi­na żad­ne­go ele­men­tu z nota­cji BPMN?

    Co zaś do radze­nia sobie ze zło­żo­no­ścią, to kto bro­ni zagnież­dżać poszcze­gól­ne pozio­my pro­ce­su (nad)używając zamiast nor­mal­nych” czyn­no­ści ele­men­tu call acti­vi­ty. A jak komuś wyni­ka­ją­ca z tego hie­rar­chia nie prze­kła­da się na rze­czy­wi­stość to moż­na kom­bi­no­wać z odwzo­ro­wy­wa­niem struk­tur sieciowych/relacyjnych prze­ka­zy­wa­niem prze­pły­wów przy uży­ciu zda­rzeń sygnałowych.

    1. Jaroslaw Zelinski

      Opis zada­nia powsta­je jeże­li poja­wia się wydatek. 

      Element BR002 to regu­ła biz­ne­so­wa, umiesz­czo­na jako sym­bol na dia­gra­mie BPMN, zgod­nie z opi­sem roz­sze­rza­nia nota­cji (doda­wa­nie ele­men­tów na dia­gra­mach, BPMN 8.3.3 Extensibility).

      Pisałem o zło­żo­no­ści dia­gra­mów a nie mode­li jako takich. Rzecz w tym by jeden dia­gram nie był prze­sad­nie rozrośnięty”. 

      Metoda zagnież­dża­nie zale­ży od tego jaki model mamy na myśli, gdyż gene­ral­nie mamy mode­le poglą­do­we, ana­li­tycz­ne i wyko­ny­wal­ne (BPMN 2.2.1.):
      As an alter­na­ti­ve to full Process Modeling Conformance, the­re are three con­for­man­ce sub-clas­ses defined:
      – Descriptive
      – Analytic
      – Common Executable

      Descriptive is con­cer­ned with visi­ble ele­ments and attri­bu­tes used in high-level mode­ling. It sho­uld be com­for­ta­ble for
      ana­ly­sts who have used BPA flow­char­ting tools.

      Analytic con­ta­ins all of Descriptive and in total abo­ut half of the con­structs in the full Process Modeling Conformance
      Class. It is based on expe­rien­ce gathe­red in BPMN tra­ining and an ana­ly­sis of user-pat­terns in the Department of Defense
      Architecture Framework and plan­ned stan­dar­di­za­tion for that fra­me­work. Both Descriptive and Analytic focus on visi­ble ele­ments and a mini­mal sub­set of sup­por­ting attributes/elements.

      Common Executable focu­ses on what is needed for exe­cu­ta­ble pro­cess models. 

      W mode­lach ana­li­tycz­nych (czy­li wszyst­kich nie prze­zna­czo­nych do imple­men­ta­cji bez­po­śred­niej) sto­so­wa­nie call acti­vi­ty” nie ma sen­su, w mode­lu ana­li­tycz­nym o zna­cze­niu decy­du­je (uni­kal­na) nazwa aktyw­no­ści a nie odwo­ła­nie do pod­pro­gra­mu (call acti­vi­ty) wyma­ga­ne tyl­ko w mode­lach wykonywalnych. 

      Problem zło­żo­no­ści rozwiązujemy:
      – sto­su­jąc ele­men­ty sub-pro­cess” (aktyw­ność mają­ca dekom­po­zy­cję opi­sa­ną tak­że mode­le BPMN) czy­li budu­jąc mode­le zagnieżdżone
      – doku­men­tu­jąc deta­le aktyw­no­ści inny­mi meto­da­mi (pro­ce­du­ry opi­sa­ne nume­ro­wa­ny­mi kro­ka­mi, inne nota­cje, tu np. CMMN)

  3. burbulatorr

    Toż dzię­ki call acti­vi­ty” może­my w miej­scu zada­nia wpa­ko­wać w dia­gram wyso­ko­po­zio­mo­wy peł­no­praw­ny, nie­za­leż­ny pro­ces niż­sze­go poziom – przy­po­mi­nam, ze ele­ment ten zastą­pił w nota­cji pod­pro­ce­sy reu­ży­wal­ne (a nie żad­ne tajem­ni­cze pod­pro­gra­my”!), więc jeśli mamy orga­ni­za­cje pro­ce­sów z któ­rych da się uło­żyć coś na kształt hie­ra­chii to zda­rzeń call acti­vi­ty” NIE powin­ni­śmy się spo­dzie­wać na pozio­me naj­niż­szym, czy­li wyko­ny­wal­nym. Czyli jest dokła­da­nie nie odwrót w sto­sun­ku do tego co piszesz 🙂

    1. Jaroslaw Zelinski

      Sugeruję jako źró­dło ory­gi­nal­ną aktu­al­ną spe­cy­fi­ka­cję BPMN. Do zagnież­dża­nia (two­rze­nia hie­rar­chii pro­ce­sów) słu­żą aktyw­no­ści sub-pro­cess”. ?Call acti­vi­ty?, jak sama nazwa wska­zu­je, słu­ży do wywo­ła­nia w jed­nym pro­ce­sie wcze­śniej już zde­fi­nio­wa­ne­go zada­nia (a kon­kret­nie jego BPEL’ową reali­za­cję). Pojęcie aktyw­ność w BPMN to abs­trak­cja ozna­cza­ją­ca albo ato­mo­we zada­nie” albo zde­fi­nio­wa­ny pod-proces”.

      Rozdz. 7.3.1.
      An Activity is a gene­ric term for work that com­pa­ny per­forms (see page 149) in a Process. An Activity
      can be ato­mic or non-ato­mic (com­po­und). The types of Activities that are a part of a Process Model are: Sub-Process and Task, which are roun­ded rectangles.

      Rozdz. 10.3.6 Call Activity
      A Call Activity iden­ti­fies a point in the Process whe­re a glo­bal Process or a Global Task is used. The Call
      Activity acts as a ?wrap­per? for the invo­ca­tion of a glo­bal Process or Global Task within the exe­cu­tion. The
      acti­va­tion of a call Activity results in the trans­fer of con­trol to the cal­led glo­bal Process or Global Task.

      Innymi sło­wy: na danym dia­gra­mie mamy aktyw­no­ści, jeże­li jest nią sub-pro­cess ozna­cza to, że ist­nie­je inny dia­gram BPMN (lub CMMN, jed­nak ta nota­cja naj­wy­raź­niej nie pod­bi­ła świa­ta), któ­ry opi­su­je jej deta­le, jeże­li jest nią Call Activity, ozna­cza to wyłącz­nie re-uży­cie (odwo­ła­nie) do raz już (gdzieś) zde­fi­nio­wa­nej glo­bal­nej” (wspól­nej re-uży­wal­nej) aktyw­no­ści (w rozu­mie­niu jej wyko­ny­wal­na część, pro­ce­du­ra, skrypt BPEL itp.). Stosowanie Call Activity na mode­lach ana­li­tycz­nych nie bar­dzo ma sens bo nie defi­niu­je­my tu glo­bal­nych imple­men­ta­cji aktywności.

      Co do hie­rar­chii pro­ce­só­w/pod-pro­ce­sów: czy­sta drze­wia­sta struk­tu­ra jest nie do obro­ny, to fakt… :), mój ulu­bio­ny przy­kład to Archiwizacja doku­men­tu, któ­ra może wystą­pić na dowol­nym pozio­mie i w dowol­nym pro­ce­sie… Można ją udo­ku­men­to­wać jako pod-pro­ces BPMN (dia­gram dziur­kacz -> wła­ści­wy segre­ga­tor -> wła­ści­wy pokój -> wła­ści­wa szaf­ka) i użyć dowol­ną ilość razy gdzie­kol­wiek, jed­nak nie ma tu sen­su sto­so­wa­nie call acti­vi­ty bo na mode­lach ana­li­tycz­nych nazwa jed­no­znacz­nie iden­ty­fi­ku­je aktyw­ność i prak­tycz­nie każ­de narzę­dzie CASE wspie­ra tę for­mę two­rze­nia mode­li (jeże­li na kil­ku dia­gra­mach jest aktyw­ność o tej samej nazwie, to jest to taka sama aktyw­ność, więc tak­że i pod-proces). 

    2. burbulatorr

      Poprzednik Call acti­vi­ty” był jak naj­bar­dziej aktyw­no­ścią typu sub-pro­cess”, a chy­ba z samej zmia­ny kon­wen­cji nazew­ni­czej nie wyni­ka zamian moż­li­wych zasto­so­wań, praw­da? Proszę też zwró­cić uwa­gę na to, że pozo­sta­łe do dys­po­zy­cji aktyw­no­ści ?sub-pro­cess? są na tyle bied­ne, że nie pozwa­la­ją by osa­dzo­ne pro­ce­sy mia­ły wła­sne pule, tory, a już broń boże aby w innych kon­tek­stach były osob­ny­mi pro­ce­sa­mi! W ten oto spo­śób jeśli mamy pro­ces o nazwie pora­da praw­na”, z któ­rej to pora­dy korzy­sta­ją użyt­kow­ni­cy innych pro­ce­sów to albo: 1. mode­lu­je­my go w spo­sób sub­pro­ce­so­wy” i nie­reu­ży­wal­ny, albo 2. korzy­sta­my z call acti­vi­ty” lub ze zda­rzeń sygna­ło­wych. I nie jest tak jak Pan suge­ru­je – wybór nie zale­ży jedy­nie od tego czy gdzieś tam” ktoś już taki dia­gram popeł­nił, decy­zja zale­ży w dużej mie­rze od nie­obec­no­ści meto­dy alter­na­tyw­nej – wten­czas trze­ba ten wywo­ły­wa­ny” pro­ces zde­fi­nio­wać, nawet jeśli wcze­śniej nie mia­ło się na to ochoty

      Atomowe zada­nie” to jest coś o czym wszy­scy mówią, a nikt jesz­cze nie dał radę dać nie­za­leż­nej od kon­tek­stu i celu mode­lo­wa­nia defi­ni­cji – po pro­stu nie ist­nie­ją obiek­tyw­ne i uni­wer­sal­ne kry­te­ria dzię­ki któ­rym moż­na na 100% orzec, że mode­lo­wać dalej nie moż­na lub się nie powin­no. Niestety bar­dzo czę­sto wyko­rzy­stu­ją to wyko­naw­cy ana­li­zy, któ­rym nie chce się za bar­dzo drążyć.

    3. Jaroslaw Zelinski

      Atomowa aktyw­ność ma defi­ni­cję w spe­cy­fi­ka­cji BPMN (Dodatek C) i jest to pro­sta definicja:
      Atomic Activity: An acti­vi­ty not bro­ken down to a finer level of Process Model deta­il. It is a leaf in
      the tree-struc­tu­re hie­rar­chy of Process acti­vi­ties. Graphically it will appe­ar as a Task
      in BPMN.

      … resz­tę wyjaśniłem…

  4. Jaroslaw Zelinski

    Jeszcze jed­na waż­na uwa­ga: model wyko­ny­wal­ny to nie jest kolej­ny naj­niż­szy poziom szcze­gó­ło­wo­ści w sto­sun­ku do mode­li ana­li­tycz­nych, to zupeł­nie inny model… Np. pula w mode­lu ana­li­tycz­nym repre­zen­tu­je pod­miot (busi­ness, enter­pri­se) a w mode­lach wyko­ny­wal­nych ser­wer BPMS. Na mode­lach ana­li­tycz­nych jed­na fir­ma to jed­na i ta sama pula, w mode­lach wyko­ny­wal­nych, pula to ser­wer, i może wystą­pić w ilo­ści więk­szej niż jed­na w tej samej fir­mie, i tego się już pogo­dzić nie da.

    Tory mają sens tyl­ko na mode­lach ana­li­tycz­nych i słu­żą do par­ty­cjo­no­wa­nia obsza­ru puli (zna­cze­nie toru nale­ży zade­kla­ro­wać w mode­lu, z regu­ły są to role lub komór­ki orga­ni­za­cyj­ne), w mode­lach wyko­ny­wal­nych torów się nie sto­su­je z zasa­dy (wyko­naw­ce zada­nia wska­zu­je para­metr zada­nia per­for­mer”, nie mają­cy zna­cze­nia i nie uży­wa­ny w mode­lach ana­li­tycz­nych). To tyl­ko głów­ne róż­ni­ce, jest ich więcej.

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.