Archyno
UMLDiagramy chování

Příklady diagramů aktivit

Tři diagramy aktivit procesů, které znáte - CI pipeline, třídění ticketů a fragment, který ukončuje dva tokeny různě - vždy s odůvodněním každého uzlu.

8 min čteníUML 2.5.114 z 35

Krátká odpověď

  • Nejsrozumitelnější příklad je CI pipeline: sestavení, pak tři kontroly souběžně za vidlicí, spojení čekající na všechny tři a větvení podle výsledku.
  • Hrany vycházející z vidlice nikdy nenesou stráže, protože se použijí všechny. Stráže patří na hrany vycházející z rozhodnutí.
  • Konec toku ukončí jeden token, konec aktivity ukončí všechno. Kroužkovaný kruh na vedlejší větvi tiše zabije hlavní tok.
  • Poslední hraně z rozhodnutí dejte stráž [else]. Bez ní může token dorazit tam, kde neplatí žádná stráž, a aktivita uvázne.
UML diagram aktivit CI pipeline. Z počátečního uzlu sestavit artefakt. Rozvětvovací pás se dělí na tři paralelní akce: spustit jednotkové testy, spustit lintery a proskenovat závislosti. Spojovací pás čeká na všechny tři, pak rozhodnutí větví podle výsledku: všechno zelené jde na nasadit do stagingu a koncový uzel aktivity, cokoli selhalo jde vpravo na uvědomit autora a vlastní koncový uzel.
CI pipeline: jedno rozvětvení, tři souběžné akce, spojení, které čeká na všechny, a rozhodnutí o výsledku.

01Příklad 1: paralelní práce za rozvětvením#

Build pipeline je nejjasnějším prvním příkladem, protože souběžnost je tu skutečná, ne pomyslná. Jednotkové testy, linting a sken závislostí opravdu běží naráz, nic dál po proudu nemůže začít, dokud všechny tři neskončí, a každý to už viděl.

Práci dělají ty dva plné pásy. Horní je rozvětvení: přijde jeden token a odejdou tři, takže běží všechny tři větve. Dolní je spojení: čeká, dokud token nepřijde po každé vstupní hraně, a teprve pak nechá jeden pokračovat. Vyměňte kterýkoli za kosočtverec a diagram teď tvrdí něco nepravdivého - kosočtverec se spustí u prvního tokenu a nikdy nečeká.

Všimněte si těch dvou samostatných koncových uzlů. Selhaný build a nasazený build jsou rozdílné konce a nakreslit je jako dva kotouče s prstencem je legální i jasnější než směrovat oba zpět do jednoho. UML neklade žádný limit na to, kolik koncových uzlů aktivity aktivita má.

02Příklad 2: trojcestné větvení s vyčerpávajícími strážemi#

Většina obchodních procesů není souběžná. Jsou to rozhodnutí s několika výsledky, které se později sejdou, a to je tvar níže.

UML diagram aktivit třídění tiketů podpory. Z počátečního uzlu přijmout tiket, pak rozhodnutí větví třemi směry podle závažnosti: závažnost jedna jde vlevo na přivolat pohotovost, závažnost dva jde dolů na zařadit do fronty týmu a všechno ostatní jde vpravo na automaticky odpovědět a uzavřít. Všechny tři cesty dosáhnou slučovacího kosočtverce, pak zaznamenat řešení a pak koncový uzel aktivity.

Tři věci na tomhle diagramu jsou záměrné. Stráže jsou vyčerpávající: [sev 1], [sev 2 or 3] a [else] dohromady pokryjí každý tiket, takže žádný token nemůže dorazit ke kosočtverci a nenajít kam jít. Token bez povolené odchozí hrany je zastavený proces a je to vada, kterou se vyplatí zachytit na papíře.

Dolní kosočtverec je sloučení, ne spojení, a na tom rozdílu záleží: token nese vždy jen jedna z těch tří cest, takže čekat na všechny tři by se okamžitě zablokovalo. Pravidlo se snadno drží - kosočtverec zavírá to, co kosočtverec otevřel, a pás zavírá to, co otevřel pás.

Konečně, každá akce je slovesná fráze v rozkazovacím způsobu: „Přivolat pohotovost“, ne „Přivolávání pohotovosti“. Podstatná jména se vkrádají, když někdo popisuje systém místo procesu, a diagram podstatných jmen je diagram tříd, který nabral špatný tvar.

03Příklad 3: dva způsoby, jak může tok skončit#

Dvojice koncových uzlů je detail, který většina prvních diagramů pokazí, a ta chyba je neviditelná: diagram pořád vypadá správně.

Fragment UML diagramu aktivit porovnávající dva koncové uzly. Rozvětvení se dělí na dvě větve: zapsat auditní záznam končí u koncového uzlu toku nakresleného jako přeškrtnutý kruh a potvrdit zákazníkovi končí u koncového uzlu aktivity nakresleného jako kotouč s prstencem. Poznámka vysvětluje, že přeškrtnutý kruh ukončí jen svůj vlastní token, zatímco kotouč s prstencem ukončí celou aktivitu.

