Ciele
- Naučiť sa opisovať stavy systému (alebo jeho komponentov) a prechody medzi nimi pomocou stavových diagramov.
- Naučiť sa opisovať procesy v systéme použitím diagramu aktivít.
- Naučiť sa opisovať interakcie entít systému použitím diagramov sekvencií.
Úvod
Diagramy správania znázorňujú to, čo sa v modelovanom systéme deje. Na tomto cvičení by ste sa mali naučiť vytvárať niektoré z týchto diagramov.
Postup
Krok 1: UML stavové diagramy
Stavový diagram slúži na opis stavov, ktoré môže nadobúdať systém, alebo jeho časť. Znázorňuje stavy a prechody medzi nimi na základe udalostí.
Stav modeluje situáciu pri vykonávaní správania konečnostavového automatu, počas ktorého platí istá nemenná podmienka. Podmienka nie je zvyčajne definovaná, ale odvodená, zvyčajne na základe mena priradeného ku stavu.
Notácia stavu je zaoblený obdĺžnik, ktorý môže byť rozdelený na „priehradky“:
-
priehradka názvu stavu
-
priehradka pre interné správanie sa, ktorá má formát „
typ-správania / akcia
“ pričom typ-správania môže nadobúdať hodnoty:- entry — vykonané pri vstupe do stavu,
- do — vykonávané stále, kým nie je stav opustený,
- exit — vykonané pri výstupe zo stavu.
Prechod je označený orientovanou hranou začínajúca v zdrojovom stave a končiaca v cieľovom stave. Hrana prechodu je typicky označená názvom udalosti, ktorá spôsobí prechod. Opis prechodu však môže byť zložitejší a vtedy má tvar „spúšťač [strážca] / akcia
“, pričom spúšťač (trigger) je názov udalosti, ktorá spustí prechod, strážca (guard) je podmienka, ktorá musí byť splnená pre spustenie prechodu a akcia špecifikuje správanie, ktoré sa vykoná pri prechode.
Úloha 1.1
Rozšírte diagram o stav Naplánovaný. Článok v tomto stave je naplánovaný na vydanie v konkrétny dátum a čas.
Poznámka
Pozrite si zdroje opisujúce diagramy stavov, napríklad
- tutoriál od SPARX SYSTEMS,
- článok na Wikipédii,
- články na agilemodeling.com UML 2 State Machine Diagramming Guidelines a UML 2 State Machine Diagrams: An Agile Introduction.
Poznámka
Pri stavovom diagrame vždy musí existovať objekt, ktorý sa môže nachádzať v jednom z uvedených stavov. V príkladoch vyššie je to článok v blogu. Dávajte pozor na to, aby pri vašich stavových diagramoch bolo vždy možné jednoznačne odpovedať na otázku: čo sa môže nachádzať v týchto stavoch.
Krok 2: UML diagramy aktivít
Diagramy aktivít sú využívané pre popis procedurálnej logiky, biznis procesov a pracovného toku. Prvkami diagramu sú akcie znázorňované ako obdĺžniky so zaoblenými rohmi a tok riadenia znázornený šípkami.
Tieto diagramy sú podobné vývojovým diagramom. Rozdiel je ten, že diagramy aktivít podporujú paralelné vykonávanie. Kvôli podpore paralelného vykonávania diagramy obsahujú symboly „rozdeľovač“ (fork) a „spájač“ (join), znázornené ako hrubé úsečky.
Vyskúšajme modelovať proces prípravy článku v redakcii časopisu. Článok je kontrolovaný a pripomienkovaný redaktorom, kým sa nedostane do stavu, kedy je pripravený na publikovanie. Potom súčasne korektor opravuje prípadné chyby a ilustrátor kreslí ilustrácie. Keď to všetko je dokončené, redaktor môže článok publikovať.
Všimnite si, že diagram je rozdelený do tzv. „plaveckých dráh“ (swimlanes), ktoré určujú kto je zodpovedný za príslušnú aktivitu. To nie je povinné, ale v niektorých prípadoch veľmi užitočné.
Úloha 2.1
Doplňte do diagramu možnosť odmietnutia článku redaktorom, a tiež aktivitu naplánovania článku šéfredaktorom na konkrétny dátum.
Poznámka
Pozrite si zdroje opisujúce diagramy aktivít, napríklad
Krok 3: UML sekvenčné diagramy
Sekvenčný diagram je jedným z diagramov UML, ktoré slúžia na vyjadrenie interakcií. Interakcie sú vhodné pre získanie pohľadu na komunikáciu medzi procesmi — popis protokolov komunikácie.
Hlavnou súčasťou sekvenčného diagramu sú objekty alebo procesy a k ním pripojené „línie života“ (lifelines), ktoré znázorňujú beh času (smerom dole). Medzi líniami života jednotlivých objektov sú správy, pomocou ktorých tieto objekty komunikujú (znázornené šípkami).
Príklad diagramu znázorňuje priebeh komunikácie medzi používateľom systému, jeho komponentmi a externými web servermi.
Pomocou sekvenčného diagramu môžeme znázorniť aj priebeh moderovania komentárov v redakčnom systéme.
V niektorých prípadoch môže byť vhodné znározniť aj alternatívy alebo cykly. Na to je možné využiť ohraničené fragmenty. Na ďalšom obrázku sú pomocou fragmentu alt znázornené rôzne alternatívy rozhodnutia moderátora.
Úloha 3.1
Doplňte do diagramu automatickú kontrolu na spam externou službou. V prípade, že tato služba identifikuje spam, ručná moderácia už nebude potrebná.
Poznámka
Pozrite si zdroje opisujúce sekvenčné diagramy, napríklad
Krok 4: Zadania
Úloha 4.1
Pokiaľ vo vašom zadaní existuje niečo, čo sa môže nachádzať v jednom z konečnej množiny stavov, zakresliť to pomocou stavového diagramu.
Úloha 4.2
Navrhnite a nakreslíte diagram aktivít opisujúci niektorý zložitý proces vo vašom zadaní.
Úloha 4.3
Navrhnite a nakreslite sekvenčný diagram opisujúci komunikáciu účastníkov a komponentov vo vašom zadaní.
Poznámka
Vo vašom zadaní opíšte a navrhnite diagram aspoň 3 dôležitých procesov, interakcií alebo stavových prechodov. Použite aspoň 2 rôzne typy diagramov.
Zdroje
- Martin Fowler. UML Distilled (2003)