UML 1
UML: Unified Modeling Language
Systém – kombinace softwaru, hardwaru, dat a uživatelů, která umožňuje řešení konkrétního problému Vývoj systémů – vytváření systémů pro klienta Vývoj probíhá na základě analýzy, které provádí analytik Výsledky analýzy využije vývojář k vývoji softwaru Software je nainstalován na potřebný hardware, je provedena implementace do konkrétních podmínek organizace a proškolení správců a uživatelů Celý proces je poměrně složitý – UML – výrazná pomoc při vyřešení tohoto procesu 2
Historie UML
Duchovní otcové UML: Grady Booch, James Rumbaugh, Ivar Jacobson Na počátku 90. let 20. stol. pracovali v různých institucích – snažili se vytvořit metodologii objektově orientované analýzy a návrhu V polovině 90. let se rozhodli pracovat společně – ve společnosti Rational Software (nyní součást IBM) Vzniklo konsorcium jazyka UML - 1997: verze 1.0, 1.1,… UML (spolu s dalšími standardy) nyní definuje Object Management Group (www.omg.org) Současná verze: 2.1.2 3
Způsoby použití UML
Kreslení konceptu – snaha zachytit podstatné části systému Kreslení detailních návrhů – používají se speciální nástroje (CASE - Computer-aided software engineering) UML jako programovací jazyk – z UML diagramů se pomocí CASE nástrojů vygeneruje přímo programový kód – vyžaduje přesné vyjadřování v UML diagramech – hovoří se o architektuře založené na modelech (Model Driven Architecture - MDA) Metamodel – UML diagramy jsou chápány jako modely – popisuje se pomocí spec. jazyka Meta-Object Facilitty (MOF) – pro výměnu modelů se používá XMI (XML Metadata Interchange) 4
Součásti UML
UML SuperStructure – popis UML z hlediska uživatele (analytik/programátor). Tato část popisuje jednotlivé diagramy UML Infrastructure – metamodel stojící v pozadí za UML, specifikovaný pomocí Meta-Object Facility (MOF) UML Object Constraint Language (OCL) – jazyk pro specifikaci vstupních a výstupních podmínek, invariantů v jednotlivých diagramech UML Diagram Interchange – popis XML struktur pro výměnu konkrétních modelů mezi jednotlivými modelovacími nástroji 5
Jiný pohled na součásti UML
6
UML profily – přizpůsobení pro jednotlivé oblasti
UML Profile for CORBA (Common Object Requesting Broker Architecture) UML Profile for CORBA Component Model (CCM) UML Profile for Enterprise Application Integration (EAI) UML Profile for Enterprise Distributed Object Computing (EDOC) UML Profile for QoS and Fault Tolerance UML Profile for Schedulability, Performance, and Time UML Testing Profile Další dialekty UML pro použití ve specifikované oblasti (technické, informační, zabezpečovací,…) 7
UML diagramy
Diagram tříd (class diagram) Diagram objektů (object diagram) Diagram případů užití (use case diagram) Diagram stavů (statechart diagram) Diagram sekvencí (sequence diagram) Diagram činnosti (activity diagram) Diagram spolupráce (collaboration diagram) Diagram komponent (component diagram) Diagram nasazení (deployment diagram) 8
Diagram tříd (class diagram)
Zobrazuje třídy v daném systému a vztahy mezi nimi Zobrazuje statický stav – ukazuje vzájemné interakce, ale neukazuje co se při těchto interakcích děje Při znázornění vztahů (vazeb) je možné zaznamenat i jejich násobnosti Složitější systémy je možné zobrazovat "ve větším měřítku" – pomocí tzv. balíčků 9
Diagram tříd (class diagram) třída
atribut
metoda
agregace
zobecnění
asociace
násobnost
10
Diagram objektů (object diagram)
Zobrazuje instance místo tříd Vhodné pro složitější systémy Vhodné pro rekurzivní objekty (např. složka má podsložky)
11
Diagram objektů (object diagram)
třída
asociace
instance třídy 12
Diagram případů užití (use case diagram)
Vysvětluje, co systém dělá z pohledu vnějšího pozorovatele Důraz je kladen na to, co systém dělá – spíše než na to, jak to dělá Diagramy případů užití jsou podobné scénářům Jsou užitečné: − − −
pro specifikaci vlastností systému (požadavků na systém) usnadňují komunikaci s klienty při vývoji pomáhají sestavit sady testovacích úloh 13
Diagram případů užití (use case diagram) účastník
komunikace
případ užití 14
Diagram stavů (statechart diagram)
Zobrazuje možné stavy určitého objektu Zobrazuje přechody mezi nimi, včetně možných akcí, které je nutno provést při těchto přechodech Zobrazuje počáteční a koncové stavy
15
Diagram stavů (statechart diagram) koncový stav stav přechod mezi stavy počáteční stav 16
Diagram sekvencí (sequence diagram)
Zobrazuje, jak objekty spolupracují Popisuje zprávy mezi objekty – jaké zprávy, komu a kdy jsou zasílány Časová osa je v diagramu vnímána shora dolů
17
Diagram sekvencí (sequence diagram)
objekt časová osa
zpráva
18
Diagram činnosti (activity diagram)
Jde o jiný pohled na stavový diagram Stavový diagram se soustřeďuje na objekt, který se mění při nějakém procesu Diagram činnosti se soustřeďuje na tok činnost, které probíhají při nějakém procesu – ukazuje, jak tyto činnosti na sobě závisí Může zobrazovat činnosti i ve vztahu k uživatelským rolím 19
Diagram činnosti (activity diagram) počáteční stav
činnost nebo stav přechod mezi stavy
role
rozhodování
koncový stav 20
Diagram spolupráce (collaboration diagram)
Zachycuje podobné informace jako sekvenční diagram Klade důraz na objekty (třídy) místo na čas, kdy jsou odesílány zprávy Jednotlivé zprávy mezi objekty (třídami) jsou číslovány
21
Diagram spolupráce (collaboration diagram)
objekt
zpráva 22
Diagram komponent (component diagram)
Týká se počítačových systémů Vývoj programů probíhá často po jednotlivých komponentách Komponenty mají rozhraní a spolupracují spolu pomocí těchto rozhraní Na vývoji tak mohou spolupracovat týmy lidí Rozhraní umožňují komunikovat i zcela odlišným aplikacím 23
Diagram komponent (component diagram)
objekt
komponenta
závislost
24
Diagram nasazení (deployment diagram)
Umožňuje zachytit fyzickou architekturu (počítačového) systému K zachycení částí systému se využívajíí diagramy komponent Je možné zachytit jednotlivé vztahy, vazby, závislosti i fyzické spojení
25
Diagram nasazení (deployment diagram) uzel
spojení
vazba
komponenta 26
Rozšiřující nástroje v UML
Stereotyp – meta třída pomocí níž lze rozšířit jiné třídy Tagged value (označené hodnoty) – možno dodat k různým prvkům (od verze UML 2 již jen jako atribut u stereotypu) Constraint (omezení) – může být spojeno se stereotypem a tím přesněji definovat pravidla dodaná stereotypem Profile – může obsahovat sadu výše uvedených nástrojů sdružených do balíčku (se stereotypem <<profile>>) 27
Stereotypy
Existující prvek lze použít jako základ pro nový prvek Stereotypy podle prvků, k nimž patří: −
− − − − − − −
závislost: <
>, <>, <>, <<derived>>, <<private>>, <>, <<extends>>, <<uses>>, <>, <>, <>, <<send>>,… klasifikátor: <<metaclass>>, <<powertype>>, <<process>>, <>, <>, <<stereotype>>,… třída: <>, <>,… zobecnění: <>, <<subclass>>, <<private>>,… balíček: <>, <>, <<stub>>, <<system>>, <<metamodel>>, <>,… další: <<requirement>>, <>, <<destroy>>, <<precondition>>, <<postcondition>>, <>,… grafické stereotypy: např. obrázky zařízení místo uzlů v diagramech nasazení vlastní – v rámci spec. profilu: <>, <>, <>,… 28
Nástroje pro práci s UML
ArgoUML (http://argouml.tigris.org/) – open source – poslední verze 0.30 Poseidon (http://www.gentleware.com/) – komerční – založen na ArgoUML Jude (http://jude.change-vision.com/judeweb/index.html) – komerční Objecteering (www.objecteering.com) Umbrello UML Modeller (http://uml.sourceforge.net/) Eclipse (http://www.eclipse.org/) - vývojové prostředí – open source MS Visual Studio (http://www.microsoft.com/cze/msdn/produkty/vstudio/defaul t.mspx) Enterprise Architect (http://www.sparxsystems.com.au) a další... 29
Literatura 1. Enterprise Architect [online]. Dostupné z: http://www.sparxsystems.com.au/ 2. Miller, R. Practical UML: A Hands-On Introduction for Developers. URL: http://dn.codegear.com/article/31863 3. Page-Jones, M. Základy objektově orientovaného návrhu v UML. 1. vyd. Grada Publishing. Praha: 2001. ISBN 80-247-0210-X. 4. Schmuller, J. Myslíme v jazyku UML: knihovna programátora. 1. vyd. Grada Publishing. Praha: 2001. ISBN 80-247-0029-8. 5. UML Resource Page. URL: http://www.uml.org/ 30