UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,…...

55
UML diagram tříd - hledání analytických tříd, relací, atributů Martin Komárek

Transcript of UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,…...

Page 1: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

UML diagram tříd - hledání analytických tříd, relací, atributů

Martin Komárek

Page 2: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 2

Třídy a Objekty

Account

accountNumber : String owner : String balance : double

objekty

třída

ilasAccount:Account

accountNumber : "803" owner : "Ila" balance : 310.00

fabsAccount:Account

accountNumber : "802" owner : "Fab" balance : 1000.00

jimsAccount:Account

accountNumber : "801" owner : "Jim" balance : 300.00

«instantiate» «instantiate» «instantiate»

Page 3: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 3

Co jsou to třídy a objekty?

• Každý objekt je instancí třídy

• Třídy umožňují modelovat množinu objektů se stejnými vlastnostmi

• Třída představuje šablonu na objekty:

– Třída určuje strukturu objektu (množinu jeho vlastností)

– Všechny objekty mají

• stejné atributy

• stejnou množinu operací

• obecně různé hodnoty atributů

• Představujte si třídy jako:

– Razítka

– Formičky na cukroví třída

objekt

Page 4: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 4

Zobecnění

• Klasifikátor a instance – Klasifikátor je abstrakce, instance je konkrétní projev

této abstrakce

– Nejběžnější forma třída/objekt

– Obecně instance mají stejnou notaci jako třídy, ale jméno podtrženo

BankAccount

balance

getBalance()

myAccount:BankAccount

balance = 100.0

«instantiate»

Page 5: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 5

Cvičení – najděte třídy?

Page 6: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Proč vůbec v analýze modelovat třídy/entity?

• Evidence business entit

– Definice entit se kterými řešení bude pracovat.

– Definice atributů entit.

• Evidence vztahů business entit

Page 7: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

UML notace třídy

• Pojmenovávejte podstatnými jmény

• Nepoužívejte zkratky

Název třídy

atribut1: typ atributu atribut2: typ atributu atribut3: typ atributu atribut4: typ atributu

Osoba

jméno: text příjmení: text datum narození : datum věk: číslo email: email

Page 8: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Syntaxe asociace

Asociace = vztah tříd.

Firma Osoba 1 0..*

zaměstnává

význam asociace

násobnost

Firma Osoba zaměstnavatel zaměstnanec

1 0..*

role

Page 9: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Násobnost = Multiplicita = Kardinalita vazby

Firma Osoba zaměstnanec

1 0..*

zaměstnavatel

Firma může zaměstnávat mnoho osob, ale nemusí žádnou.

Každá osoba pracuje právě v jedné firmě.

Význam násobnosti: minimum..maximum

0..1 nula nebo 1

1 právě 1

0..* nula či více

* nula či více

1..* 1 či více

1..6 1 až 6

Page 10: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Třídy pouze jako slovníček pojmů

Parcela

Kolonie

Objekt

rozloha čísloParcely …

název čísloÚčtu …

typObjektu …

Page 11: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Třídy doplněné o vazby

Parcela

Kolonie

Objekt

rozloha čísloParcely …

název čísloÚčtu …

typObjektu …

0..*

1

Se skládá z

Může mít

0..1 1

Page 12: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Cvičení – Co diagram zachycuje?

Osoba

Bankovní účet

0..*

1 majitel

0..*

1..* disponent

Page 13: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 13

Cvičení 1

• Namodelujte filesystem. Zde jsou potřebné údaje:

– Základní stavební jednotka je file

– Files jsou v directories

– Directories mohou obsahovat další directories

Page 14: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Cvičení 2

• Namodelujte síť adresářů.

Úvod do UML 14

Page 15: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Cvičení 3

• Namodelujte síť měst spojených různě dlouhými cestami, které mohou být i jednosměrné.

Úvod do UML 15

Page 16: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Cvičení 4

• Namodelujte matriku. Konkrétně vztahy rodičů (otec a matka) a dětí.

Úvod do UML 16

Page 17: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Cvičení – Namodelujte vztahy vodoměrů a jejich odečtů

• Vodoměry jsou instalovány ve stromové struktuře, aby bylo možné zjistit

případné úniky v jednotlivých větvích. Každý vodoměr tedy může mít

několik podružných vodoměrů. A podružný vodoměr opět může mít

několik podružných vodoměrů.

• Na každém vodoměru pravidelné probíhá odečet jeho stavu k určitému

