30
1 UML

UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

1

UML

Page 2: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 3: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 4: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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)

Page 5: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 6: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

6

Jiný pohled na součásti UML

Page 7: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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í,…)

Page 8: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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)

Page 9: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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ů

Page 10: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

10

Diagram tříd (class diagram)

třída

atribut

metoda

zobecnění

asociace

agregace

násobnost

Page 11: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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)

Page 12: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

12

Diagram objektů (object diagram)

třída

instance třídy asociace

Page 13: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 14: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

14

Diagram případů užití (use case diagram)

účastník

komunikace

případ užití

Page 15: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 16: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

16

Diagram stavů (statechart diagram)

počáteční stav

koncový stav

stav

přechod mezi stavy

Page 17: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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ů

Page 18: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

18

Diagram sekvencí (sequence diagram)

objekt

zpráva

časová osa

Page 19: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 20: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

20

Diagram činnosti (activity diagram)

činnost nebo stav

počáteční stav

koncový stav

přechod mezi stavy

role

rozhodování

Page 21: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 22: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

22

Diagram spolupráce (collaboration diagram)

objekt

zpráva

Page 23: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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

Page 24: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

24

Diagram komponent (component diagram)

objekt

komponenta závislost

Page 25: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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í

Page 26: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

26

Diagram nasazení (deployment diagram)

uzel

komponenta

spojení

vazba

Page 27: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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>>)

Page 28: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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>>,…

Page 29: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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ší...

Page 30: UML - jcu.czecom.ef.jcu.cz/web2/download/teorie/07_uml.pdf · 7 UML profily – přizpůsobení pro jednotlivé oblasti UML Profile for CORBA (Common Object Requesting Broker Architecture)

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/