Archyno
UMLDiagramy správania

Príklady diagramov aktivít

Tri diagramy aktivít procesov, ktoré poznáte - CI pipeline, triedenie tiketov a fragment, ktorý ukončuje dva tokeny rôzne - vždy s odôvodnením každého uzla.

8 min čítaniaUML 2.5.114 z 35

Krátka odpoveď

  • Najzrozumiteľnejší príklad je CI pipeline: zostavenie, potom tri kontroly súbežne za vidlicou, spojenie čakajúce na všetky tri a vetvenie podľa výsledku.
  • Hrany vychádzajúce z vidlice nikdy nenesú stráže, lebo sa použijú všetky. Stráže patria na hrany vychádzajúce z rozhodnutia.
  • Koniec toku ukončí jeden token, koniec aktivity ukončí všetko. Krúžkovaný kruh na vedľajšej vetve ticho zabije hlavný tok.
  • Poslednej hrane z rozhodnutia dajte stráž [else]. Bez nej môže token doraziť tam, kde neplatí žiadna stráž, a aktivita uviazne.
UML diagram aktivít CI pipeline. Z počiatočného uzla zostaviť artefakt. Rozvetvovací pás sa delí na tri paralelné akcie: spustiť jednotkové testy, spustiť lintery a preskenovať závislosti. Spojovací pás čaká na všetky tri, potom rozhodnutie vetví podľa výsledku: všetko zelené ide na nasadiť do stagingu a koncový uzol aktivity, čokoľvek zlyhalo ide vpravo na upovedomiť autora a vlastný koncový uzol.
CI pipeline: jedno rozvetvenie, tri súbežné akcie, spojenie, ktoré čaká na všetky, a rozhodnutie o výsledku.

01Príklad 1: paralelná práca za rozvetvením#

Build pipeline je najjasnejším prvým príkladom, lebo súbežnosť je tu skutočná, nie pomyselná. Jednotkové testy, linting a sken závislostí naozaj bežia naraz, nič ďalej po prúde nemôže začať, kým všetky tri neskončia, a každý to už videl.

Prácu robia tie dva plné pásy. Horný je rozvetvenie: príde jeden token a odídu tri, takže bežia všetky tri vetvy. Dolný je spojenie: čaká, kým token nepríde po každej vstupnej hrane, a až potom nechá jeden pokračovať. Vymeňte ktorýkoľvek za kosoštvorec a diagram teraz tvrdí niečo nepravdivé - kosoštvorec sa spustí pri prvom tokene a nikdy nečaká.

Všimnite si tie dva samostatné koncové uzly. Zlyhaný build a nasadený build sú rozdielne konce a nakresliť ich ako dva kotúče s prstencom je legálne aj jasnejšie než smerovať oba späť do jedného. UML nekladie žiadny limit na to, koľko koncových uzlov aktivity aktivita má.

02Príklad 2: trojcestné vetvenie s vyčerpávajúcimi strážami#

Väčšina obchodných procesov nie je súbežná. Sú to rozhodnutia s viacerými výsledkami, ktoré sa neskôr zídu, a to je tvar nižšie.

UML diagram aktivít triedenia tiketov podpory. Z počiatočného uzla prijať tiket, potom rozhodnutie vetví tromi smermi podľa závažnosti: závažnosť jedna ide vľavo na privolať pohotovosť, závažnosť dva ide dole na zaradiť do fronty tímu a všetko ostatné ide vpravo na automaticky odpovedať a uzavrieť. Všetky tri cesty dosiahnu zlučovací kosoštvorec, potom zaznamenať riešenie a potom koncový uzol aktivity.

Tri veci na tomto diagrame sú zámerné. Stráže sú vyčerpávajúce: [sev 1], [sev 2 or 3] a [else] dohromady pokryjú každý tiket, takže žiadny token nemôže doraziť ku kosoštvorcu a nenájsť kam ísť. Token bez povolenej odchádzajúcej hrany je zastavený proces a je to chyba, ktorú sa oplatí zachytiť na papieri.

Dolný kosoštvorec je zlúčenie, nie spojenie, a na tom rozdiele záleží: token nesie vždy len jedna z tých troch ciest, takže čakať na všetky tri by sa okamžite zablokovalo. Pravidlo sa ľahko drží - kosoštvorec zatvára to, čo kosoštvorec otvoril, a pás zatvára to, čo otvoril pás.

Napokon, každá akcia je slovesná fráza v rozkazovacom spôsobe: „Privolať pohotovosť“, nie „Privolávanie pohotovosti“. Podstatné mená sa vkrádajú, keď niekto popisuje systém namiesto procesu, a diagram podstatných mien je diagram tried, ktorý nabral zlý tvar.

03Príklad 3: dva spôsoby, ako môže tok skončiť#

Dvojica koncových uzlov je detail, ktorý väčšina prvých diagramov pokazí, a tá chyba je neviditeľná: diagram stále vyzerá správne.

Fragment UML diagramu aktivít porovnávajúci dva koncové uzly. Rozvetvenie sa delí na dve vetvy: zapísať auditný záznam končí pri koncovom uzle toku nakreslenom ako prekrížený kruh a potvrdiť zákazníkovi končí pri koncovom uzle aktivity nakreslenom ako kotúč s prstencom. Poznámka vysvetľuje, že prekrížený kruh ukončí len svoj vlastný token, kým kotúč s prstencom ukončí celú aktivitu.

