Jan Smolík UML
UML Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux Zdroj: Wikipedia
Unified modelling language Neproprietární jazyk pro objektové modelování „pro obecné účely“ Definovaný Object Management Group (OMG) Nejedná se o metodiku ani o metodu, ale o soustavu modelovacích prvků použitelných v různých metodách
Historie Rational Grady Booch (Booch Method) 1994 přišel James Rumbaugh (Object Oriented Analysis) 1995 přišel Ivar Jakobson (Object Oriented Software Engineering) Kompromisní řešení mezi jejich objektovými metodami Jazyk adaptován OMG jako návrh UML Partners (úsilí vedeno touto trojicí)
Čtyřvrstevná hierarchie metamodelů Meta-metamodel (M3) (MOF) Metamodel (M2) (UML) Instance meta-metamodelu Model (M1) (váš model v UML) Instance metamodelu M0 (konkrétní instance tříd ve vašem modelu) Runtimová instance modelu
Abstraktní vs. konkrétní syntaxe Abstraktní syntaxe Definuje metatřídy, jejich vztahy a omezení Konkrétní syntaxe Definuje konkrétní notaci
Definice UML Vytvořena Object Management Group (OMG) Zahrnuje dvě části Infrastruktura Core Superstruktura Vlastní popis UML
Role společného Core
Meta-Object Facility (MOF) Standard pro popis metamodelů (jazyk M3) Založen na UML:Core Je v něm popsáno UML Umožňuje popis abstraktní syntaxe (nikoliv konkrétní)
Common Warehouse Metamodel (CWM) Modeluje metadata v datových skladech Nerelační prostředí Multidimensionální prostředí Kromě popisu dat umožňuje zaznamenat odkud data přišla a jak jsou vytvářena
Profily Umožňují rozšíření UML Nelze odstranit existující omezení, lze jen přidat nová
4 vrstvy metamodelů (př.)
Struktura Core Abstraktní třídy (element) Konkrétní třídy pro znovupoužití (třída, asociace) Hlavně třídy pro MOF
Hierarchie sémantiky UML
Diagramy UML
Struktura – třídy Elementy – uzly Třída Rozhraní Instance Package (balíček) – slouží pro seskupení elementů
Struktura – třídy Elementy – cesty Agregace Kompozice (agregované elementy nedílnou součástí) Asociace Závislost (element potřebuje jiný ke své existenci) Specializace Realizace (od třídy k instanci) Realizace rozhraní
Struktura – třídy Elementy – cesty Užití Merge package Import package
Omezení (constraint) XOR Omezení atributu Možno volným textem nebo pomocí jazyka OCL Omezení jako poznámka
Asociace Binární a ternární asociace
Varianty diagramů struktury tříd Nejsou jasně definované hranice V každé variantě lze užívat všechny elementy Diagram tříd asociace, agregace, třída, kompozice, závislost, generalizace, rozhraní, realizace, realizace rozhraní Diagram objektů Instance, link (= asociace instancí) Diagram pekidžů Pekidž, závislost, import a merge pekidže
Diagram pekidžů – příklad
Diagram instancí – příklad
Diagram komponent – notace Komponenta Komponenta s poskytovaným rozhraním Komponenta vyžadující rozhraní Propojení rozhraní
Diagram komponent Jeden ze strukturních diagramů – možno používat všechny strukturní prvky Obvykle Komponenta, rozhraní, třída, realizace
Diagram komponent – příklad
Diagram kompozitních struktur – notace Part (část) – element obsažený ve spolupráci Colaboration (spolupráce) –znázorňuje strukturu spolupracujících elementů Konektor – spojuje jednotlivé části kolaborace
Diagram kompozitních struktur – příklad
Composite structure
Deployment diagram – notace Artifakt – kus sofware Node – něco na čem software běží Device – fyzické zařízení Zde znázorněno s na něm běžícím prostředím J2EE
Deployment diagram
Souvislost strukturních pekidžů UML
UML – modely chování
Diagramy popisující chování
Souvislosti pekidžů popisujících chování
Use Case diagram Diagram užití Jediný diagram zobazující funkční strukturu Často kritizován jako slabina UML
Use Case Diagram Zdroj: Wikipedia
Use Case Diagram Include – případ užití může zahrnovat i další (například opakující se ve více případech) Extend Realizace generalizace a specializace v use-case modelu Užití Volitelné chování Chování za specifických podmínek či podle volby uživatele Příklad: Správa zákazníků – nový, editace, zrušení
Use case Případy užití jsou detailnějí popsány ve slovních scénářích Možnosti Číslované body Čistě slovní popis Pseudokód Zaměřit na problém ne programování! Základ pro testovací scénáře
Use Case - problémy Spíš menší počet případů užití, jinak nepřehledné Většina informací ve slovním popisu
Stavový diagram – elementy Přechod mezi stavy popsán jako Událost / Činnost (metoda)
Stavový diagram Obecně pro popis přechodu mezi stavy objektu V této metodice k popisu životních cyklů tříd Přechod mezi stavy je vyvolán událostí, která spustí nějakou činnost (metodu třídy) Každá třída má počáteční stav a jeden nebo více koncových
Příklad
Activity partition – příklad
Activity partition -- příklad
Diagramy interakce Sequence diagram Communication diagram Interaction overview diagram Timing diagram Ukazují interakce a komunikaci mezi objekty Všechny tyto diagramy sdílejí metadřídy (stejně jako je tomu u diagramů popisujících strukturu)
Sekvenční diagram Asynchronní zpráva Životní dráha objektu Návratová hodnota Rámeček interakce Název interakce Ztracená zpráva (odeslána, ale není jasné, kdo ji přijme) Nalezená zpráva (odesílatel neznámý, vyšetřování pokračuje) Execution occurance Překrývající se execution occurance
Oddělovač variant Combined Fragment Alt – Alternatives – výběr z několika možností postupů Opt – Option – operace buď provedena nebo ne Par -- Parallel – paralelní zpracování Seq, strict – sekvenčí zpracování Neg – negative – tato cesta není možná Critical -- Critical section – nemůžou běžet dvě instance najednou Loop – cyklus Break Assert -- assertion
Combined fragment – příklad
Interaction Use Představuje instanci interakce Vykonání konkrétní interakce s naplněnými atributy „Sbalený tvar“ interakce
Příklad
Communication diagram Pro jednodušší případy s centrální komunikací Nelze používat strukturovací nástroje jako combined fragment nebo interaction use Výhodou je koncentrovanost Nevýhodou je jistá statičnost popisu Koncepty jsou sdílené s diagramem interakcí
Grafické prvky Interakce – stejná jako v diagramu interakcí Lifeline – nemá čáru, ale jde o stejný koncept Zpráva – včetně pořadového čísla a názvu
Interaction overview Spojuje jednotlivé interakce pomocí prvků aktivity diagramů Dokáže logicky zpřehlednit složité interakce Velmi rychle nabývá na objemu Užívají se prvky aktivity diagramu, interakce a užití interakce
Interaction overview
Interaction overview Některé CASE nástroje interakce ukazují ve sbalené podobě, kterou je možno rozkliknout
Timing diagram
Timing diagram