![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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/15.jpg)
![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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/17.jpg)
„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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/18.jpg)
„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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/19.jpg)
„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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/20.jpg)
„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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022021801/5b316e237f8b9aa0238b4723/html5/thumbnails/42.jpg)
Deployment diagram