UML - Unified Modelling Language 21.11.2011 © Jiří Sochor, Jaroslav Ráček 1 Historický vývoj 21.11.2011 © Jiří Sochor, Jaroslav Ráček 2 Co je UML • UML - Unified Modelling LanguageUML Unified Modelling Language • UML kombinuje vše nejlepší z – konceptů datového modelování (entitně-relační diagramy)p ( g y) – modelování výrobních procesů (toky práce) – modelování objektů – modelování komponent • UML je standardní jazyk pro zobrazení, specifikaci, konstrukci a dokumentaci artefaktů systémů s převážněkonstrukci a dokumentaci artefaktů systémů s převážně softwarovou charakteristikou • Může být použit při všech procesech životního cyklu vývoje aý p p p y ý j pro různé technologie implementace. 21.11.2011 © Jiří Sochor, Jaroslav Ráček 3 Kořeny UML 21.11.2011 © Jiří Sochor, Jaroslav Ráček 4 Historie UML 21.11.2011 © Jiří Sochor, Jaroslav Ráček 5 Koncepty UML UML umožňuje (mimo jiné):UML umožňuje (mimo jiné): – zobrazit hranice systému & jeho hlavních funkcí pomocí případů užití (use cases) a účastníků (actors) – ilustrovat realizaci případů užití pomocí diagramů interakcí – reprezentovat statickou strukturu systému pomocí diagramů řídtříd – modelovat chování objektů pomocí stavově-přechodových digramůdigramů – odhalit fyzickou implementační architekturu pomocí diagramů zapojení komponentg p j p – rozšířit funkcionalitu pomocí stereotypů 21.11.2011 © Jiří Sochor, Jaroslav Ráček 6 Příklad: „Univerzita“ - zadání Univerzita chce registrační systém převést na počítačeUniverzita chce registrační systém převést na počítače - proděkan pro studijní plány stanoví kurikulum pro semestr. Jeden kurz může být nabídnut vícekrát jako „Nabídnutý kurz“.ý j „ ý - studenti volí 4 primární kurzy a 2 volitelné kurzy - ihned poté, co se student zapíše do semestru, je účetní systém informován,p , p , j y , že studentovi lze vystavit účet za semestr - studenti mohou používat systém pro přidání/odhlášení kurzů po určitou dobu po zápisudobu po zápisu. - učitelé používají systém pro získání seznamu uchazečů zapsaných zapsaných do jejich kurzů - uživatelé registračního systému mají přidělené heslo, které je použito pro validaci při přihlášení do systému. 21.11.2011 © Jiří Sochor, Jaroslav Ráček 7 Příklad: „Univerzita“ - účastníci Účastník (Actor) je někdo nebo něco jež musí spolupracovatÚčastník (Actor) je někdo nebo něco, jež musí spolupracovat s (budoucím) vyvíjeným systémem Proděkan Profesor Student Úč t í téÚčetní systém 21.11.2011 © Jiří Sochor, Jaroslav Ráček 8 Příklad: „Univerzita“ – případ užití Případ užití je vzorem (předlohou) chování, které systém vykazuje Každý případ užití je posloupnost souvisejících transakcí prováděných účastníkem a systémem během jejich dialogu. Účastníky zkoumáme, abychom určili jejich potřeby proděkan - údržba kurikula profesor - žádá rozpis (seznam studentů,...) student - údržba vlastního rozvrhustudent údržba vlastního rozvrhu účetní systém - získání podkladů pro účet po zápisu Udržuj rozvrhUdržuj kurikulum Žádej rozpis kurzu 21.11.2011 © Jiří Sochor, Jaroslav Ráček 9 Dokumentace případů užití Pro každý případ užití je vytvořen dokument obsahující toký p p j y j událostí. Je napsán z pohledu účastníka. D t il kt é té í k t t úč t ík i ři ádě íDetaily, které systém musí poskytnout účastníkovi při provádění případu použití Typické obsahy – Začátek a konec případu použití – Normální tok událostí – Alternativní tok událostí – Výjimečný tok událostí 21.11.2011 © Jiří Sochor, Jaroslav Ráček 10 Příklad: „Univerzita“ – tok událostí při údržbě kurikula • Tento případ užití začíná v okamžiku, kdy se proděkan přihlásí doTento případ užití začíná v okamžiku, kdy se proděkan přihlásí do Registračního systému a zadá heslo. Systém ověří platnost hesla (E1) a vyzve proděkana k výběru stávajícího nebo budoucího semestru (E2). Proděkan zadá požadovaný semestr. Systém vyzve k volběp ý y y požadované činnosti: ADD, DELETE, REVIEW, nebo QUIT. • Pokud byla zvolena činnost ADD, pak se provede dílčí tok S-1: Přidej kurz.j • Pokud byla zvolena činnost DELETE, pak se provede dílčí tok S-2: Zruš kurz. • Pokud byla zvolena činnost REVIEW pak se provede dílčí tok S 3:• Pokud byla zvolena činnost REVIEW, pak se provede dílčí tok S-3: Prohlédni kurikulum. • Pokud byla zvolena činnost QUIT, případ užití končí. • ... 21.11.2011 © Jiří Sochor, Jaroslav Ráček 11 Příklad: „Univerzita“ – diagram případu užití Diagramy případů užití jsou tvořeny, aby znázornily vztahyDiagramy případů užití jsou tvořeny, aby znázornily vztahy mezi účastníky a případy užití. IS U i it profesorŽádej rozpis kurzu IS Univerzity student profesorj p Udržuj rozvrh proděkanUdržuj kurikulumúčetní systém 21.11.2011 © Jiří Sochor, Jaroslav Ráček 12 Příklad: „Univerzita“ – vztahy „Include“ a „Extend“ Při tvorbě dokumentace případů užití mohou býtp p ý nalezeny další vztahy – vztah „Include“ ukazuje chování, které je společnév ta „ c ude u a uje c ová , te é je spo eč é dvěma a více případům užití – vztah „Extend“ ukazuje volitelné chováníj Zápis do kurzů <> Validace přihlášení <> Udržuj kurikulum 21.11.2011 © Jiří Sochor, Jaroslav Ráček 13 Realizace případů užití • Diagram případů užití předkládá vnější pohled na• Diagram případů užití předkládá vnější pohled na systém. I kč í di i jí j k j ří d• Interakční diagramy popisují, jak jsou případy užití realizovány jako interakce mezi skupinami bj ktůobjektů. • Dva typy interakčních diagramů: – diagramy posloupností (sequence d.) – diagramy komunikace (communication d.) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 14 Diagram posloupností Diagram posloupností ukazuje interakci mezi objekty uspořádanou do časové posloupnosti. :Student Formulář Registrace Správce Registrací PB007 1: vyplň PB007/04 yp 2: odešli 3: zapišKurz(Jan, P007) 4: jsi otevřen? 5: jsi otevřen? 6: zapiš(Jan) 7: zapiš (Jan)7: zapiš (Jan) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 15 Diagram komunikace (spulupráce) Diagram komunikace ukazuje interakce objektů a jejich formulářK :1 d j i f k Diagram komunikace ukazuje interakce objektů a jejich propojení mezi sebou. formulářK : FormulářKurzu 1: zadej informace o kurzu 2: zpracuj : proděkan 3: přidej kurz tentoSprávce :tentoSprávce : SprávceKurikula tento kurz : Kurz 4: nový kurz 21.11.2011 © Jiří Sochor, Jaroslav Ráček 16 Diagram tříd • Diagram tříd ukazuje existenci tříd a jejich vztahů v logickém pohledu na systém • UML modelovací prvky používané v diagramech tříd: – třídy a jejich struktura a chování – asociace, agregace, závislost a vztahy dědění, g g , y – příznaky (ukazatele) násobnosti a navigace – jména rolíj 21.11.2011 © Jiří Sochor, Jaroslav Ráček 17 Třídy Tříd j k l k bj ktů h d t kt h d ý• Třída je kolekce objektů se shodnou strukturou, shodným chováním, shodnými vztahy a shodnou sémantikou. • Třídy jsou nalezeny přezkoumáním objektů v diagramech• Třídy jsou nalezeny přezkoumáním objektů v diagramech posloupností a diagramech komunikace. Třída je zakreslena jako obdélník se třemi oddělenímij • Třídy by měly být pojmenovány s použitím slovníku předmětné oblasti. • Měly by být vytvořeny standardy pro volbu jmen. – např. všechny třídy pro jméno použijí podstatné jméno v jednotném čísle začínající velkým písmenem 21.11.2011 © Jiří Sochor, Jaroslav Ráček 18 Třídy FormulářRegistrace PlánovacíAlgoritmus SprávceRegistrací Kurz Student NabídkaKurzuProfesor NabídkaKurzu 21.11.2011 © Jiří Sochor, Jaroslav Ráček 19 Operace • Chování třídy je reprezentováno jejími operacemi. • Operace mohou být nalezeny po přezkoumání diagramů interakcí. Formulář Registrace Správce RegistracíRegistrace Registrací SprávceRegistrací 3: zapišKurz(Jan, P007) zapišKurz(student,kurz) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 20 Atributy • struktura třídy je reprezentována jejími atributy • atributy mohou být nalezeny přezkoumáním definice třídy, ž d ků blé žití l tí ř d ět épožadavků na problémy a použitím znalostí z předmětné oblasti Každá nabídka kurzu b h j NabídkaKurzu číslo obsahuje číslo, místo a čas č s o místo čas 21.11.2011 © Jiří Sochor, Jaroslav Ráček 21 Třídy FormulářRegistrace PlánovacíAlgoritmus SprávceRegistrací zapišKurz(student,kurz) Kurz název č K di ů Student jméno d í početKreditů otevři() zapišStudenta(student) vedoucí Profesor NabídkaKurzu jméno zařazení NabídkaKurzu místo otevři() zapišStudenta(student) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 22 Vztahy • Vtahy poskytují cestu pro komunikaci mezi objekty • Diagramy posloupností a/nebo komunikace zkoumáme, b h čili j ká j í i bj k í iabychom určili, jaká spojení mezi objekty musí existovat pro splnění požadovaného chování - pokud dva objekty potřebují spolu mluvit“ pak mezi nimi musí být vazbaspolu „mluvit , pak mezi nimi musí být vazba • Tři typy vztahů jsou: – AsociaceAsociace – Agregace – Závislost 21.11.2011 © Jiří Sochor, Jaroslav Ráček 23 Vztahy • Asociace je obousměrné propojení mezi třídamij p p j • Asociace se znázorňuje jako čára propojující vztažné třídy A j il ější f h j d á h i• Agregace je silnější forma vztahu, jedná se o vztah mezi celkem a jeho částmi • Agregace se znázorňuje jako čára propojující vztažné třídy, značkaAgregace se znázorňuje jako čára propojující vztažné třídy, značka diamant je umístěna u třídy, která představuje celek V t h á i l ti j l bší f t h i kli t• Vztah závislosti je slabší formou vztahu mezi klientem a poskytovatelem, kde klient nemá žádnou sémantickou znalost o poskytovatelip y • Závislost je ukázána jako čárkovaná čára se šipkou ukazující od klienta k poskytovateli 21.11.2011 © Jiří Sochor, Jaroslav Ráček 24 Nalezení vztahů Vztahy jsou odhaleny po přezkoumání diagramů interakcíVztahy jsou odhaleny po přezkoumání diagramů interakcí. – Pokud dva objekty musí „hovořit“, pak musí existovat komunikační cesta. Správce P007:Kurz Správce Registrací 3 řid jSt d t (J ) p Registrací 3: přidejStudenta(Jan) KurzKurz 21.11.2011 © Jiří Sochor, Jaroslav Ráček 25 Vztahy FormulářRegistrace PlánovacíAlgoritmus Kurz název početKreditů SprávceRegistrací zapišKurz(student,kurz) Student jméno vedoucí početKreditů otevři() zapišStudenta(student) vedoucí Profesor NabídkaKurzu jméno zařazení místo otevři() zapišStudenta(student) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 26 Násobnost a navigace Násobnost definuje, kolik objektů se účastní vztahů. - Násobnost je počet instancí jedné třídy vztažená k JEDNÉ instanci d hé tříddruhé třídy. - Pro každou asociaci a agregaci musí nalézt dvě násobnosti: pro každý konec vztahu. Ačkoliv asociace a agregace jsou implicitně obousměrné, často je vhodné omezit navigaci na jeden směr.j g j V případě omezené navigace přidaná šipka určuje směr navigace.navigace. 21.11.2011 © Jiří Sochor, Jaroslav Ráček 27 Násobnost a navigace FormulářRegistrace PlánovacíAlgoritmus 1 0..* SprávceRegistrací zapišKurz(student,kurz) Kurz název č K di ů 0..*1 Student jméno d í početKreditů otevři() zapišStudenta(student)3..10 vedoucí Profesor NabídkaKurzu 1 4 1..* jméno zařazení NabídkaKurzu místo otevři() zapišStudenta(student) 0..41 21.11.2011 © Jiří Sochor, Jaroslav Ráček 28 Dědičnost • Dědičnost je vztah mezi nadtřídou a jejími• Dědičnost je vztah mezi nadtřídou a jejími podtřídami. E i jí d ě j k lé dědič• Existují dvě cesty, jak nalézt dědičnost: – zobecnění – specializace • Společné atributy, operace a/nebo vztahy jsou ukázány na nejvyšší aplikovatelné úrovni hierarchie. 21.11.2011 © Jiří Sochor, Jaroslav Ráček 29 Dědičnost FormulářRegistrace PlánovacíAlgoritmus jméno UživatelRegistrace SprávceRegistrací zapišKurz(student,kurz) Kurz název č K di ů Student jméno d í početKreditů otevři() zapišStudenta(student) vedoucí Profesor NabídkaKurzu jméno zařazení NabídkaKurzu místo otevři() zapišStudenta(student) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 30 Stav objektu St ě ř h d ý di k j• Stavově-přechodový diagram ukazuje – životní historii dané třídy – události, které způsobují přechod z jednoho stavu do jiného k k é j ý l dk ě– akce, které jsou výsledkem změny stavu • Stavově-přechodové diagramy se tvoří pro objekty, které mají významné dynamické chování 21.11.2011 © Jiří Sochor, Jaroslav Ráček 31 Stavově-přechodový diagram I i i li Přidej studenta / Nastav počet = 0 Přidej studenta[ počet< 10 ] Inicializace Otevřen vstup: Registruj studenta výstup: inkrementuj počet do: Inicializuj kurz Nastav počet = 0 Z š Zrušen [ počet = 10 ] Zruš Zruš Uzavřen do: Dokonči kurz do: Uvědom registr. studenty Zruš 21.11.2011 © Jiří Sochor, Jaroslav Ráček 32 Fyzický svět • Diagramy komponent znázorňují uspořádání a• Diagramy komponent znázorňují uspořádání a závislosti mezi softwarovými komponentami K ůž bý• Komponenta může být – komponenta se zdrojovým kódem – komponenta běhu programu (pracovní soubor, ...) – proveditelná komponenta (dll, exe) 21.11.2011 © Jiří Sochor, Jaroslav Ráček 33 Diagram komponent Registrace.exeÚčtování.exe Účetní systém Lidé.dll Uživatel systém Kurz.dll Uživatel Kurz Kurz Nabídka Student Profesor Kurzu 21.11.2011 © Jiří Sochor, Jaroslav Ráček 34 Nasazení systému • Diagram nasazení ukazuje konfiguraci procesních prvků použitých při běhu a softwarové procesy, které jsou na ně umístěny • Diagram nasazení ukazuje rozložení komponent v podniku Registrace Databáze v podniku. Knihovna Hlavní budova Koleje 21.11.2011 © Jiří Sochor, Jaroslav Ráček 35 Modely zahrnuté v UML 21.11.2011 © Jiří Sochor, Jaroslav Ráček 36 Rozšíření UML • do UML doplnit další prvky notace pomocí stereotypů • stereotypy mohou být použity pro klasifikaci a rozšíření i í hů dědič i říd kasociací, vztahů dědičnosti, tříd a komponent • Příklady: t t tříd h i ří í tit tilit ýji k– stereotypy tříd: hranice, řízení, entita, utilita, výjimka – stereotypy dědičnosti: užívá a rozšiřuje – stereotypy komponent: subsystémstereotypy komponent: subsystém 21.11.2011 © Jiří Sochor, Jaroslav Ráček 37