background image

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

background image

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

background image

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

background image

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