Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
UML
2
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
3
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
4
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)
5
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
6
Jiný pohled na součásti UML
7
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í,…)
8
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)
9
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ů
10
Diagram tříd (class diagram)
třída
atribut
metoda
zobecnění
asociace
agregace
násobnost
11
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)
12
Diagram objektů (object diagram)
třída
instance třídy asociace
13
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
14
Diagram případů užití (use case diagram)
účastník
komunikace
případ užití
15
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
16
Diagram stavů (statechart diagram)
počáteční stav
koncový stav
stav
přechod mezi stavy
17
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ů
18
Diagram sekvencí (sequence diagram)
objekt
zpráva
časová osa
19
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
20
Diagram činnosti (activity diagram)
činnost nebo stav
počáteční stav
koncový stav
přechod mezi stavy
role
rozhodování
21
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
22
Diagram spolupráce (collaboration diagram)
objekt
zpráva
23
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
24
Diagram komponent (component diagram)
objekt
komponenta závislost
25
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í
26
Diagram nasazení (deployment diagram)
uzel
komponenta
spojení
vazba
27
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>>)
28
Stereotypy
Existující prvek lze použít jako základ pro nový prvek Stereotypy podle prvků, k nimž patří:
− závislost: <<becomes>>, <<call>>, <<copy>>, <<derived>>, <<private>>, <<friend>>, <<extends>>, <<uses>>, <<include>>, <<import>>, <<instance>>, <<send>>,…
− klasifikátor: <<metaclass>>, <<powertype>>, <<process>>, <<thread>>, <<utility>>, <<stereotype>>,…
− třída: <<type>>, <<implementation>>,… − zobecnění: <<inherits>>, <<subclass>>, <<private>>,… − balíček: <<facade>>, <<framework>>, <<stub>>, <<system>>,
<<metamodel>>, <<topLevel>>,… − další: <<requirement>>, <<create>>, <<destroy>>,
<<precondition>>, <<postcondition>>, <<invariant>>,… − grafické stereotypy: např. obrázky zařízení místo uzlů v
diagramech nasazení − vlastní – v rámci spec. profilu: <<tool>>, <<large>>, <<ordered>>,…
29
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/jude-web/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/default.mspx)
Enterprise Architect (http://www.sparxsystems.com.au) a další...
30
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/