1
Diagramy maszyny stanowej
(state machines)
Dr in
ż
. Ilona Bluemke
2
Diagram maszyny stanowej
Opisuje zmiany stanów obiektu na skutek
zdarze
ń
. Do notacji u
ż
ywa si
ę
diagramów
Davida Harel'a (1987).
W
ę
zły - stany
- abstrakcja zbioru warto
ś
ci
atrybutów i poł
ą
cze
ń
obiektu
Skierowane kraw
ę
dzie
- zmiany stanów
etykietowane nazwami zdarze
ń
diagram deterministyczny
3
stany
Stan okre
ś
la reakcj
ę
obiektu na zdarzenie. Reakcja
mo
ż
e by
ć
ró
ż
na dla ró
ż
nych stanów. Odpowiedzi
ą
na zdarzenie mo
ż
e by
ć
akcja lub zmiana stanu
obiektu.
zdarzenia reprezentuj
ą
chwile czasu, stany -
interwały czasu.
Stan obiektu zale
ż
y od sekwencji zdarze
ń
jakie
obiekt otrzymał w przeszło
ś
ci. Definiuj
ą
c stany
ignorujemy atrybuty, które nie wpływaj
ą
na
zachowanie obiektu. Ł
ą
czymy w jednym stanie
warto
ś
ci atrybutów, poł
ą
cze
ń
, które daj
ą
tak
ą
sam
ą
odpowied
ź
na zdarzenie.
4
Stany charakteryzują
nazwa stanu
sekwencja zdarze
ń
powoduj
ą
cych wej
ś
cie do
tego stanu
warunki charakteryzuj
ą
ce stan
oczekiwane zdarzenia
akcje - reakcje na zdarzenia
stany nast
ę
pne
stan pocz
ą
tkowy
stan ko
ń
cowy
5
Przykład diagramu maszyny stanowej
Np. kurs na uczelni
zgłoszony
zgłoszony
zgłoszony
zaakceptowany
zgłoszony
realizowany
zgłoszony
zakończony
6
Zachowanie klasy Seminarium podczas
rejestracji
2
7
Sekcje symbolu graficznego stanu
nazwa
czynności wewnętrzne
przejścia wewnętrzne
Sekcja dekompozycji
8
Diagram maszyny stanowej
Opisuje zachowanie obiektów jednej klasy.
Wszystkie instancje klasy maj
ą
takie same
zachowanie - "dziel
ą
" diagram stanów. Ka
ż
dy obiekt
jest w swoim stanie ale jest niezale
ż
ny od innych
obiektów.
Ze zdarzeniami mog
ą
by
ć
zwi
ą
zane akcje,
zapisywane na kraw
ę
dziach diagramu stanu po
/
,
mog
ą
tak
ż
e reprezentowa
ć
wewn
ę
trzne operacje
steruj
ą
ce np. ustawienie atrybutów, generowanie
zdarze
ń
.
zdarzenie/ akcja
9
Słowa kluczowe opisujące zdarzenia
entry
identyfikuje czynno
ść
wykonywan
ą
przy wej
ś
ciu obiektu do stanu (jedn
ą
)
do identyfikuje czynno
ść
wykonywana w
sposób ci
ą
gły na obiekcie znajduj
ą
cym si
ę
w
danym stanie, mo
ż
na okre
ś
li
ć
kilka takich
czynno
ś
ci (niezale
ż
nie wykonywanych),
czynno
ś
ci te s
ą
wykonywane
po
czynno
ś
ci
entry
exit identyfikuje czynno
ść
wykonywan
ą
przy
wyj
ś
ciu ze stanu (jedn
ą
)
10
przejścia wewnętrzne
zdarzenie/operacja
okre
ś
laj
ą
czynno
ś
ci
wykonywane przez obiekt b
ę
d
ą
cy w stanie
pod wpływem
zdarzenia
Ustaw_godz
do/ wyswielt_godz
inc/ inkrementuj_godz
11
Klasyfikacja stanów
proste
zło
ż
one
stan zło
ż
ony
zawiera maszyn
ę
stanow
ą
lub
jest podzielony na obszary współbie
ż
ne
(zawiera podstany)
12
Generalizacja stanów (relacja or )
Stan zawiera maszyn
ę
stanow
ą
Luz
wstecz
Pierw.
Drugi
Trzeci
automatyczna skrzynia biegów
Do_przodu
wsteczny
Luz
L
F
wyżej
wyżej
niżej
niżej
stop
3
13
Generalizacja stanów
Pozwala na opis na wysokim poziomie a nast
ę
pnie na
uszczegóławianie na coraz ni
ż
szych poziomach.
Tworzona jest struktura hierarchiczna z dziedziczeniem
wspólnego zachowania i struktury.
Stan mo
ż
e mie
ć
diagram maszyny stanowej, który
dziedziczy przej
ś
cia superstanu. Przej
ś
cie, akcja
superstanu dotyczy wszystkich jego podstanów (chyba,
ż
e zostanie przysłoni
ę
te przez przej
ś
cie w podstanie).
Wybór "L" w dowolnym podstanie "do przodu" powoduje
przej
ś
cie do stanu "luz". Wybór "F" powoduje przej
ś
cie
do stanu "pierwszy". Zdarzenie "stop" w dowolnym
podstanie "do przodu" powoduje przej
ś
cie do stanu
"pierwszy".
14
Notacja graficzna
W zło
ż
onych diagramach stanów diagramy
przej
ść
podstanów mo
ż
na rysowa
ć
na
oddzielnych diagramach.
Luz
wstecz
automatyczna skrzynia biegów
Do_przodu
wsteczny
Luz
L
F
15
Pełny diagram stanów dla klasy
Seminarium
16
Kompozycja – agregacja stanów
Pozwala na podział na cz
ęś
ci składowe z
ograniczon
ą
interakcj
ą
mi
ę
dzy nimi.
Jest równowa
ż
ne współbie
ż
no
ś
ci stanów.
Ka
ż
dy komponent wykonuje przej
ś
cia
równolegle z pozostałymi (równolegle
działaj
ą
„testowanie” i „wykonywanie zlece
ń
”
na slajdzie nast
ę
pnym).
17
Przykład agregacji stanów
praca
testowanie
Wykonywanie
zleceń
test
Samotest.
czeka
wykonuje
komenda
[continue]
[stop]
18
Mechanizm historii
Pozwala na
pami
ę
tanie stanu
ostatnio
odwiedzonego w
podstanie i
wej
ś
cie do niego
przy kolejnym
„wej
ś
ciu” do stanu
zło
ż
onego.
H
A
B
C
X
Y
D
In
Out
4
19
Przykład maszyny stanowej z historią
Zamknięcie drzwi
Pranie
Płukanie
Suszenie
H
Czekaj
Otwarcie drzwi
20
Zadanie -1
Poni
ż
ej podano diagram zmian stanów dla pewnej
klasy. Podaj jakie czynno
ś
ci b
ę
d
ą
kolejno wykonane
przez obiekt tej klasy dla nast
ę
puj
ą
cej sekwencji
zdarze
ń
:
utworzenie obiektu,
E1,
E3,
E1,
E3.
Uzasadnij swoje rozwi
ą
zanie.
21
entry/akcja1
exit/akcja2
do/akcja3
E3/akcja6
stan1
stan2
E1/akcja4
E2/akcja5
entry/akcja7
exit/akcja8
do/akcja9
E3/akcja10
E1/akcja4