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 D) Vyučující: dr. Dušan Kajzar Školní rok: 2020/2021 Obsah: 1. Sekvenční diagram (Sequence Diagram)............................................................. 2 2. Diagram spolupráce (Collaboration Diagram) .................................................... 8 3. Diagram přehledu interakcí (Interaction Overview Diagram)........................... 12 4. Diagram časování (Timing Diagram)................................................................ 14 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) Diagram časování (Timing Diagram) Composite Structure Diagram Implementační modely Diagramy interakcí 2 1. Sekvenční diagram (Sequence Diagram) Účel modelu:  popsat spolupráci mezi objekty v průběhu dané činnosti,  popsat komunikaci objektů v čase,  identifikovat zprávy (události) vyměňované mezi objekty. Vstupy pro tvorbu sekvenčního diagramu jsou:  diagram tříd,  slovní scénáře diagramu případů užití. Poznámky ke tvorbě sekvenčního diagramu:  slouží k popisu interakcí objektů tříd během realizace případu užití,  k popisu vybíráme jen klíčové případy užití,  další přidáváme podle potřeby – iterativní přístup během tvorby. Sekvenční diagram je:  dvourozměrným modelem práce vyvíjeného IS,  na horizontální ose znázorňujeme jednotlivé objekty,  vertikální osa je osou časovou (životočáry). Příklad sekvenčního diagramu: :A :B :C aktér aktivace vývoj v čase předej() otevři() pošli() 3 Základní typy zpráv:  zpráva synchronní,  zpráva asynchronní,  návrat zprávy,  poznámka – typ zprávy rozlišujeme až později, ve fázi návrhu. Větvení zpráv: Cyklické (opakované) předávání zprávy: Vnořené bloky a operátory bloků:  použití tzv. „vnořených bloků“ pro znázornění skupiny aktivit vykonávaných za určitých podmínek,  větvení skupin aktivit, cyklické opakování, paralelní zpracování, ... pošli(X,Y,Z) *[X<=Y] kontroluj(X) :A :B aktér aktivace předat(X,Y) [X>Y] otevři() :A :B :C aktér aktivace [X<=Y] zkontroluj() vyúčtovat(X) 4  operátory bloků – např. opt, alt, loop, ref, par, ...  podrobnější informace - viz Arlow, Neustadt: UML2 a unifikovaný proces vývoje aplikací, kap. 12. Použití vnořených bloků s operátory pro větvení: Použití vnořených bloků s operátory pro cykly: :A :B :C :D opt: [podmínka] alt op1( ) [podm2] op2( ) [jinak] op3( ) :A :B loop min, max op1( ) loop [podmínka] op2( ) op4( ) break op3( ) 5 Vytvoření a zrušení objektu v čase:  vytvoření – metoda „vytvořit()“, zrušení – znak X,  pro vytvoření (zrušení) objektu je možno použít také o název konstruktoru, např. Účet(), o stereotyp, např. <>, <>, <>. Rekurzivní předávání zprávy:  objekt v dané metodě volá jinou (či tutéž) svou vlastní metodu. Průběžné komentování akcí a reakcí: vytvořit() :A :B :C aktér aktivace :A :B :C aktér aktivace Description: popis akcí a reakcí zpr(X) :A aktér aktivace 6 Interakce objektů v různých stavech:  na horizontální ose - znázornění objektu v různých stavech. Poznámka:  interakce objektů v různých stavech lze zpracovat také diagramem časování (viz dále). Vnořené interakce:  interakci „PřihlásitKPokladně“ zpracujeme Sekvenčním diagramem (SD),  následně ji použijeme v jiném SD jako vnořenou (obdobně jako „program a podprogram“) – s operátorem Ref (reference). :SprávceZabezpečení přihlásit(jméno, heslo) ověřit(jméno, heslo) sd PřihlásitKPokladně :Pokladní :A [stav 1] :B :C aktér aktivace :A [stav 2] :A [stav 3] atd. 7 Paralelismus interakcí:  použití operátoru Par (parallel). :Čídlo1 sd AktivovatMonitoring :Správce par :Čídlo2 Monitoruj() Aktivita-1 Aktivita-2 :SprávceÚčtů vybratUčet (č.ú.) sd ZjistitStavKč :Pokladní ref PřihlásitKPokladně :Účet zjistitStav (č.ú.) 8 Interakce podsystémů:  diagram interakcí lze využít nejen k modelování interakcí tříd (instancí),  nýbrž i k modelování interakcí subsystémů (resp. se subsystémy). Vztah sekvenčního diagramu a stavového diagramu:  stavový diagram o zachycuje změny stavů jednotlivých objektů v čase,  sekvenční diagram o zachycuje spolupráci objektů v čase. 2. Diagram spolupráce (Collaboration Diagram) resp. komunikace (Communication Diagram) Účel modelu:  zobrazení interakce mezi objekty,  zobrazení zpráv, které si objekty vzájemně vysílají a zpracovávají,  ukázat, které objekty spolu komunikují (resp. „jak“). Vztah diagramu spolupráce a diagramu sekvencí:  oba modely - jsou (v podstatě) „významově ekvivalentní“ o tj. obsahují stejné informace, jeden je možné převést na druhý,  sekvenční diagram - je organizován v závislosti na čase o zdůrazňuje, co se děje v čase,  diagram spolupráce - popisuje kontext a uspořádání spolupracujících objektů o zdůrazňuje, co se děje v prostoru. <> :Evidence :RozhraníEvidence <> :Výstupy :RozhraníVýstupy :Správce 9 Ukázka diagramu spolupráce: Popis zprávy zahrnuje:  pořadové číslo zprávy,  název zprávy,  případně i parametry v závorkách (). Znázornění změny stavu objektu:  a komunikace v různých stavech objektu: Vytvoření (zrušení) objektu:  obrázek - vytvoření objektu třídy „Katalog“ <> :Zásobovač :Katalog 4: vydáno() 3: doplněno() 5:katalog() 1: vydat ze skladu() 2: doplnit zásoby() objednávka zboží aktér aktivace :Referent odbytu :Skladník:Zásobovač :Referent odbytu [konzultace se zákazníkem] :Referent odbytu [zpracování objednávky] :Referent odbytu [vystavení požadavku pro sklad] 10 Větvení zpráv a cyklus (opakované zasílání zprávy): Cyklus: Hromadné zaslání zprávy více objektům:  postupně (sekvenčně),  10: * vyzkoušet() .... defaultně znamená sekvenční zpracování zpráv.  najednou (paralelně),  jiný operátor paralelismu zpráv – 10: *// odevzdat úkol(). Vrácení návratové hodnoty:  obrázek - vrácení hodnoty do proměnné "celkem" :Pokladna [vstup>=cena] 2.2: vydat(X,Y) [vstup Diagram aktivit --> Diagram interakcí (sekvence, spolupráce) --> Diagram přehledu interakcí [konec] Přihlášení ZjištěníMožností ZrušeníPřednášky NajítPřednášku PřidáníPřednášky :SprávcePřednášek Kvestor přidat() výskyt interakce vložená interakce [najít][přidat] [zrušit] [opakovat] 14 4. Diagram časování (Timing Diagram) Diagram časování (Timing Diagram):  znázorňuje průchod objektu jednotlivými stavy v čase,  interakce objektu v čase - s událostmi, s jinými objekty,  časový údaj je určující pro přechody mezi stavy (význam časových oken),  každá událost musí proběhnout v přesně stanoveném časovém okně,  použití – pro systémy pracující v reálném čase. Diagram časování - „Chování sirény“:  (podle Arlow, Neustadt: UML2 a unifikovaný proces vývoje aplikací) Poznámka k obrázku:  siréna je v klidu,  po události „vetřelec“ zapne „bezpečnostní poplach“ v trvání 15 min.,  pak na 15 min. vypne a znovu zapne (přerušovaný tón),  výskyt ohně má vyšší prioritu - siréna zapne „požární poplach“. 100 20 30 40 50 60 min. :Siréna Požární poplach Bezpečnostní poplach Klid (vypnuto) vetřelec vetřelec oheň {t<=15} {t=15} Stavy Události Čas 15 Diagram časování - kompaktní forma:  (podle Arlow, Neustadt: UML2 a unifikovaný proces vývoje aplikací) Diagram časování a sekvenční diagram:  DČ lze použít ve variantě - jako speciální případ diagramu sekvencí,  časová osa – vodorovně, osa spolupracujících objektů – svisle,  zdůrazňuje časově-stavovou charakteristiku spolupráce objektů. Spolupráce objektů v čase zachycená Timing diagramem:  varianta 1 :Siréna Klid Bezp. poplach Klid Bezp. poplach Požární poplach {t<=15} {t=15} Stavy :Motor :Rameno :Slot vypnutý nízké ot. vysoké ot. dolní poloha horní poloha zavřený otevřený střední poloha 0 1 2 3 n.... checkOt() otevřeno() aktivuj() aktivuj() up() down() 16  varianta 2 checkOt() otevřeno() aktivuj() aktivuj() up() down() :Motor :Rameno :Slot 0 1 2 3 n.... vypnutý nízké-ot vysoké-ot nízké-ot dolní střední horní dolní zavřený otevřený zav.