1
Diagram maszyny stanów
Diagram maszyny stanów
2
Plan wykładu
• Podstawowe określenia
• Stan złożony sekwencyjny
• Stan złożony współbieżny
• Sygnał, przejście, czynność
• Przykłady diagramów stanu
3
Podstawowe określenia
4
Klasyfikacja diagramów UML 2.0
1. Diagramy struktury
• Diagram klas (class diagram)
• Diagram komponentów (component diagram)
• Diagram struktur złożonych, diagram składowych, (composite
structure diagram)
• Diagram wdrożenia (deployment diagram)
• Diagram obiektów (object diagram)
• Diagram pakietów (package diagram)
2. Diagramy zachowania
• Diagram czynności (activity diagram)
• Diagram przypadków użycia (use case diagram)
• Diagram maszyny stanów (state machine diagram)
• Diagramy interakcji
- Diagram sekwencji (sequence diagram
- Diagram komunikacji (communication diagram)
- Diagram przeglądu interakcji; diagram opisu interakcji
(interaction overview diagram)
- Diagram czasowy,diagram następstwa (timing diagram)
5
Maszyny stanowe -
podstawowe pojęcia
•Stan
- okoliczność lub sytuacja, w jakiej
obiekt się znajduje, kiedy spełnia jakiś
warunek, wykonuje jakąś czynność lub
czeka na jakieś zdarzenie; zwykle obiekt
pozostaje w pewnym stanie przez skończony
czas.
Maszyna stanowa
- określa ciąg
stanów przyjmowanych przez obiekt w
odpowiedzi na zdarzenia zachodzące w
czasie jego życia, a także reakcje obiektu
na te zdarzenia; bardzo przydatne, gdy
bieżące zachowanie obiektu zależy od jego
przeszłości
6
Diagram maszyny stanów
Diagram maszyny stanów
stan obiektu trwa w czasie aż do
momentu zajścia zdarzenia, które
spowoduje zmianę aktualnego stanu na
inny;
stan może mieć nazwę, ale często
jest charakteryzowany jedynie poprzez
wewnętrzne operacje;
7
Diagramy stanów
• Są
grafami
stanów i przejść między nimi
• Opisują reakcje
obiektu na otrzymane
komunikaty i zdarzenia zewnętrzne
• Modelują
zachowanie obiektów danej
klasy w oderwaniu od reszty systemu
– Wszystkie obiekty danej klasy
znajdujące się w tym samym stanie
reagują w jednakowy sposób na
otrzymanie tego samego komunikatu lub
zdarzenia
8
Diagramy stanów
•Zawierają
:
stany zwykłe(proste) i złożone
przejścia ze zdarzeniami i akcjami
•Najczęściej wykorzystywane
do modelowania
obiektów reaktywnych
(sterowanych zdarzeniami -
ang. event-driven)
zachowanie
obiektów reaktywnych jest najlepiej
charakteryzowane przez ciąg odpowiedzi na zdarzenia
wywołane w jego otoczeniu, przy czym obiekt taki jest zwykle
bezczynny do chwili zajścia zdarzenia
reakcja
na konkretne zdarzenie najczęściej zależy od
wcześniejszych zdarzeń
Nacisk
kładziony jest na stany stabline, zdarzenia
uruchamiające przejścia i akcje wykonywane po każdej
zmianie stanu
9
Składniki stanów
•Nazwa
stanu- odróżnia poszczególne stany (nie
może zawierać dwukropka); może też być stan
bez nazwy – anonimowy.
Nazwę stanu podaje się w
formie rzeczownika
lub wyrażenia rzeczownikowego
pochodzącego ze słownictwa modelowanego
systemu.
•Przejścia
wewnętrzne
- realizowane bez
zmiany stanów
10
Diagramy maszyny stanów w
UML
stan jest reprezentowany przez
prostokąt z
zaokrąglonymi rogami
przejście z jednego stanu w inny jest
oznaczone
przez
linię ciągłą z grotem strzałki
Stany mogą mieć podstany:
sekwencyjne
(jeden następuje po drugim),
współbieżne
(pojawiające się w tym
samym czasie).
11
Rodzaje stanów
• Prosty
(zwykły) -
nie posiada
wewnętrznej struktury
•
Finalny
- pseudostan
oznaczający punkt
końcowy
•
Początkowy
-
pseudostan oznaczający
punkt startowy -
miejsce rozpoczęcia
działania maszyny
stanowej lub podstanu
12
Rodzaje stanów
•Złożony
sekwencyjny
- złożony
z jednego lub więcej
podstanów, z których
tylko jeden jest
aktywny, gdy aktywny
jest stan złożony
•
Złożony współbieżny
-
podzielony na dwa lub
więcej współbieżnych
podstanów; wszystkie
podstany są
jednocześnie aktywne,
gdy aktywny jest stan
złożony (jako całość)
13
Stan złożony
sekwencyjny
14
STAN ZŁOŻONY SEKWENCYJNIE
STAN ZŁOŻONY SEKWENCYJNIE
każdy z podstanów dziedziczy przejścia
nadstanu;
tylko jeden z podstanów może być aktywny
w danym momencie.
15
Maszyna stanów dla klasy Samochód
zbudowana w oparciu o stany proste
16
Maszyna stanów dla klasy Samochód
ze stanem złożonym sekwencyjnym w
notacji UML
17
Stan złożony
współbieżny
18
Podstany współbieżne
•Umożliwiają tworzenie dwu lub więcej maszyn
stanowych,
działających
równolegle
w ramach
jednego obiektu
•Czynności podstanów współbieżnych przebiegają
równolegle i ostatecznie każda z nich osiąga swój
stan końcowy;
jeżeli jeden dotrze do swego stanu
końca wcześniej to czeka na pozostałe
i dopiero
wtedy następuje połączenie przepływu sterowania
•Zagnieżdzona współbieżna maszyna
stanowa nie
ma jako całość
ani stanu początkowego ani
końcowego
; natomist mogą je mieć składowe
podstany sekwencyjne
19
Współbieżność w ramach
jednego obiektu
20
STAN ZŁOŻONY WSPÓŁBIEŻNIE
STAN ZŁOŻONY WSPÓŁBIEŻNIE
rodzajem stanów złożonych są stany składające się ze
współbieżnych podstanów;
synchronizacja wewnętrzna
:
synchronizacja
zewnętrzna
:
Wyjście ze stanu - w
typowej sytuacji - następuje
wtedy, gdy we wszystkich
podstanach został
osiągnięty ich stan
końcowy
Oba diagramy
są
równoważne
21
Współbieżność w ramach obiektu
zagregowanego
Diagram dla obiektu
„
całość
” budowany jest
w oparciu o diagramy
stanów
dla obiektów
składowych
.
Maszyny stanów dla
obiektów klas
Zapłon,
Biegi,, Hamulec i Gaz
determinują zmiany
stanu dla
zagregowanego obiektu
klasy Samochód
22
Sygnał, przejście, czynność
23
stan1
stan2
zdarzenie[ warunek ] / akcja
PRZEJŚCIA
PRZEJŚCIA
przejście zewnętrzne
stan
zdarzenie[ warunek ] / akcja
samoprzejście
przejście wewnętrzne
zdarzenie [warunek] /
akcja
stan1
stan2
[ warunek ] / akcja
przejście automatyczne (wszystkie
operacje wyspecyfikowane po
słowach kluczowych ‘entry’, ‘exit’ i
‘do’ zostały ukończone)
24
Składniki przejść
•Akcja
- wykonywalna niepodzielna procedura
obliczeniowa, która może mieć bezpośredni wpływ
na obiekt będący właścicielem maszyny stanowej i
pośredni wpływ na inne obiekty znajdujące się w
jego zasięgu
•może to być wywołanie operacji (obiektu lub innych
dostępnych obiektów), utworzenie lub zniszczenie
obiektu oraz wysłanie sygnału do obiektu
•nie może być przerwana przez zdarzenie - zawsze
jest wykonywana w całość
•Stan docelowy
- stan obiektu po zakończeniu
przejścia
25
Elementy diagramów stanów 1/2
• Stany
mogą mieć nazwy i być definiowane na
trzy sposoby
– Wartość
atrybutów obiektów
– Czas, gdy obiekt oczekuje
na nadejście
jakiegoś zdarzenia
– Czas, w którym obiekt wykonuje
jakieś
czynności
26
Elementy diagramów stanów 2/2
• Przejścia
– wskazują, że obiekt przejdzie z jednego
stanu do drugiego, ilekroć zajdzie określone
zdarzenie i będą spełnione warunki
– entry/akcja
– oznacza wykonanie akcji podczas
wejścia do stanu
– exit/akcja
– oznacza wykonanie akcji podczas
wyjścia ze stanu
– do-
służy do wskazania prac wykonywanych w
danym stanie od chwili zakończenia akcji
wejściowej (może to być uruchomienie innej
maszyny stanowej lub ciąg akcji, rozdzielonych
średnikami)
Przejście zewnętrzne – wykonanie akcji exit zmiana
stanu i wykonanie akcji enter
Przejście wewnętrzne – wykonanie akcji exit i entry
bez zmiany stanu
27
Diagram maszyny stanów
Diagram maszyny stanów
stan
nazwa stanu
entry/ akcja1/akcja2/...
exit/ akcja1/akcja2/...
do/ czynnosc
entry
– każda akcja stowarzyszona ze zdarzeniem
entry jest wykonywana przy każdym wejściu do
stanu
exit
- akcja stowarzyszona ze zdarzeniem exit jest
wykonywana przy każdym wyjściu ze stanu
do/czynność
– wykonanie czynności w trakcie,
wskazanej za pomocą etykiety
28
Rodzaje zdarzeń
otrzymanie przez obiekt synchronicznego
żądania wykonania operacji –
podstawowe
;
wygenerowane po upływie pewnego czasu,
oznaczane słowem kluczowym ‘
after
’;
wygenerowane po spełnieniu pewnego
warunku, oznaczane słowem kluczowym
‘
when
’;
otrzymania przez obiekt asynchronicznego
żądania wykonania operacji –
sygnał
;
29
Złożone elementy stanów i przejść
•Zdarzenia odroczone
- lista zdarzeń,
których zajście w stanie jest odroczone do
czasu, aż stan, w którym nie są odroczone,
uaktywni się - dopiero wtedy te zdarzenia
powodują przejścia, jakby właśnie zaszły;
zdarzenia takie oznacza się specjalnym
rodzajem akcji „
defer
”.
30
Złożone elementy stanów i
przejść
31
Przykłady diagramów
stanu
32
Ilustracja odwołania do innego stanu
33
Diagram stanów typu "historia życia obiektu" dla
klasy Urządzenie
34
Diagramy maszyny stanów
logowania się do sieciowego systemu bankowego
35
Przykład obiektu klasy ”Konto Bankowe”
36
Diagramy maszyny stanów
37
Literatura
Literatura
G.Booch, J.Rumbaugh, I.Jacobson – „UML
przewodnik użytkownika”,
J.Schmuller– „UML dla każdego”,