dni.

Page 18: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 18

Detailní notace UML třídy

• Třídy pojmenované UpperCamelCase

• Pojmenovávejte jména podst. jmény

• Nepoužívejte zkratky

Window

+size : Area=(100,100) #visibility : Boolean = false +defaultSize: Rectangle #maximumSize : Rectangle -xptr : XWindow*

+create() +hide() +display( location : Point ) -attachXWindow( xwin : XWindow*)

{author = Jim, status = tested}

oddíl jména

oddíl atributů

oddíl operací

jméno třídy tagged value

počáteční hodnoty

třídní (statické) operace viditelnost

Page 19: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 19

Oddíl atributů

• Vše kromě jména je volitelné

• initialValue je hodnota, kterou atribut dostane při instanciaci

• Atributy pojmenované lowerCamelCase – pojmenovávejte atributy podstatnými jmény

– nepoužívejte zkratky

• Atribut může mít – stereotyp

+size : Area=(100,100) - address : String [3] visibility name : type multiplicity = initialValue

Page 20: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 20

Viditelnost

Symbol Jméno Kdo má přístup

+ public Každý

- private Pouze operace uvnitř třídy

# protected Pouze operace uvnitř třídy nebo potomci třídy

~ package Každý ze stejného balíčku či podbalíčku uvnitř třídy

Page 21: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 21

Násobnost (Multiplicita) • Umožňuje modelovat kolekce věcí

PersonDetails

-name : String [2..*] -address : String [3] -emailAddress : String [0..1]

name se skládá z či více Stringů

address skládá právě ze 3 Stringů

emailAddress je 1 String nebo není nastavena( null)

multiplicita

Page 22: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 22

Oddíl operací

+display( location : Point )

visibility name( direction parameterName: parameterType = default, …) : returnType

seznam parametrů

• Operace pojmenovány lowerCamelCase – Nepoužívat zkratky a speciální symboly

– Operace pojmenovány slovesem či slov. frází

• Operace může mít více návratových typů – může vracet více objektů

• Operace může mít: – stereotyp jako prefix

– seznam tagged values jako postfix

může být více tupů oddělených čárkou - r1, r2,… rn

Page 23: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 23

Druhy parametrů

druh parametru

význam

in vstup do operace

operace nemění jeho hodnotu

out je do něj uložen výstup operace

inout slouží jako vstup

operace ho může změnit

return návratová hodnota operace

maxMin( in a: int, in b:int, return maxValue:int , return minValue:int ) maxMin( in a: int, in b:int ):int,int

Page 24: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 24

Reflexivní asociace

Directory File 0..* 1 0..*

0..1

C

Windows My Documents Corel

Command

autoexec

config

To John

directories files

parent

subdirectory

reflexivní asociace

Page 25: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 25

Průchodnost

• Průchodnost vyjadřuje jakým směrem lze posílat zprávy

• Jaký objekt má odkaz na který Order Product * *

Neprůchodný Objekt Product neobsahuje seznam Orders

Objekt Order obsahuje seznam Products

Průchodný zdroj cíl

průchodnost

A B

A B

A B

A B

z A do B je průchodné z B do A je průchodné

z A do B je průchodné z B do A je neprůchodné

z A do B je průchodné z B do A je nedefinováno

z A do B je nedefinováno z B do A je nedefinováno

Page 26: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 26

Průchodnost - zásady

• 3 možné způsoby:

– Znázorňuj průchodnost explicitně všude

– Neznázorňuj průchodnost nikde

– Neznázorňuj křížky

• obousměrné mají 2 šipky

• jednosměrné mají 1 šipku

A B

A B

z A do B je průchodné z B do A je neprůchodné

z A do B je průchodné z B do A je průchodné

standard

Page 27: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 27

Asociace vs Atributy

• Jednosměrná asociace s rolí může být nahrazena atributem, vyjadřuje to samé.

• Kdy použít asociaci:

– Cílová třída je důležitá pro model

– Cílová třída je nestandardní

• Kdy použít atribut:

– Cílová třída je standardní nebo primitivní typ

House Address 1 1

address House

address:Address

atribut

=

Page 28: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 28

Asociační třídy

Company Person * *

Každá osoba může pracovat pro více společností. Každá společnost může zaměstnávat více osob.

Pokud je osoba zaměstnána společností, kam umístíme plat?

employment

Page 29: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 29

Syntaxe asociační třídy

Company Person * *

