42
Diagramy stavů Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML ® , Second Edition, Pearson – Prentice Hall, 2005

Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Embed Size (px)

Citation preview

Page 1: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Diagramy stavů

Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML®,

Second Edition, Pearson – Prentice Hall, 2005

Page 2: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Událost

(event)Přechod

(transition)

Stav

Počáteční

(defaultní)

stavKoncový

stav

Page 3: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Stavový diagram vyjadřuje životní cyklus instancí dané třídy.

Vznik instance indikován počátečním (pseudo)stavem.

Zánik instance indikován koncovým (pseudo)stavem.

Stav: souhrn hodnot (zajímavých) atributů a linků dané instance.

Událost způsobí okamžitý přechod z jednoho stavu do druhého.

Page 4: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Stavový diagram vyjadřuje životní cyklus instancí dané třídy.

Vznik instance indikován počátečním (pseudo)stavem.

Zánik instance indikován koncovým (pseudo)stavem.

Stav: souhrn hodnot (zajímavých) atributů a linků dané instance.

Událost způsobí okamžitý přechod z jednoho stavu do druhého.

Page 5: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Vykoná se při vstupu do stavu

Vykonává se po celou dobu nebo část trvání stavu

Vykoná se při opuštění stavu

Ošetření události uvnitř stavu

Page 6: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Událost, která by mohla způsobit přechod mezi

stavy ...

... pokud je ovšem splněna (tzv. guard) podmínka

Aktivita vykonaná jako vedlejší efekt přechodu

Page 7: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

U tohoto přechodu není uvedena událost.Je to přechod po skončení „do“ aktivity, tzv. „completion transition“.

Často není uvedena ani podmínka ani aktivita.

Page 8: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Aktivit může být uvedeno více, pak se oddělují čárkami.

Aktivity se vykonávají v tomto pořadí:

1. Aktivity při vstupu do stavu Stav1 (entry)

2. Do aktivita stavu Stav1.3. Aktivity při opuštění stavu Stav1

4. Aktivity události, která přechod způsobila

5. Aktivity při vstupu do stavu Stav2

6. atd.

Během „pobytu“ v daném stavu mohou být vykonány aktivity přiřazené k „interním“

událostem, pokud jsou nějaké interní události specifikovány.

Page 9: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Příklad událostí a aktivit.

Page 10: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Příklad do aktivity:

V kopírce se zasekl papír, nastal přechod do stavu „Uváznutí papíru“¨a po dobu setrvání v tomto stavu bliká kontrolka označená

Nápisem „Paper Jam“.

Page 11: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Tento stavový diagram můžeme ekvivalentně nakreslit takto:

Page 12: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Ekvivalentní diagramy

Page 13: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Událost uvnitř stavu:

Vykoná se pouze aktivita přiřazená této události,eventuální entry nebo exit aktivity se nevykonají,protože daná instance neopustila daný stav.

Naproti tomu:

Přechod ze stavu do téhož stavu:

Vykonají se postupně následující aktivity:1. odstraňZvýrazněníVybrané položky2. vyberNovouPoložkuMenu3. zvýrazniVybranouPoložku

Page 14: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Odesílání signálu

Jednou z aktivit může být rovněž odesílání signálu:

send cílovýObjekt.jmenoSignálu(atributy)

Návaznost na „aktivity diagramy“ a „interaction diagramy“.

Signál může zpracovat více objektů současně – potenciálníproblémy se synchronizací (race condition).

Page 15: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with
Page 16: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Pokročilé stavové diagramy

Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML®,

Second Edition, Pearson – Prentice Hall, 2005

Page 17: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

„Submachine“(poddiagram)

Názav samostatného

stavového diagramu

Jméno stavu

Page 18: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

„Submachine“ (poddiagram)

Page 19: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

„Submachine“ (poddiagram)

Vstoupí do

defaultního stavu poddiagramu

Page 20: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

„Submachine“ (poddiagram)

Vystupuje z

koncového stavu poddiagramu

Page 21: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Vnořený (nested) stav

Page 22: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Vnořený (nested) stav

Přechod z každého stavu

vnořeného stavu

Page 23: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Příklad – vnořený stav

Page 24: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Paralelismus - synchronizace

Page 25: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Paralelismus - synchronizace

Čárkovanou čarou jsou znázorněna „paralelní vlákna“.

Přechod do stavu „Ready to reset“ se uskuteční, až obě paralelní vlákna

Dosáhnou svých koncových stavů.

Pokud by existoval přechod z nějakého stavu vnořeného stavu do stavu externího,pak tento přechod znamená současné ukončení všech vláken vnořeného stavu.

Page 26: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Potlačený stav (stub state, supressed state)stm Vnější diagram

stm Vnitřní diagram

Page 27: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Diagramy aktivit

Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML®,

Second Edition, Pearson – Prentice Hall, 2005

Page 28: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Diagramy aktivit (Activity diagrams)

Page 29: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Diagramy aktivit (Activity diagrams)

Poskytují podobnou informaci jako stavové diagramy.

Stavy odpovídají šipkám, zatímco uzly (aktivity) odpovídají přechodům mezi stavy.

Umožňují přehledně vyjádřit paralelismus a synchronizaci vykonávaných výpočetních vláken.

Viz následující

diagram

Page 30: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Diagramy aktivit pro aktivitu „Execute order“ z předchozího diagramu

Page 31: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Sekvenční diagramy

Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML®,

Second Edition, Pearson – Prentice Hall, 2005

Page 32: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Sekvenční diagram

Page 33: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Sekvenční diagram

Synchronnízpráva

Návratová

hodnota

(nepovinná) Zpracování

příchozí

zprávy

Lifeline

(čára života)

Page 34: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Sekvenční diagram

Konstrukce

nového objektu

Destrukce

objektu

Page 35: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Smyčka

(opakování)

Podmínka zaslání zprávy

Page 36: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Alternativy

Page 37: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Před pokračováním

scénáře musí být

splněn tento

invariant stavu

Page 38: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Kooperační (kolaborační) diagramy

Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with UML®,

Second Edition, Pearson – Prentice Hall, 2005

Page 39: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Kooperační diagram

(cooperation, colaboration diagram)

Synchronnízpráva

Asynchronnízpráva

Page 40: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Kooperační diagram

(cooperation, colaboration diagram)

Stejná expresivita jako sekvenční diagram.

Hutnější – na 1 stránku A4 se vejdou i složité scénáře – ale méně přehledný nežSekvenční diagram.

Page 41: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Komponentový diagram

Page 42: Diagramy stav ů - start [CourseWare Wiki] · stm Vn ější diagram stm Vnit řní diagram. Diagramy aktivit Michale Blaha, James Rumbaugh: Object-Oriented Modeling and Design with

Deployment diagram