background image

 

 

Diagram stanów

Jeżeli system wchodzi w interakcję z 
użytkownikami lub z innym systemem 
wówczas tworzące go obiekty w wyniku tej 
interakcji zmieniają się. Chcąc modelować 
system, trzeba dysponować 

mechanizmem modelowania zmian

.

Jednym ze sposobów scharakteryzowania 
zmiany systemu jest stwierdzenie, że jego 

obiekty zmieniają stan w odpowiedzi 
na zdarzenia i interakcje

.

background image

 

 

Przykłady stanów

Kilka prostych przykładów zmian:

Po zmianie przełącznika światło zmienia swój stan z 

wyłączonego na włączone (lub odwrotnie).

Po naciśnięciu przycisku na pilocie do zdalnego sterowania 

telewizor zmieni stan, pokazując program innego kanału.

Po upływie odpowiedniego przedziału czasu pralka zmieni 

swój stan z Prania na Płukanie.

Tego rodzaju zmiany są pokazywane na diagramie 

stanów.

Diagram stanów prezentuje 

stany obiektu i 

przejścia między nimi od rozpoczynającego 

ciąg stanu początkowego po ostatni w 

kolejności stan końcowy

.

background image

 

 

Diagram stanów

Diagram stanów (state machine 

diagram

służy do 

modelowania 

dynamicznych 

aspektów systemu

.

Diagram stanów przedstawia 

maszynę 

stanów.

Diagram stanów przedstawia 

przepływ 

sterowania między 

stanami.

background image

 

 

Diagram stanów

Diagram stanów składa się z:

stanów zwykłych i złożonych

przejścia ze zdarzeniami i akcjami

Diagram stanów stosuje się do 
modelowania obiektów, których 
działania są najlepiej określane przez ciąg 
odpowiedzi na zdarzenia wywołane w ich 
otoczeniu.

background image

 

 

Diagram stanów

Diagramy stanów mogą być związane 

z:

obiektami

klasami

przypadkami użycia

całymi systemami

background image

 

 

Diagram stanów

Diagram przedstawia maszynę 
stanową z uwypukleniem przepływu 
sterowania między stanami
.

Maszyna stanowa

 to ciąg stanów 

przyjmowanych przez obiekt w 
odpowiedzi na zdarzenia 
zachodzące w czasie jego życia
.

background image

 

 

Diagram stanów

W diagramie stanów występują następujące 

symbole:

stany obiektu (state)

początek (initial)

koniec (final)

przejścia między stanami (transition)

zdarzenia (trigger)

akcje (effect)

historia (history)

rozwidlenie/złączenie (fork/join)

punkt synchronizacji (synch)

rozgałęzienie decyzyjne (decision)

background image

 

 

Stan obiektu

Stan obiektu to 

sytuacja, w której 

obiekt znajduje się w określonej chwili, 
kiedy spełnia jakiś warunek, wykonuje 
jakąś czynność lub czeka na jakieś 
zdarzenie

.

background image

 

 

Stan obiektu

Stan jest kolekcją powiązań obiektu z 
innymi obiektami i typami 
obiektowymi

Stan jest kolekcją egzemplarzy 
odwzorowań danego obiektu.

Stan jest kolekcją atrybutów i 
związków dotyczących danego 
obiektu.

background image

 

 

Stan obiektu

Przykładowy system z dwoma 
stanami obiektu:

Stan jest kolekcją egzemplarzy odwzorowań danego 
obiektu.

Stan jest kolekcją atrybutów i związków dotyczących 
danego obiektu.

Zwyczajowo nazwę stanu piszemy z wielkiej litery w formie 
rzeczowników odczasownikowych, np. Faksowanie, Wykręcanie 
numeru.

background image

 

 

Stan obiektu

Stany Osoby na 

podstawie tego, czy 

istnieje powiązanie 

pracuje w

Stany Osoby na 

podstawie tego, czy 

istnieje powiązanie 

posiada

Stany Osoby na 

podstawie daty 

urodzenia i bieżącej 

daty

Zatrudniony
Niezatrudniony 

Nie posiadający 
majątku
Właściciel 

Niemowlę
Dziecko
Nastolatek
Dorosły 

background image

 

 

Ikona stanu

Nazwa

Zmienne

Czynności

background image

 

 

Semestr

Sesja

koniecSemestru 
[uregulowaneOpłaty]/rozpocznij
Sesję

Stany obiektu Student

background image

 

 

Podawanie szczegółów w ikonie 
stanu

UML pozwala umieszczać na symbolach 

informacje szczegółowe: nazwę stanu, 

zmienne i czynności.

Zmienne stanu, np. liczniki i zegary, 

czasami bywają przydatne.

Czynności to zdarzenia i akcje. Najczęściej 

używane są trzy: 

entry

 (wejdź – określa, co 

się dzieje przy wejściu do stanu), 

exit

 (wyjdź 

– określa, co się dzieje przy wychodzeniu ze 

stanu) i 

do

 (wykonaj – określa, co się dzieje, 

gdy system pozostaje w danym stanie)

background image

 

 

Aparat faksowy - stany

Aparat faksowy jest przykładem obiektu, którego stan ma i 

zmienne i czynności. 

Gdy wysyłamy faks, tzn. aparat jest w stanie 

Faksowanie

notuje on datę i czas rozpoczęcia wysyłania (wartości 

zmiennych stanu „data” i „czas”) oraz własny numer 

telefoniczny i nazwisko/nazwę właściciela (wartości 

zmiennych stanu „numer telefonu” i „właściciel”). 

W stanie 

Faksowanie

 aparat wykonuje następujące 

czynności: dodawanie do faksu znacznika daty, znacznika 

czasu, numeru telefonu i nazwiska (lub nazwy) właściciela. 

Inne czynności to odczytywanie po kolei wszystkich 

faksowanych stron, podzielenie faksu na strony i wykonanie 

pełnej transmisji.

W stanie 

Bezczynnym

 aparat faksowy wyświetla na konsoli 

datę i czas.

background image

 

 

Faksowanie

Data = Data bieżąca                        
Czas = Czas rozpoczęcia 
faksowania Numer = Własny 
numer telef. aparatu Właściciel = 
Nazwisko właściciela

entry/wpiszNumerFaksuAdresat
a   exit/zakończTransmisję    
do/dodajZnacznikDaty  
do/dodajZnacznikCzasu 
do/dodajWłasnyNumerTelefonic
zny  do/dodajWłaściciela  
do/przeciągnijWszystkieStrony  
do/podzielNaStrony 

Bezczynny

Data = Data bieżąca                        
Czas = Czas bieżący                     
Numer = Własny numer telef. 
aparatu Właściciel = Nazwisko 
właściciela

entry/zakończFaksowanie 
exit/rozpocznijFaksowanie   
do/pokażDatę             
do/pokażCzas

background image

 

 

Przykład - graficzny interfejs 
użytkownika

GUI może znajdować się w trzech stanach:

Włączanie

Działanie

Wyłączanie

Po włączeniu PC następuje start systemu. Włączenie 

jest tu zdarzeniem uruchamiającym, które powoduje 

przejście w stan Wyłączanie, a start systemu jest 

akcją, która zostaje podjęta w wyniku tego zdarzenia.

W rezultacie wykonania wszystkich akcji stanu 

Włączanie następuje przejście w stan Działanie. Gdy 

chcemy wyłączyć komputer należy doprowadzić do 

zajścia zdarzenia uruchamiającego przejście w stan 

Wyłączenie.

background image

 

 

Włączanie

Działani
e

Wyłączeni
e

Wyłąc
z

Stany i przejścia graficznego interfejsu 
użytkownika

Na rys pokazane są: zdarzenie uruchamiające, akcje i przejścia 
bez zdarzenia uruchamiającego.

Na diagramie stanów GUI zostało pominięte wiele istotnych spraw 
m.in. Jeżeli pozostawimy włączony komputer lub siedzimy obok 
niego bezczynnie, włącza się wygaszacz ekranu oszczędzający 
monitor. Opisując to jako zmianę stanów można powiedzieć, że po 
upływie określonego czasu bez żadnego uderzenia w klawisze i bez 
żadnego poruszania myszą GUI przechodzi ze stanu Działanie do 
stanu Oszczędzanie Monitora.

background image

 

 

Włączanie

Działani
e

Wyłączeni
e

Wyłąc
z

Stany i przejścia graficznego interfejsu 
użytkownika ze stanem Oszczędzanie Monitora i 
warunkiem dozoru

Czas po którym następuje wyłączenie wygaszacza ekranu jest 
określany w Panelu sterowania Windows. Zwykle po 15 minutach. 
Każde uderzenie w klawisz lub ruch myszą powoduje przejście 
monitora w stan Działanie.

Ten 15-minutowy upływ czasu jest warunkiem dozoru – gdy zostanie 
spełniony, następuje przejście z jednego stanu w drugi.

Uwaga: warunek dozoru [czasMinął] jest wyrażeniem logicznym. 

Oszczędzani
e               
Monitora

[czasMiną
ł]

Uderzenie klawisza lub 
poruszenie myszą

background image

 

 

Podstany sekwencyjne 

Oczekiwani

e na 

działanie 

użytkownik

a

Rejestrowani

e działania 

użytkownika

Wizualizacj

a  działania 

użytkownik

a

Działanie

Działanie 
użytkownik
a

Podstany sekwencyjne występują kolejno – jeden po drugim. 
Porządkując podstany stanu Działanie GUI można wskazać 
następującą listę:

Oczekiwanie na działanie użytkownika

Rejestrowanie działania użytkownika

Wizualizacja działania użytkownika

background image

 

 

Podstany współbieżne

Oczekiwani

e na 

działanie 

użytkownik

a

Rejestrowani

e działania 

użytkownika

Wizualizacj

a  działania 

użytkownik

a

Działanie

Działanie 
użytkownik
a

Podstany współbieżna występują równolegle w tym samym czasie. 
Współbieżność przedstawiamy na diagramie za pomocą linii 
przerywanej. 

Śledzenie 

zegara 

systemowe

go

Uaktualnian

ie obrazu

[minąłWyznaczonyCzas]

background image

 

 

Stan obiektu

Złożone elementy stanu obiektu 
obejmują akcje zachodzące w 
konkretnym stanie.

background image

 

 

Stan obiektu

entry

 – gdy obiekt przyjmie dany stan 

zostanie wykonana akcja wejściowa

do

 – czynność, która jest wykonywana 

ciągle od zakończenia akcji wejściowej 
do rozpoczęcia akcji wyjściowej

exit

 – gdy obiekt opuści stan zostanie 

wykonana akcja wyjściowa

background image

 

 

Początek i koniec

Początek jest rozpoczęciem diagramu 
stanów. Od niego rozpoczyna się 
wędrówka zdarzeń i stanów obiektu.

Koniec jest zakończeniem działań 
obiektu.

background image

 

 

Podstany

Podstan (sub state/composite state) to 
stany zagnieżdżone w innym stanie.

background image

 

 

Przejście między stanami

Przejście to związek między dwoma 
stanami, wskazujący, że obiekt 
znajdujący się w pierwszy stanie 
wykona pewne akcje i przejdzie do 
drugiego stanu

za każdym razem kiedy zajdzie 
określone zdarzenie i będą spełnione 
odpowiednie warunki.

background image

 

 

Przejście między stanami

Przejście między stanami zawiera:

zdarzenie uruchamiające (trigger)

warunek dozoru (guard)

akcja (effect)

background image

 

 

Przejście między stanami

Zdarzenie uruchamiające

 jest 

wystąpieniem bodźca

, który może 

uruchomić przejście między 

stanami

Warunek dozoru

 to 

wyrażenie logiczne

 

obliczane jedynie zajściu zdarzenia

Akcja

 to 

wykonywalna procedura 

obliczeniowa

. Może to być wywołanie 

operacji na obiekcie, utworzenie / 
zniszczenie innego obiektu lub wysłanie 

komunikatu.

background image

 

 

background image

 

 

Przejście między stanami

Przejście automatyczne

Przejście zwrotne

background image

 

 

Zdarzenie i akcja

Zdarzenie (trigger) uruchamia 
przejście między stanami obiektu.

Akcja (effect) to niepodzielna czynność 
przy przejściu między stanami obiektu.

background image

 

 

Historia

Stan wznowienia        – bieżące 
zachowanie obiektu zależy od jego 
przeszłości. Definiuje zatem zbiór 
poprawnych stanów, przez które obiekt 
może przejść w czasie swojego życia.

Jest to punkt w którym system pamięta 
swój poprzedni krok.

background image

 

 

Historia

Podstan z historią pamięta do którego 
stanu przejść, jeżeli wcześniej ekstra 
zdarzenie przerwało normalną drogę 
przebiegu stanów obiektu.

background image

 

 

Rozwidlenie/Złączenie

Rozwidlenie (fork) rozdziela strumień 
działań na dwie współbieżne drogi 
postępowania.

Złączenie (join) łączy strumienie 
współbieżne do jednej pojedynczej 
drogi postępowania w diagramie 
stanów.

background image

 

 

Rozwidlenie/Złączenie

background image

 

 

Punkt synchronizacji

Punkt 
synchronizacji 
wskazuje miejsce 
w którym 
współbieżne 
strumienie 
zostaną 
zsynchronizowan
e.

background image

 

 

Rozgałęzienie decyzyjne

Rozgałęzienie decyzyjne opisuje ścieżki 
alternatywne zachowania systemu.
Do wyboru jednej ze ścieżek 
postępowania dochodzi na podstawie 
wartości pewnego wyrażenie 
logicznego.

background image

 

 

Diagram stanów

Diagramy stanów używa się do 

specyfikowania dynamiki 
poszczególnych obiektów.

Diagramy stanów ukazuje jak obiekt 

zmienia stany, definiując jego 
zachowanie, w czasie życia systemu.

background image

 

 

Rodzaje akcji na diagramach 
stanów

Akcja

Opis

Składnia

przypisanie przypisanie wartości do 

zmiennej

zmienna:= wyrażenie

wołanie

Wywołanie operacji na obiekcie 

z oczekiwaniem na jej 

zakończenie; operacja może 

zwrócić wartość

nazwa_op (arg, …)

utwórz 

nowy

utworzenie nowego obiektu

create nazwa_klasy (arg, 

…)

usuń

usunięcie obiektu

destroy()

wyślij

utworzenie wystąpienia 

sygnału i wysłania go do 

obiektu (obiektów)

nazwa_sygnału (arg, …)

zakończ

Samodestrukcja obiektu

terminate

background image

 

 

stm złóż zamówienie

początek

Sprawdzanie

Oczekiwanie

Wysyłka

Dostarczone

/pobierz pierwsza pozycje

[wszystkie pozycje
sprawdzone i niektórych
pozycji brak w magazynie]

pobierz nastepna
pozycje [nie
wszystkie pozycje
sprawdzone]

[wszystkie pozycje sprawdzone i dostepne]

pozycja otrzymana
[wszystkie pozycje
dostepne]

dostarczone

pozycja otrzymana
[niektórych pozycji
brak w magazynie]

background image

 

 

stm Samochód

J azda do przodu na 1-

szym biegu

Samochod zatrzymany

J azda do przodu na 2-

gim biegu

J azda do tylu

wybrano następny bieg

wybrano poprzedni bieg

naciśnięto hamulec

wybrano wsteczny bieg

naciśnięto hamulec

wybrano 1-szy bieg

naciśnięto hamulec

background image

 

 

stm rejestruj pojazd

urządzenie 

niesprzedane

urządzenie sprzedane

Initial

Final

kupno urządzenia przez klienta

zwrot urządzenia przez klienta

background image

 

 

stm rejestruj pojazd

Wprowadzanie hasla

+  entry / ustaw echo na gwiazdke
+  entry / zeruj haslo
+  exit / ustaw normalne echo
+  do / obsluz znak(do)
+  do / zeruj znak
+  do / wyswietl pomoc

background image

 

 

Diagram stanów

background image

 

 

Diagram stanów - Ćwiczenie

Stwórz diagram maszyny stanów dla 
dowolnego obiektu z diagramu 
obiektów.


Document Outline