Contract

salary:double asociační třída

Page 30: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 30

Možnost alternativy

Company Person * *

Contract

salary:double

Company Person Contract

salary:double

* * 1 1

Page 31: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 31

Agregace a kompozice

A B

A B A B

agregace kompozice

• asociaci možno ještě upřesnit • nutno zvážit přínosy upřesnění • v analýze doporučuji nepoužívat

Page 32: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 32

Agregace a kompozice

silná vazba – strom a jeho listy

slabá vazba – počítačová sestava a její části

Agregace Kompozice

Page 33: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 33

Agregace

Celek a část nejsou na sobě existenčně závislé

Části mohou být sdíleny více celky

Počítačová sestava Komponenty 0..3 0..*

celek část

typ vztahu celek-část

agregace

Page 34: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 34

Kompozice

• Části nejsou sdílené

• Celek je zodpovědný za konstrukci a destrukci částí

• V momentě zániku celku zanikají i jeho části

• Kaskádový DELETE v SQL

• Př.: Dům-Patra-Místnosti, Faktura-Položky faktury,…

Ruka Prst 1 1..5

silnější forma agregace

„složenina“ část kompozice

vždy 0..1 nebo 1

Page 35: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

<<enumeration>>

• Stereotyp pro výčtovou třídu.

Page 36: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 36

UML Syntaxe Objektu

• Všechny objekty dané třídy mají stejnou množinu operací – nezobrazují se u objektů ale u tříd).

• Typy atributů pro přehlednost obvykle vynechány • Konvence pojmenování:

– objekty a atributy lowerCamelCase – jméno třídy UpperCamelCase

jimsAccount : Account

accountNumber : String = "1234567" owner : String = "Jim Arlow" balance : double = 300.00

jméno atributu

oddíl atributů

oddíl jména

typ atributu

hodnota atributu

jméno objektu

jméno třídy

jimsAccount : Account

jimsAccount

: Account

jméno objektu a třídy

pouze jméno objektu

pouze jméno třídy

varianty

(neuvedeme oddíl atributů)

anonymní objekt

object identifier (must be underlined)

Page 37: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 37

Spojení - Diagram objektů

bookClub:Club

ila:Person

erica:Person

naomi:Person spojení

BookClub

objekt

Page 38: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 38

Generalizace třídy

Shape

Square Circle Triangle

více obecný element

více specifické elementy

rodič nadtřída předek

potomek podtřída následník

genera

lizace

speci

aliz

ace

Hierarchie generalizace

“je druhu”

Vztah mezi obecným a více specifickým elementem

Page 39: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 39

Dědění

• Podtřída dědí všechny vlastnosti nadtřídy: – atributy

– operace

– vztahy

– (stereotypy, tagy, omezení)

• Podřída může přidávat nové vlastnosti (atributy, operace,…)

• Podtřída může změnit implementaci operací

Page 40: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 40

Překrývání

• Podtřída často potřebuje změnit chování definované v předkovi

Shape

draw( g : Graphics ) getArea() : int getBoundingArea() : int

Square Circle

draw( g : Graphics ) getArea() : int

draw( g : Graphics ) getArea() : int width x height p x radius2

Page 41: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 41

Abstraktní operace

• Abstraktní operace – signatura bez implementace

• Třída abstraktní pokud má nějaké abstraktní operace

• Od abstraktní třídy není možné vytvořit instanci

• Potomek abstraktní třídy také abstraktní pokud neimplementuje abstraktní operace

konkrétní operace

Shape

draw( g : Graphics ) getArea() : int getBoundingArea() : int

Square Circle

draw( g : Graphics ) getArea() : int

draw( g : Graphics ) getArea() : int

abstraktní třída

konkrétní třída

abstraktní operace

abstraktní prvky italikou

Page 42: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 42

Rozhraní (Interface)

• Speciální druh (abstraktní) třídy

• Specifikuje pojmenovanou množinu vlastností

• Účel – oddělení specifikace funkčnosti od implementace

• Rozhraní definuje kontrakt, který musí implementující klasifikátory realizovat

Page 43: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 43

Rozhraní (Interface) cd

«interface»

Comparable

+ compareTo(Object) : int

«interface»

TimeComparable

+ getTimeDif(Object) : int

«interface»

WeightComparable

+ getWeightDif(Object) : int

TimeStamp

- minutes: int

- hours: int

+ compareTo(Object) : int

+ getTimeDif(Object) : int

