16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 1 UML (3) dynamické modely, diagramy interakcí © 2008 Radek Ošlejšek FI MU, Brno oslejsek@fi.muni.cz http://www.fi.muni.cz/~oslejsek/PA103 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 2 Stavový diagram (State Transition Diagram) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 3 Stavové diagramy State Transition Diagram – STD Stavový diagram reprezentuje stavový automat, který je grafem stavů a přechodů a popisuje odezvu objektu dané třídy na přijetí vnějšího stimulu. ● jeden diagram pro každou třídu vykazující zvláštní (důležité) chování ● zpráva je stimul odpovídající události na kterou má objekt reagovat ● objekt reaguje změnou svého stavu a/nebo provedením operace – objekt může reagovat na stejnou zprávu různě v závislosti na stavu ● stavový diagram reprezentuje šablonu pro všechny objekty třídy 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 4 STD: notace idle active DialTone do/play dial tone Timeout do/play message Dialing Connecting Invalid do/play message dial digit[incomplete] after (15 sec.) dial digit (n) after (15 sec). dial digit (n)[invalid] dial digit (n)[valid]/connect caller hangs up/disconnect lift receiver/get dial tone startstart stavstav přechodpřechod strážstráž přechod: událost [stráž] / akcepřechod: událost [stráž] / akce vnitřní aktivity stavuvnitřní aktivity stavu 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 5 STD: přechody • Notace: událost (seznam_argumentů) [stráž] / akce_výraz ^ vysílací_doložky • Událost – vnější stimul, který může vést ke změně stavu – libovolné jméno, kromě entry, exit a do – Př: stisknuté tlačítko (n) • Stráž (nepovinná) – podmínka je platná v určitém časovém rozmezí a tudíž není stimulem – booleovský výraz používající parametry spouštěcí události a atributy, propojení nebo stavy objektu, kterému patří stavový diagram, nebo objektu, který je dosažitelný (pomocí propojení) – Př. špatně: teplota > 100 – Př. správně: signál z čidla (teplota) [teplota > 100] • Akce_výraz (nepovinná) – reakce na událost – atomická nepřerušitelná operace, operace jsou prováděny sekvenčně – mohou přiřazovat hodnoty atributům a spojením • Vysílací_doložka (nepovinná) – Př: cílový-výraz . jméno-operace-nebo-signálu ( seznam-argumentů ) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 6 STD: příklady přechodů Příklad komplexního přechodu mezi stavy: right-mouse-down(location) [location in window] / object := pick-object(location) ^ object.highlight() Příklady událostí: ● objekt přijme volání operace (CallEvent) Př: jméno-operace (seznam parametrů), tj. startAutopilot(normal) ● explicitní signál od jednoho objektu nebo systému k jinému (SignalEvent); signály jsou asynchronní, vznikají, vznikají a zanikají, mají parametry a hierarchie dědičnosti => jsou modelovány jako třídy se stereotypem <> Př: jméno-třídy (seznam parametrů), tj. Collision(5.3) ● vypršení stanovené doby od výskytu jiné události (TimeEvent) Př: after (2 seconds), at (11:49PM) ● podmínka je splněna (ChangeEvent) Př: when (altitude < 1000) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 7 STD: Vnitřní události stavu 1) Vyvolání vnořeného stavového automatu (událost do): ● do / jméno_vnořeného_stavového_automatu (seznam argumentů) ● vyvolání stavového automatu zakresleného v jiném diagramu ==> jeden ze způsobů rozdělení diagramu ● ostatní aktivity považujte za stavové automaty „bez diagramu“ 2) Vstupní a výstupní akce (událost entry a exit): ● alternativa k zobrazování akcí v přechodech ● používá se pokud všechny přechody z/do stavu vykonávají stejnou akci ● nepoužívat na úrovni analýzy, ale až v návrhu 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 8 STD: Vnitřní události stavu (II) 3) Ostatní vnitřní události: ● události, které nastanou v daném stavu a ponechávají původní stavponechávají původní stav ● alternativa k externí akci na lokálním přechodu ● Př: když nastane událost ‘help’, je provedena akce ‘display help’: rozdíl mezi těmito diagramy? help / display help 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 9 STD: Vnitřní události stavu (III) 3) Ostatní vnitřní události: ● události, které nastanou v daném stavu a ponechávají původní stavponechávají původní stav ● alternativa k externí akci na lokálním přechodu ● Př: když nastane událost ‘help’, je provedena akce ‘display help’: rozdíl mezi těmito diagramy? help / display help • externí akce opouští stav a znovu do něj vstupuje => spustí se enty a exit akce • entry, exit a interní akce často vedou na privátní operace dané třídy, externí akce často vedou na veřejné operace 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 10 STD: Pořadí vykonávání akcí Pořadí vykonávání akcí: 1. akce vstupních přechodů 2. entry akce 3. Vnitřní akce a do (vnořené STD) 4. exit akce 5. akce výstupních přechodů 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 11 STD: vnořené stavy = generalizace • Podstavy dědí všechny přechody nadstavů, mohou je ale předefinovat • Použití generalizace je velmi vhodný postup pro zpřehlednění složitých STD Neutrál Zpátečka Dopředu První Druhý Třetí D U D U R N N F tento přechod se dědítento přechod se dědí nadstavnadstav podstavpodstav start dopředustart dopředu 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 12 STD: vnořené stavy (or-vztah) ● stav ‘Vytáčení’ je rozložen s použitím or-vztahu na vzájemně výlučné dílčí stavy ● počáteční stav - koncový stav během ‘Vytáčení’ ● aktivity dány pomocí vstupní a výstupní akce ● události mohou být „metodami“ určitých tříd ● co popisuje stavový diagram ? metodu, třídu, …? Dialing Start entry/start dial tone exit/stop dial tone PartialDial entry/number.append(n) digit(n) digit(n) [number.isValid] 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 13 STD: vnořené stavy (and-vztah) ● stav ‘Incomplete’ je rozložen s použitím and-vztahu na souběžné dílčí stavy ● paralelní stavy uvnitř jedné třídy => třída má více zodpovědností => je dobré třídu přezkoumat Passed Failed Incomplete Lab1 Lab2 Term Project Final Test fail pass project done lab donelab done 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 14 STD: komplexní přechody ● komplexní přechody: všechny události před závorou musí nastat, než dojde k přechodu do stavů za závorou ● dědění přechodů: podstavy E a F dědí přechod s událostí 's', podstav E tento zděděný přechod navíc předefinovává ● indikátor historie: A2 je vybráno poprvé, později po resume následuje přechod do stavu, který byl aktivní předtím, než došlo k přerušení 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 15 Interakce ve stavových diagramech ● čárkovaná šipka označuje vysílací-doložku (send- clause) ● obdélníky označují objekt/subsystém, k němuž tento stav přináleží 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 16 STD: příklad idle active DialTone do/play dial tone Timeout do/play message Dialing Connecting Busy do/play busy tone Invalid do/play message Ringing do/play ringing tone TalkingPinned lift receiver/get dial tone caller hangs up/disconnect after(15 sec.) after(15 sec.) dial digit (n) dial digit[incomplete] dial digit (n)[valid]/connect dial digit (n)[invalid] connected busy callee answers callee hangs up callee answers/enable speach 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 17 Proč vytváříme STD • Pochopení posloupnosti chování objektu v průběhu času • Vyjasňuje závislost chování na stavu • Odhaluje skryté atributy • Pomáhá rozpoznat chybějící a skryté operace • Definuje sekvence operací a zpráv 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 18 STD: kontrola konzistence • Kontrola konzistence STD – Každý stav musí mít předchůdce (kromě iniciálního stavu) – Stavy bez následníka (kromě koncového stavu) jsou podezřelé – Projděte efekty vstupních událostí systému a zkontrolujte soudržnost – Ověřte, že stejná událost na různých STD je modelována konzistentně • Konzistence mezi STD a diagramy tříd – Vyskytují se všechny aktivity a akce jako operace na diagramu tříd? – Podporuje diagram tříd plně stavové diagramy? • existují atributy pro modelované stavy? • existují atributy pro vyhodnocení podmínek? • jsou pro všechny přechodové akce veřejné operace? • jsou pro entry, exit a interní akce privátní operace? 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 19 Diagram aktivit (Activity Diagram) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 20 Diagramy aktivit Angl.: Activity Diagram, AD Sémantika založená na Petriho sítích. Používají se pro: ● popis akcí případu užití ● modelování toků mezi případy užití ● popis algoritmických aspektů operací nad objektem ● popis toku dat systémem ● modelování obchodních procesů (business processes) ● ... 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 21 AD: Motivace Find Beverage Put Coffee in Filter Add Water to Reservoir Get Cups Put Filter in Machine Turn on Machine Brew coffee Pour Coffee Get cans of cola Drink [no coffee] [found coffee] [no cola] [found cola] ^coffeePot.turnOn light goes out synchronizačnísynchronizační závorazávora strážstráž aktivitaaktivita rozhodovací aktivitarozhodovací aktivita 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 22 AD: Notace začátek aktivity konec aktivity akční uzel – krok v aktivitě kontrolní tok – přechod mezi akcemi podmínka přechodu Ověření platnosti požadavku [platný požadavek] 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 23 AD: přechody a fork/join • Akční uzly čekají na všechny vstupy a pak pokračují na všech výstupech současně • => Implicitně se AD chová paralelně, tj. jako s fork/join: fork join = akční uzel 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 24 AD: Rozhodovací a slučovací uzly • Rozhodovací uzel pokračuje právě jednou cestou – stráže musí být vzájemně výlučné a úplné • Slučovací uzel pokračuje při libovolném vstupu (OR) • Ekvivalentní diagramy: nedoporučuje se 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 25 AD: Slučovací uzel • Smysl použití slučovacího uzlu: – akční uzly čekají na všechny vstupy! 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 26 AD: segmenty (plavecké dráhy) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 27 AD: Tok dat 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 28 AD: Signály Příjem signálu a vyslání signálu Signál není nic jiného, než instance třídy (stereotyp <>) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 29 AD: srovnání se STD V čem jsou společné: ● Diagramy aktivit jsou zvláštní případ stavových diagramů, kde jsou stavy vyjádřeny jako akce a přechody jsou volány automaticky po ukončení akce V čem jsou rozdílné: ● Diagramy aktivit se používají v situacích, kdy všechny nebo většina událostí reprezentuje dokončení vnitřně generovaných akcí ● Diagramy aktivit se používají pro modelování obchodních procesů, jichž se účastní několik objektů ● Stavové diagramy se používají v situacích, kdy nastávají asynchronní události ● Stavové diagramy se používají k modelování životního cyklu jedné třídy 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 30 Diagramy interakcí (Interaction Diagrams) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 31 Diagramy interakcí • Diagramy interakcí: – Sekvenční diagram • ukazuje interakce uspořádané v časové posloupnosti • ukazuje explicitní sekvenci zpráv • vhodné pro RT specifikace a pro složitější scénáře – Diagram spolupráce • ukazuje interakce organizované podle interagujících objektů • časová dimenze není znázorněna – Diagram časování • zaměřené na modelování časových omezení a závislostí • novinka od UML 2.0 – Interaction Overview diagram • kombinuje sekvenční diagramy a diagramy aktivit • Novinka od UML 2.0 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 32 Sekvenční diagram (Sequence Diagram) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 33 Sekvenční diagram: princip caller:Phone exchange:PBX receiver:Phone lift receiver dial tone dial digit .... route phone rings answer phone stop ringingstop tone ringing tone zpráva životní čára účastník (objekt) časčas komunikace objektůkomunikace objektů ● Angl: Sequence Diagram – SD ● UML 2 přináší dost změn oproti UML 1 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 34 SD: notace Sekvenční diagram reprezentuje interakci, kterou představuje množina zpráv vyměněných mezi objekty během spolupráce pro splnění požadované operace nebo získání výsledku. ob1:C1 doit(z) doit(m) bar(x) foo(x) op() ob2:C2 ob4:C4 ob3:C3 iterate() instanciaceinstanciace destrukcedestrukce role (aktérů, objektůrole (aktérů, objektů nebo jejich skupin)nebo jejich skupin) čáry životačáry života rozsah řízenírozsah řízení (trvání akce)(trvání akce) rekurzerekurze 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 35 SD: zprávy Zpráva nese informaci a spouští akci v jiném (nebo stejném) objektu, je reprezentována pomocí šipky volání. jméno zprávy: signatura volané metody (parametry a návratové hodnoty mohou být vynechány) nebo jméno zaslaného signálu/události synchronní volání (vyvolání procedury): asynchronní volání návrat z volané procedury (může být vynechán v procedurálním toku řízení): asynchronní zpráva (signál): Další symboly: viz knihy o UML 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 36 SD: účastníci interakce :Firma FirmaFirma:Firma SGI:Firma anonymní objektanonymní objekt (třídy/role Firma)(třídy/role Firma) kolekce objektůkolekce objektů (třídy Firma)(třídy Firma) konrétní objektkonrétní objekt (třídy Firma)(třídy Firma) SGI konrétní objekt bez třídykonrétní objekt bez třídy JE NUTNÉ DOPLNIT!JE NUTNÉ DOPLNIT! 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 37 SD: provázání interakcí • Zahájení interakce – aktérem z diagramu případů užití – „nalezenou zprávou“ (found message) • Odkaz na jinou interakci – „ztracenou zprávou“ (lost message) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 38 SD: vytváření a rušení účastníků • Účastníci interakce většinou „žijí“ v průběhu celé interakce – nestaráme se o jejich vytvoření/rušení – jednoduše předpokládáme, že existují • Explicitní vytvoření účastníka během komunikace – => instanciace objektu – komunikační šipka vede přímo do objektu, ne do jeho čáry života • Explicitní zrušení – => destrukce objektu – křížek na konci čáry života – samozničení vs. zničení jiným objektem 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 39 SD: vytváření a rušení účastníků (II) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 40 SD: Strukturní dělení • Znázornění souběžných sekvencí, cyklických sekvencí apod. – vyznačíme oblasti a pojmenujeme operátor pro danou oblast – operátor se aplikuje na všechny čáry života, které do něj vstupují název operátorunázev operátoru oblast operátoruoblast operátoru přeskočení oblastipřeskočení oblasti vstup do oblasti operátoruvstup do oblasti operátoru 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 41 SD: Nejčastější operátory interakcí • podmíněné spuštění (optional execution), opt – operace uvnitř bloku jsou spuštěny jen pokud je splněna podmínka stráže. • volitelné spuštění (conditional execution), alt – blok je rozdělen na více horizontálních podoblastí reprezentujících jednotlivé větve podmínky; každá podoblast má vlastní stráž • paralelní spuštění (parallel execution), par – blok je rozdělen na více horizontálních podoblastí; každá podoblast reprezentuje paralelní spuštění • cyklické spuštění (loop execution), loop – blok se neustále spouští dokola, pokud je stráž vyhodnocena jako true – čísla za loop mohou udávat minimální a maximální počet cyklů • odkaz na jiný diagram (reference), ref – blok obsahuje pouze název aktivity, která je popsaná separátním diagramem (diagram aktivit, stavový diagram, další sekvenční diagram apod.) • negace (negative), neg – fragment ukazuje chybnou interakci • kritická sekce (critical region), region – fragment může mít v daném okamžiku spuštěné pouze jedno vlákno 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 42 SD: Strukturní dělení - příklad 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 43 SD: Stav objektu 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 44 OSD: kompozice a instanciace A B Akter ob2:A ob1:B Akter ob1:B Akter ob2:A ob1:B Akter ob2:A ob1:B B může instanciovat pouze AB může instanciovat pouze A život B by neměl přesáhnout životnost Aživot B by neměl přesáhnout životnost A 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 45 OSD: distribuce “inteligence” objektů Object2Object1 Object4Object3Object0 Object1 Object2 Object3 Object4GodObject vidlička:vidlička: GodObject musíGodObject musí znát mnoho rozhraní aznát mnoho rozhraní a je na nich závislý;je na nich závislý; koncentruje přílišnoukoncentruje přílišnou inteligenci, je složitý.inteligenci, je složitý. schody:schody: inteligence jeinteligence je rovnoměrnějirovnoměrněji rozprostřena mezirozprostřena mezi objekty, objekty jsouobjekty, objekty jsou jednoduššíjednodušší 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 46 Komunikační diagram (Communication Diagram) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 47 Komunikační Diagramy Dříve (UML < 2.0): Object Collaboration Diagram Komunikační diagram ukazuje interakci organizovanou podle interagujících objektů, a jejich propojení mezi sebou. ● ukazuje vztahy mezi rolemi objektů ● časová dimenze není ukázána Bez časové osy ⇒ sekvenční čísla jsou použita pro uspořádání zpráv. ● procedurální tok řízení: vnořené číslování podle vnořeného volání ● neprocedurální tok: nevnořené číslování, které indikuje pořadí zpráv a synchronizaci mezi vlákny, detaily viz knihy o UML 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 48 Princip : Order Entry Window : Order Sun line : Order Line : Delivery Item Sun stock : Stock Item : Reorder Item 1: prepare() 2* : prepare() 7: [hasStock] new 3: hasStock := check() 4: [hasStock] remove() 6: new 5 : needToReOrder() objektobjekt zprávazpráva pořadové číslopořadové číslo volání sebe samavolání sebe sama směr volánísměr volání asociaceasociace 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 49 Zprávy • Číslo sekvence – lexikografické číslování – písmena označují paralelní zprávy – * indikuje iteraci • Podmínka, cykly – uvnitř [] • Jména návratových hodnot – jsou uvedena před := 2.1b: *[i:=1..akt_rok] vsechny_predmety := vyhledej(i) // poznamka • Jména návratových hodnot – jsou uvedena před := • Jméno zprávy – může být událost nebo operace • Argumenty – v kulatých závorkách • Poznámky – za dvěma lomítky 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 50 Příklad <> :Controller :Window wire:Wire :Line {new} left:Bead right:Bead 1.1.1.4.1: add(self) 1.1.1.4: display(window) 1.1.1.3: create(r0,r1) 1.1.1.2: r1:=position()1.1.1.1: r0:=position() 1.1.1:*[i:=1..n] drawSegment(i) 1.1: displayPositions(window) 1: redisplay() 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 51 Diagram časování (Timing Diagram) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 52 Diagramy časování • Angl.: Timing Diagrams • Modelují časová omezení mezi změnami stavů různých objektů objektobjekt stavstav stavstav událostudálost změna stavuzměna stavu změna stavuzměna stavu dvě notacedvě notace časové omezeníčasové omezení 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 53 Diagram přehledu interakcí (Interaction Overview Diagram) 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 54 Diagramy přehledu interakcí • Anlg.: Interaction Overview Diagram • Kombinuje sekvenční diagramy a digramy aktivit 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 55 Použití interakčních diagramů Interakční diagramy jsou používány k mnoha účelům, např. ● dokumentace toku zpráv uvnitř případů užití ● nalezení tříd a operací ● dokumentace opakovaně se objevujících návrhových vzorů ● vysvětlení a předvedení určitých operací ● ukázání všech spolupracovníků specifické třídy ● dokumentace rozhodnutí o architektuře ● rozdělení do balíků na základě závislostí na ostatních třídách ● směry asociací ● ... ● ukázání různých rolí objektu Interakční diagramy mohou být na různých úrovních granularity 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 56 Shrnutí UML diagramů • Diagram – Structure Diagram • Class DiagramClass Diagram • Component Diagram • Composite Structure Diagram • Deployment Diagram • Object Diagram • Package Diagram – Behavior Diagram • Activity Diagram • Use Case DiagramUse Case Diagram • State Machine Diagram • Interaction Diagram – Sequence DiagramSequence Diagram – Communication Diagram – Interaction Overview Diagram – Timing Diagram 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 57 Shrnutí UML diagramů (II) Verze UML Diagram Účel UML 1 Procedurální a paralelní chování UML 1 Třídy, vlastnosti a vztahy Interakce mezi objekty; zdůrazňuje vazby mezi objekty UML 1 Struktura a propojení komponent UML 2 UML 1 Rozmístění artefaktů na uzly UML 2 Kombinace sekvenční a aktivity diagramů UML 1 (neoficiálně) Příklad sestavy instancí tříd UML 1 (neoficiálně) Hierarchická struktura pro kompilaci UML 1 Interakce mezi objekty; zdůrazňuje posloupnost zpráv UML 1 Jak události mění objekt v čase UML 2 Interakce mezi objekty; zdůrazňuje časová omezení UML 1 Jak uživatelé interagují se systémem Activity Class UML 1 (d. spolupráce) Communication Component Composite structure Běhová (runtime) dekompozice tříd Deployment Interaction overview Object Package Sequence State machine Timing Use case 16. 3. 2009 PA103: OO metody návrhu IS © R. Ošlejšek, FI MU 58 Shrnutí a hodnocení UML ● UML je efektivní při modelování velkých a složitých systémů ● Základy se naučí běžní vývojáři snadno, poskytuje také pokročilé rysy pro expertní analytiky, návrháře a architekty ● Může specifikovat systém implementačně nezávislým způsobem ● 10-20% modelovacích konstrukcí se používá 80-90% doby ● Strukturální modelování specifikuje kostru, kterou lze zpřesňovat a rozšiřovat dodatečnými strukturami a chováním ● Modelování případů užití specifikuje funkční požadavky na systém objektově-orientovaným způsobem ● Modelování chování zachycuje interakce mezi objekty, stavové přechody mezi objekty a zvýrazňuje tok řízení.