Za rozvětvením jsou v letu dva tokeny. Auditní větev dosáhne konce toku - kruhu s křížem - který spotřebuje ten token a nic jiného. Zákaznická větev dosáhne konce aktivity, kotouče s prstencem, který ukončí celou aktivitu a zahodí v ní každý další token.

Dejte kotouč s prstencem na auditní větev místo toho a diagram teď říká, že objednávka je opuštěná, jakmile se zapíše řádek do logu. Nic na něm nevypadá špatně, a právě proto se ten rozdíl vyplatí naučit jednou: konec toku použijte pro vedlejší větev, která prostě doběhne, a konec aktivity jen tam, kde myslíte „jsme hotovi“.

04Jak z nich udělat vlastní#

Tyhle tři pokrývají tvary, ze kterých je téměř každý diagram aktivit poskládaný. Mezi nimi a tím vaším se mění popisky; co by se měnit nemělo, je disciplína ohledně rozsahu.

Sáhněte po něm, když

  • Jeden proces na diagram, s názvem, který byste dali do předmětu e-mailu.
  • Akce jako slovesné fráze, aby každý box byl něčím, co někdo nebo něco dělá.
  • Plavecké dráhy, když jsou pointou předání mezi rolemi - procesy selhávají právě na přechodech drah.
  • Stráž [else] na poslední hraně z každého rozhodnutí, aby byla množina vyčerpávající.

Sáhněte po něčem jiném, když

  • Víc než zhruba patnáct akcí. Raději vytáhněte podstrom jako vlastní aktivitu.
  • Pás tam, kde se sbíhají alternativy, nebo kosočtverec tam, kde se sbíhá souběžná práce.
  • Ošetření chyb u každého kroku. Nakreslete šťastnou cestu a pak jeden diagram na selhání, na kterém záleží.
  • Modelování životního cyklu jednoho objektu - to je stavový automat, ne aktivita.

Pokud jsou publikem byznys analytici a ne inženýři, tentýž proces bývá lépe nakreslit v BPMN, které má bohatší sémantiku událostí a je tím, co spustí procesní engine. Ty dvě notace odpovídají na tutéž otázku pro rozdílné místnosti.

05Co si zapamatovat#

Po jednom řádku na každé

  1. 01Pás rozvětvuje a spojuje; kosočtverec větví a slučuje. Kosočtverec nikdy nečeká a pás čeká vždy.
  2. 02Stráže patří na hrany z rozhodnutí a nikdy na hrany z rozvětvení.
  3. 03Množinu stráží udělejte vyčerpávající - [else] na poslední hraně - jinak se proces může zastavit.
  4. 04Konec toku ukončí jeden token; konec aktivity ukončí všechno. Ten nesprávný vypadá stejně.
  5. 05Akce jsou slovesné fráze. Pokud jsou boxy podstatná jména, kreslíte špatný diagram.

06Časté dotazy#

Jaký je dobrý příklad diagramu aktivit?

Nejsrozumitelnější je CI pipeline: sestav artefakt, pak souběžně za vidlicí spusť testy, lintery a sken závislostí, počkej na všechny tři ve spojení a větvi se podle výsledku. Použije každý podstatný druh uzlu v asi deseti boxech.

Jak se v diagramu aktivit kreslí souběžné kroky?

Přes tok položte plný pruh - vidlici - a z něj veďte jednu hranu do každé souběžné akce. Skupinu uzavřete druhým pruhem, spojením, které počká na token na každé vstupní hraně. Na hranách vycházejících z vidlice nikdy nejsou stráže, protože se použijí všechny.

Jaký je rozdíl mezi koncem toku a koncem aktivity?

Konec toku, kruh s křížem, ukončí token, který k němu dorazí, a zbytek aktivity běží dál. Konec aktivity, kroužkovaný kruh, ukončí celou aktivitu a zahodí všechny ostatní tokeny. Použít kroužkovaný kruh na vedlejší větvi tiše zabije hlavní tok.

Musí stráže vycházející z rozhodnutí pokrýt každý případ?

Ano. Pokud neplatí žádná stráž, token nemá kam jít a aktivita uvázne, což je skutečná vada, ne kosmetika. Bezpečný zvyk je dát poslední hraně stráž [else], čímž se množina stane vyčerpávající z konstrukce.

Kolik akcí má mít jeden diagram aktivit?

Zhruba patnáct, pak přestává být čitelný. Nad tento počet vyjměte podstrom jako samostatnou aktivitu a odkazujte na ni jedinou volací akcí. Diagram, který je třeba přiblížit, je diagram, který nikdo neporovnává s realitou.

V této sérii

Související články

Všechny články