BackUp

+ BackUp(TimeComparable)

+ run() : void

«realize»

Page 44: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 44

Syntaxe poskytovaného rozh.

• Poskytované rozhraní – klasifikátor ho implementuje

CD Book

Borrow

«interface» Borrow

borrow() return() isOverdue()

CD Book

“Lollipop” style notace

“Class” style notace

rozhraní

realizuje

Page 45: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 45

Syntaxe požadovaného rozh.

• Požadované rozhraní – klasifikátor používá metody předepsané rozhraním

Borrow

Library

požadované rozhraní

Borrow

Library

«interface» Borrow

Library

class style notace lollipop style notace

Page 46: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 46

Konektor sestavení

Borrow

Book CD

Library

konektor sestavení

Poskytované a požadované rozhraní je možné spojit konektorem sestavení.

Page 47: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML 47

Opakování - vztahy

závislost

asociace

kompozice

agregace

generalizace

realizace

Zdrojový element závisí na cílovém.

Vazba mezi objekty.

Cílový element je částí zdrojového

Silnější forma agregace.

Zdrojový element je specializací cílového.

Zdrojový element zaručuje splnění kontraktu předepsaného cílovým element.

relationship UML syntaxe sémantika stručně

Page 48: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

Úvod do UML stavových diagramů

© Cactoo Software s.r.o.

www.cactoosoftware.com

Page 49: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

49

Stavové diagramy

Slouží k modelování životního cyklu entit

Základní artefakty digramu:

– Začátek

– Konec (nemusí mít vždy)

– Stavy

– Přechody

Stav 2 Stav 1

Událost [Podmínka] / Akce

Trigger [Guard] / Effect

Page 50: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

50

Jaký stav chybí? Jaký stav špatně pojmenován/znázorněn?

stm Úřední stav y živ ota - nedokonalé

Sv obodný Ženatý

Rozv edený

Final

smrt

smrt

svatba

narození

smrt rozvod

svatba [věk>16]

/výměna dokladů

Page 51: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

51

Lepší řešení

stm Úřední stav y živ ota - lepší řešení

Sv obodný Ženatý

Rozv edený

Vdov ec

Zemřelý

smrt

smrt

partnerky

smrt

svatba

svatba [věk>16]

/výměna dokladůnarození

svatba

rozvod

smrt

Page 52: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

52

Je možné nějak zjednodušit?

stm Úřední stav y živ ota - lepší řešení

Sv obodný Ženatý

Rozv edený

Vdov ec

Zemřelý

smrt

smrt

partnerky

smrt

svatba

svatba [věk>16]

/výměna dokladůnarození

svatba

rozvod

smrt

Page 53: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

53

Nadstav

stm Úřední stav y živ ota - v yužití nadstav u

Živ ý

Sv obodný Ženatý

RozvedenýVdov ec

Zemřelý

svatba [věk>16]

/výměna dokladů

rozvod

svatba

smrt

narození

svatbasmrt

partnerky

Page 54: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

54

Entry a Exit Pointy

stm Úřední stav y živ ota - entry a exit pointy

imigrace

narození

ExitPoint

Živ ý

imigrace

narození

ExitPoint

Sv obodný Ženatý

Rozvedený

Vdov ec

Zemřelý

Entry

point

Pouze jako ukázka

Exit pointu

- v digramu nemá

význam

smrt

partnerkyimigrace

smrt

rozvod

narození

svatba

svatba [věk>16]

/výměna dokladů

svatba

Page 55: UML diagram tříd - hledání analytických tříd, relací, atributů · čárkou - r1, r2,… rn. Úvod do UML 23 Druhy parametrů druh parametru význam in vstup do operace operace

55

Příklad stavového diagramu

Pro níže uvedený příklad namodelujte stavový diagram trezoru. V domě jsou uchovávány cennosti v trezoru schovaném za obrazem. Pro odkrytí trezoru je nutné stisknout skryté tlačítko. Obraz se odsune ale jen v případě, že je otevřené okno a zároveň zavřené dveře. Následně se trezor: a) otevře vložením (a pootočením) klíče, ale jen za podmínky, že bylo mezitím zavřeno okno. Otevřený trezor se automaticky zavře a skryje za obraz po vytažení klíče ze zámku. b) skryje zpět za obraz, pokud vložím klíč, ale okno zůstalo otevřeno. Současně se zablokují zámky místnosti a je spuštěn alarm