1 Slezská univerzita v Opavě, FPF Podklady k přednáškám Studijní obor: IVT Ročník: IV. Předmět: Projektování IS Téma: Objektový přístup k vývoji IS (část C) Vyučující: dr. Dušan Kajzar Školní rok: 2020/2021 Obsah: 1. Stavový diagram (State Diagram)........................................................................ 2 2. Diagram aktivit / činností (Activity Diagram)..................................................... 9 Kde se nacházíme ? Zobrazení struktury systému Zobrazení chování systému Diagram případů užití (Use Case Diagram) Diagram tříd (Class Diagram) Diagram stavů (State Diagram) Diagram činností - aktivit (Activity Diagram) Diagram komponent (Component Diagram) Diagram nasazení (Deployment Diagram) Diagram objektů (Object Diagram) Diagram balíčků (Package Diagram) Sekvenční diagram (Sequence Diagram) Diagram spolupráce (Collaboration Diagram) Diagram přehledu interakcí (Interaction Overview D.) Diagram časování (Timing Diagram) Composite Structure Diagram Implementační modely Diagramy interakcí 2 1. Stavový diagram (State Diagram) Účel modelu:  zobrazit množinu stavů, kterými jednotlivé objekty procházejí v čase,  zobrazit příčiny přechodů mezi stavy,  pohled na objekt jako na stavový automat. Použití:  modelování životního cyklu objektů (vznik, průběh, zánik),  modelování dynamiky subsystémů,  popis chování objektu dané třídy (subsystému) v různých stavech. Stavový diagram zobrazuje:  počáteční a koncový stav každého objektu,  stavy, do nichž se objekt může dostat,  podmínky (důvody) přechodů mezi jednotlivými stavy,  stavové veličiny – hodnoty klíčových atributů v daném stavu,  činnosti v jednotlivých stavech,  činnosti při příchodu či opuštění daného stavu,  akce během přechodu mezi stavy. Pojem „stav objektu“:  je situace v životě objektu, která má pro systém nějaký význam,  během níž objekt splňuje nějakou podmínku,  stavy objektu rozlišujeme na základě: o hodnot vybraných atributů objektu (tzv. stavové veličiny), o aktuálně vykonávané aktivity, o reakcí (spolupráce) s jinými objekty,  podrobnost rozlišení stavů: o mezi stavy objektu musí být „významově podstatný rozdíl“, o tj. aby rozlišení stavů mělo nějaký smysl. 3 Základní grafické znaky: Tři základní typy činností probíhajících v daném stavu:  vstup (enter) – činnosti při vstupu objektu do daného stavu,  výstup (exit) - činnosti při výstupu objektu z daného stavu,  provádění (do) - činnosti při pobytu objektu v daném stavu. Pseudostavy:  černý kroužek - začátek diagramu, spojovaní přechodů,  terčík – konec diagramu,  kosočtverec – větvení (pseudostav volby). Přechody mezi stavy:  udalost_1, udalost_2 [podmínka] / akce,  obrázek - spouštěcí událost a akce vykonaná při přechodu mezi stavy. Název stavu Stavové veličiny a jejich hodnoty Činnosti probíhající v daném stavu spouštěcí událost [podmínka] / akce Stav A Stav B Stav s podrobným popisem Stav č. 1 začátek stav přechod stav konec mezi stavy Stav č. 2 4 Důvody přechodu mezi stavy:  reakce na určitou událost - výskyt spouštěcí události,  v důsledku činností probíhajících v daném stavu. Typy událostí:  přijetí zprávy (jiný objekt zavolal metodu daného objektu),  přijetí signálu (informace, dat) – viz dále,  časová událost,  objekt indikoval změnu podmínek své existence (vnitřních, vnějších). Příklad stavového diagramu:  obrázek - jednoduchý příklad stavového diagramu. Strážní podmínka:  obrázek - příklad strážní podmínky. [uběhlo 5 min. bez činnosti uživatele] stisk klávesy, pohyb myši vypnout PC zapnutí PC Inicializace OS proveď/ spuštění OS Linux Práce PC Ukončování práce Šetření obrazovky počáteční stav vypnout PC zapnutí PC Inicializace OS proveď/ spuštění OS Linux Práce PC Ukončování práce koncový stav 5 Větvení přechodů:  obrázek - příklad větvení přechodů mezi stavy. Signál - odeslání a příjem signálu:  signál je jednosměrný asynchronní komunikační tok mezi objekty,  nemá operace, pouze přenáší informaci ve svých parametrech,  ozn. konvexní a konkávní pětiúhelník,  obrázek - grafické znázornění vyslání a zpracování signálu. Stav 1 Stav 2 [Podm.1] [Podm.2] Stav 3 vybrat() [jinak] ÚčetSolventní výběrZamítnut() zamítnuto() ZamítnutíVýběru SchváleníVýběru [podm.1] Informování Zákazníka ukončit() :BankovníÚčet :Operátor 6 Vnořené podstavy:  reprezentují vnořený stavový automat,  vnořený podstav dědí všechny přechody svého mateřského stavu,  obsahuje-li mateřský stav nějaký přechod, pak všechny podstavy také tento přechod obsahují. Dva druhy podstavů:  sekvenční a paralelní (souběžné). Sekvenční podstavy: Paralelní podstavy: Informování o stavu účtů Čekání na vstup dat Zpracování přijatých dat Výpis výsledků data jsou přijata Informování o stavu účtů Čekání na vstup dat Zpracování přijatých dat Výpis výsledků data jsou přijata Sledování klávesy Uzavření zobrazovacího okna [stisknuta klávesa ESC] 7 Pseudostavy složeného stavu:  bílý kroužek o místo vstupu do stavu, jenž obsahuje řetězec podstavů,  terčík - ukončení řetězce podstavů,  žárovka – ukončení řetězce podstavů o místo výstupu z řetězce podstavů externě, o tj. mimo nadstav (do zcela jiného stavu objektu), o tím se asynchronně ukončí platnost všech řetězců paralelních podstavů. Historie stavu:  umožňuje po dočasném opuštění složeného stavu opět se vrátit zpět,  a navíc navázat na poslední podstav, jehož objekt minule dosáhl. Účel historie stavu:  systém je ve (složeném) stavu B, konkrétně uvnitř vnořeného stavu B2,  -> přechází ven ze stavu B (tedy i z B2) do stavu C,  -> prochází několika externími stavy C -> D -> ... -> K,  -> ze stavu K se vrací do B a chceme, aby pokračoval tam, kde minule skončil (tj. v B2). Indikátor historie (H):  znamená pamatovat si poslední podstav objektu,  tj. v jakém podstavu se objekt nacházel v okamžiku opuštění hlavního stavu a hodnoty tohoto podstavu,  po návratu nastavit objekt na daný pamatovaný podstav, H Stav BStav A Stav B B1 B2 B3 C D K.... H 8  jde-li o první vstup do stavu – pak nastavit podstav č.1,  program musí zajistit ukládání všech potřebných hodnot podstavů, pro možnost návratu,  hovoříme také o tzv. ukládaném stavu – tj. ukládej aktuální podstavy. Hluboká historie stavu (H*):  indikátor znamená pamatovat a přesměrovat vstupy na podstav do libovolné hloubky vnoření podstavů. Tvorba stavového diagramu: 1) stanovíme stavové veličiny, které budou jednotlivé stavy charakterizovat, 2) stanovíme hodnoty (rozmezí hodnot) stavových veličin pro jednotlivé stavy, tj. stanovíme míru podrobností pro rozlišování stavů objektu, 3) identifikujeme a popíšeme všechny možné stavy daného objektu, 4) určíme všechny možné přechody mezi stavy daného objektu, 5) pro každý přechod mezi stavy určíme spouštěcí událost pro tento přechod, 6) pro každý přechod mezi stavy určíme, jaké akce během daného přechodu proběhnou, 7) ... Shrnutí významu stavového diagramu:  umožňuje modelovat změny, kterými prochází objekt (subsystém) v čase,  pomáhá pochopit chování jednotlivých objektů obsažených v systému a zobrazených v diagramu tříd (programátoři musí toto chování správně implementovat),  pomáhá realizačnímu týmu vyvinout IS reagující na veškeré podněty (události) tak, jak se očekává. Ukládaný stav B B1 B2 B3H 9 2. Diagram aktivit / činností (Activity Diagram) Účel modelu:  zobrazit algoritmy operací (procesů) ve vyvíjeném IS,  zachytit sekvenci kroků, rozhodování, větvení, opakování,  jinými slovy – jde o objektově orientované vývojové diagramy. Použití diagramu aktivit:  případy užití (grafické zachycení procesů),  algoritmy výpočtů (operací / metod tříd a rozhraní),  popisy činností ve stavovém diagramu,  procesy spolupráce různých komponent systému,  znázornění firemních procesů – workflow (!). Vztah mezi diagramem činností a stavovým diagramem:  stavový diagram o zobrazuje stavy jednotlivých objektů, přechody mezi stavy,  diagram činností o popisuje algoritmy činností, o např. probíhající ve stavech, při přechodu mezi stavy. Během modelování:  vždy mít na paměti, komu je diagram určen,  tj. k jakému účelu bude sloužit. Základní grafické znaky diagramu činností:  obrázek - základní grafické znaky diagramu činností. Činnost 3 Činnost 1 Činnost 2 začátek konec vstupní podmínky výstupní podmínky 10 Typy uzlů:  akční – činnost, aktivita o popisují chování, operace, odeslání/přijetí signálu, zpracování události,  řídicí – řídí postup aktivit o začátek, konec, větvení, konec větve, synchronizace činností,  objektové – zastupují objekty pohybující se v systému o předávání hodnot parametrů mezi činnostmi, o chovají se jako vyrovnávací paměť pro tokeny, o mohou znázorňovat uzly v určitém stavu. Grafické znaky pro základní typy uzlů:  začátek a konec aktivity  konec cesty (větve)  činnosti  větvení činností  synchronizace činností  signály (asynchronní)  příjem časové události (reakce na čas)  činnost volá další aktivitu (symbol „hrábě“) Činnost 1 Činnost 1 tiskni() čekat 10 sec. je 14:30 Vytvořit Objednávku tiskni() 11 Větvení činností: Větvení s podmínkou v poznámce: Větvení na více větví: Synchronizace (paralelizmus) činností:  obrázek - souběžné činnosti a synchronizační čáry. [vše v pořádku][nalezená chyba] Monitoring IS Řešení problému Studium dokumentací [jinak] [Podm.2] [Podm.1] [False][True] <> zůstatek >= cena Činnost 4Činnost 1 Činnost 2 Činnost 3 12 Vyslání a příjem signálu:  asynchronní komunikace - zaslání a příjem signálu "tiskni()" Čekání na událost (signál) + reakce:  během činnosti očekáváme událost (signál). Oblast přerušení:  signál je očekávaný v průběhu několika činností,  obrázek - oblast přerušení (inerruptible activity region). Objektový uzel:  (viz výše :Tiskárna) signalizuje dostupnost instance dané třídy,  může znázorňovat vstupní nebo výstupní parametry nějaké aktivity,  může se chovat jako vyrovnávací paměť o token zde čeká, až bude přijat dalším uzlem,  může znázorňovat uzel v určitém stavu,  příklad (obrázek) - objednávka ve stavech „otevřená“ a „odeslaná“. Činnost 1 Činnost 2 Storno Činnost 3 Činnost 4 Příprava dokumentu tiskni () tiskni () Tisk dokumentu :Tiskárna Činnost XY Událost Konec Událost Zpráva Zobrazení zprávy 13 Sponka (pin):  je objektový uzel zastupující jeden vstup do akce nebo jeden výstup z akce,  slouží ke zjednodušení diagramu,  obrázek - aktivita „Přihlásit se“ – s použitím tzv. objektových uzlů,  obrázek - aktivita „Přihlásit se“ - s použitím výstupních a vstupních sponek. Sponka pro ošetření výjimek:  pomocí sponky s výjimkou (ozn. trojúhelníčkem),  obrázek - sponka s ošetřením výjimky. OvěřeníUživatele Ošetření výjimky Zjištění UživJména Zjištění Hesla Heslo [platné] OvěřeníUživatele Přihlásit se UživJméno [platné] Objednávka [Otevřená] Vytvoření Objednávky Objednávka [Odeslaná] Odeslání Objednávky Zjištění UživJména Zjištění Hesla UživJméno [platné] Heslo [platné] OvěřeníUživatele Přihlásit se 14 Sponka přijímající množinu objektů:  přídavný uzel (oblast) – zastupuje množinu objektů,  tzv. přídavná oblast (čárkovaně) - provede se pro každý prvek množiny,  režim zpracování množiny prvků - sekvenční, paralelní,  vstupní a výstupní kolekce musí být téhož typu,  obrázek - příklad přídavné oblasti. Spojky:  značky pro navazování procesů – končí-li papír apod.,  obrázek - výstupní a vstupní spojka. Znázornění rolí objektů v procesu:  tzv. zóny odpovědnosti objektů (plavecké dráhy, swimlines),  kromě objektů (tříd) může jít o o organizační jednotky, pracovní role, případy užití, o subsystémy, SW komponenty, o fyzické počítače (rozdělení procesů na stroje), apod.  obrázek - role objektů v procesu správy IT. iterativně (sekvenčně) Kontrola výsledku zkoušky Množina Studentů Zápis známky Množina Studentů Činnost 1 A A Činnost 2 15 [problém v IS] :Pracovník dohledu IS/IT :Správce aplikace (SW) :Správce HW a OS Monitoring IS/IT Analýza stavu Konzultace řešení Řešení problému