Za rozvetvením sú v lete dva tokeny. Auditná vetva dosiahne koniec toku - kruh s krížom - ktorý spotrebuje ten token a nič iné. Zákaznícka vetva dosiahne koniec aktivity, kotúč s prstencom, ktorý ukončí celú aktivitu a zahodí v nej každý ďalší token.

Dajte kotúč s prstencom na auditnú vetvu namiesto toho a diagram teraz hovorí, že objednávka je opustená, len čo sa zapíše riadok do logu. Nič na ňom nevyzerá zle, a práve preto sa ten rozdiel oplatí naučiť raz: koniec toku použite pre vedľajšiu vetvu, ktorá jednoducho dobehne, a koniec aktivity len tam, kde myslíte „sme hotoví“.

04Ako z nich spraviť vlastné#

Tieto tri pokrývajú tvary, z ktorých je takmer každý diagram aktivít poskladaný. Medzi nimi a tým vaším sa menia popisky; čo by sa meniť nemalo, je disciplína ohľadom rozsahu.

Siahnite po ňom, keď

  • Jeden proces na diagram, s názvom, ktorý by ste dali do predmetu e-mailu.
  • Akcie ako slovesné frázy, aby každý box bol niečím, čo niekto alebo niečo robí.
  • Plavecké dráhy, keď sú pointou odovzdania medzi rolami - procesy zlyhávajú práve na prechodoch dráh.
  • Stráž [else] na poslednej hrane z každého rozhodnutia, aby bola množina vyčerpávajúca.

Siahnite po niečom inom, keď

  • Viac než zhruba pätnásť akcií. Radšej vytiahnite podstrom ako vlastnú aktivitu.
  • Pás tam, kde sa zbiehajú alternatívy, alebo kosoštvorec tam, kde sa zbieha súbežná práca.
  • Ošetrenie chýb pri každom kroku. Nakreslite šťastnú cestu a potom jeden diagram na zlyhanie, na ktorom záleží.
  • Modelovanie životného cyklu jedného objektu - to je stavový automat, nie aktivita.

Ak sú publikom biznis analytici a nie inžinieri, ten istý proces býva lepšie nakresliť v BPMN, ktoré má bohatšiu sémantiku udalostí a je tým, čo spustí procesný engine. Tie dve notácie odpovedajú na tú istú otázku pre rozdielne miestnosti.

05Čo si zapamätať#

Po jednom riadku na každé

  1. 01Pás rozvetvuje a spája; kosoštvorec vetví a zlučuje. Kosoštvorec nikdy nečaká a pás čaká vždy.
  2. 02Stráže patria na hrany z rozhodnutia a nikdy na hrany z rozvetvenia.
  3. 03Množinu stráží spravte vyčerpávajúcou - [else] na poslednej hrane - inak sa proces môže zastaviť.
  4. 04Koniec toku ukončí jeden token; koniec aktivity ukončí všetko. Ten nesprávny vyzerá rovnako.
  5. 05Akcie sú slovesné frázy. Ak sú boxy podstatné mená, kreslíte zlý diagram.

06Časté otázky#

Aký je dobrý príklad diagramu aktivít?

Najzrozumiteľnejšia je CI pipeline: zostav artefakt, potom súbežne za vidlicou spusti testy, lintery a sken závislostí, počkaj na všetky tri v spojení a rozvetv sa podľa výsledku. Použije každý podstatný druh uzla v asi desiatich boxoch.

Ako sa v diagrame aktivít kreslia súbežné kroky?

Cez tok položte plný pruh - vidlicu - a z neho veďte jednu hranu do každej súbežnej akcie. Skupinu uzavrite druhým pruhom, spojením, ktoré počká na token na každej vstupnej hrane. Na hranách vychádzajúcich z vidlice nikdy nie sú stráže, lebo sa použijú všetky.

Aký je rozdiel medzi koncom toku a koncom aktivity?

Koniec toku, kruh s krížom, ukončí token, ktorý k nemu dorazí, a zvyšok aktivity beží ďalej. Koniec aktivity, krúžkovaný kruh, ukončí celú aktivitu a zahodí všetky ostatné tokeny. Použiť krúžkovaný kruh na vedľajšej vetve ticho zabije hlavný tok.

Musia stráže vychádzajúce z rozhodnutia pokryť každý prípad?

Áno. Ak neplatí žiadna stráž, token nemá kam ísť a aktivita uviazne, čo je skutočná chyba, nie kozmetika. Bezpečný zvyk je dať poslednej hrane stráž [else], čím sa množina stane vyčerpávajúcou z konštrukcie.

Koľko akcií má mať jeden diagram aktivít?

Zhruba pätnásť, potom prestáva byť čitateľný. Nad tento počet vyberte podstrom ako samostatnú aktivitu a odkazujte naň jedinou volacou akciou. Diagram, ktorý treba priblížiť, je diagram, ktorý nikto neporovnáva s realitou.

V tejto sérii

Súvisiace články

Všetky články