Activity diagram - diagram aktivit

Základy

Diagram aktivit se používá pro popis dynamických aspektů systému.

Jde o jakýsi flowchart - znázorňuje tok řízení z aktivity do aktivity. Používá se také k modelování obchodních (business) procesů a workflow.
Diagram aktivit se soustřeďuje spíše na proces výpočtu než na objekty účastnící se výpočtu (i když i objekty mohou být znázorněny jako prvek aktivity).

Diagramy stavů a diagramy aktivit jsou si podobné (oba ukazují sekvenci stavů, které nastávají v čase, a ukazují podmínky způsobující přechody mezi stavy). Rozdíl mezi těmito diagramy je však v tom, že d. stavů se soustřeďuje na stavy objektu (tj. objektu provádějícího výpočet či objektu, se kterým je výpočet prováděn), kdežto d. aktivit se zaměřuje na stav samotného výpočtu (stav procesu, algoritmu, ....), kde může být účastno i více objektů, a kde jsou znázorněny řídící a informační toky mezi prvky diagramu.

Příklad diagramu aktivit

jednoduchý diagram aktivit, 24 kB

Na obrázku je příklad jednoduchého diagramu aktivit :

  • aktivita (activity) vyřizování objednávek je ta, která je zde modelována (pro znázornění, jak vlastně toto vyřizování objednávek probíhá)
  • oddíly (partitions, swimlanes): plavební dráhy - rozdělení diagramů na více částí pro znázornění odpovědností za různé části aktivity; zde jde o rozdělění aktivity na dvě různé firmy
  • akce (action) : nejprimitivnější, nejnižší prvek výpočtu. Nemůže být dále dekomponován.
  • hrana, tok (edge, flow) zobrazuje přechod z jedné aktivity do další (v příkladu je přechod vždy automatický, dojde k němu po ukončení předcházející akce)
  • objekt (object) může vstupovat do aktivit, může být jejich výsledkem
  • počáteční, finální uzel aktivity (initial, activity final) : zvláštní uzly pro označení počátku a konce aktivity

Další podrobnosti

Aktivity mohou být spouštěny akcemi a nebo jako součásti jiných chování, např. přechody v diagramu stavového stroje, metodou, případem použití, jinou aktivitou, .... . Aktivita je zobrazena v diagramu aktivit.

Aktivita je specifikace chování - popisuje sekvenční a souběžné kroky výpočetní procedury. Aktivita je modelována jako graf uzlů aktivity (activity nodes) propojených řídícími a datovými toky (control flow, data flow).
PS.: Uzel aktivity je něco naprosto jiného než uzel v deployment modelu ! Paradoxně na tuto zmatečnost je poukazováno přímo v UML reference manuálu.
Toky mezi uzly modelují řídící a datové toky v rámci aktivity.

Uzly aktivity jsou :

  • vložené aktivity
  • akce : modelují účinky na systém (viz níže)
  • lokace dat
  • řídící konstrukce (control construct) : používají se ke složitějšímu řízení toku :
    • decision/merge node (uzel rozhodnutí/splynutí) decision, merge, 10 kB
      v příkladu je po provedení přijímacího pohoru napsán zájemci dopis : dle výsledku pohovoru buďto kladný, nebo zamítavý; následně jsou toky spojeny a aktivita pokračuje dále (akcí odeslání dopisu)
    • fork/join node (uzel rozdvojení/spojení) fork, join, 11 kB
      v příkladu probíhá současně jak přijímací pohovor, tak ověření podkladů zájemce (přesněji : tyto dvě akce probíhají nezávisle na sobě, tj. mohou proběhnout paralelně, či může proběhnout nejdříve jedna z nich a pak ta druhá - diagram vyjadřuje, že na pořadí vůbec nezáleží). Psaní dopisu ovšem může začít až tehdy, pokud je dokončen jak pohovor, tak ověření podkladů (v místě joinu se čeká, dokud všechny vstupní toky nedorazí)
    • initial node
      initial node, 3 kB
      takto je značen počáteční uzel v aktivitě; na počátku aktivity se ihned přejde z tohoto uzlu do následujícího
    • activity final

    • activity final, 2 kB
      takto je znázorněno, že odeslání dopisu je poslední akce aktivity a dále již nic nenásleduje (mohou se ovšem provádět jiné akce v jiných větvích); těchto uzlů může být v diagramu aktivity více - jakmile tok dojde k prvnímu takovému uzlu, celá aktivita je ukončena
    • flow final

    • flow final, 2 kB
      takto je znázorněn konec daného toku; význam je podobný jako u předchozího elementu (activity final) s tím rozdílem, že pokud některý tok dojde k elementu flow final, tak je ukončen pouze daný tok - ostatní toky aktivity pokračují dále

Akce je primitivní uzel aktivity. Je to nejmenší část výpočtu zobrazitelná v UML. Akce něco dělá se stavem systému nebo ze systému získává data. Typicky akce obsahuje přiřazení hodnoty atributu, zpřístupnění hodnoty atributu, vytvoření nového objektu, aritmetický výpočet, poslání signálu.

Akce může mít jeden či více vstupních a výstupních pinů modelujících vstupní a výstupní hodnoty:

piny, 5 kB

Jsou možné různé notace pro znázornění předání objektu mezi akcemi:

předání objektu, 8 kB

Na následujícím obrázku jsou ukázány signály : accept event action ukazuje symbol akce pro příjem signálu (v tomto bodě se provádění algoritmu zastaví a čeká se do okamžiku, než je obdržen specifikovaný signál), send signal action ukazuje symbol pro zaslání signálu:

signály, 7 kB

Kam dál

Náměty na další samostudium

  • rozsiřující region (expansion region) : parallel, iterative, stream
  • strukturovaná aktivita (structured activity node)
  • hierarchické a multidimenzionální oddíly (partitions, swimlanes)
  • read-only aktivita
  • parametr aktivity; create, read, update, delete
  • sady parametrů
  • přerušitelný region (interuptible activity region)
  • notace aktivity jako třída
  • akce spouštějící aktivitu, rake symbol (hrábě)
  • akce : flag mustIsolate
  • akce : local preconditions a postconditions
  • akce : value pin
  • typy akcí : accept call action, accept event action, apply function action, broadcast event action, call action, classification actions (clasiified, reclasify), create action, destroy action, raise exception action, read action, reply action, read extent action, return action, send action, start owned behaviour action, test identity action, time action, write action
  • akce spouštěná událostí : nastal konkrétní časový okamžik (druh accept event action)
  • exception pin, stream pin, value pin
  • unmarshall akce
  • tok jako exception handler (chybová rutina)
  • datový tok selection, transformation
  • konektor (connector) pro přerušení a napojení toku
  • váha (weight) definovaná pro tok
  • typ řazení objektů : unordered, ordred, LIFO, FIFO
  • objekt central buffer, datastore
  • uzel cyklu (loop node)
  • podmíněný uzel (conditional node)
  • uzel sekvence (sequence node)
  • souvislosti s petriho sítěmi (tokeny atd.)