background image

 

 

1

Diagram maszyny stanów

Diagram maszyny stanów

background image

 

 

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

background image

 

 

3

Podstawowe określenia

background image

 

 

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)

background image

 

 

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 

background image

 

 

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;

background image

 

 

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

background image

 

 

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

background image

 

 

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 

background image

 

 

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). 

background image

 

 

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 

background image

 

 

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ść) 

background image

 

 

13

Stan złożony 

sekwencyjny

background image

 

 

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.

background image

 

 

15

Maszyna stanów dla klasy Samochód 

zbudowana w oparciu o stany proste

background image

 

 

16

Maszyna stanów dla klasy Samochód 

ze stanem złożonym sekwencyjnym w 

notacji UML

background image

 

 

17

Stan złożony 

współbieżny

background image

 

 

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

 

background image

 

 

19

Współbieżność w ramach 

jednego obiektu

background image

 

 

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

background image

 

 

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

background image

 

 

22

Sygnał, przejście, czynność

background image

 

 

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)

background image

 

 

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

background image

 

 

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

background image

 

 

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

background image

 

 

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 

background image

 

 

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ł

background image

 

 

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

”. 

background image

 

 

30

Złożone elementy stanów i 

przejść

background image

 

 

31

Przykłady diagramów 

stanu

background image

 

 

32

Ilustracja odwołania do innego stanu

background image

 

 

33

 Diagram stanów typu "historia życia obiektu" dla 

klasy Urządzenie

background image

 

 

34

Diagramy maszyny stanów 

logowania się do sieciowego systemu bankowego

 

background image

 

 

35

Przykład obiektu klasy ”Konto Bankowe”

background image

 

 

36

Diagramy maszyny stanów

background image

 

 

37

Literatura

Literatura

 G.Booch, J.Rumbaugh, I.Jacobson – „UML 
przewodnik użytkownika”,
 J.Schmuller– „UML dla każdego”,


Document Outline