• Nie Znaleziono Wyników

Diagram stanów

N/A
N/A
Protected

Academic year: 2021

Share "Diagram stanów"

Copied!
45
0
0

Pełen tekst

(1)

Diagram stanów

Halina Tańska

(2)

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.

(3)

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.

(4)

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.

(5)

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.

(6)

Diagram stanów

Diagramy stanów mogą być związane z:

– obiektami – klasami

– przypadkami użycia – całymi systemami

(7)

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.

(8)

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)

(9)

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.

(10)

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.

(11)

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.

(12)

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

(13)

Ikona stanu

Nazwa

Zmienne

Czynności entry

do exit

(14)

Semestr koniecSemestru Sesja

[uregulowaneOpłaty]/rozpocznijSesję

Stany obiektu Student

(15)

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)

(16)

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.

(17)

Faksowanie

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

entry/wpiszNumerFaksuAdresata exit/zakończTransmisję

do/dodajZnacznikDaty do/dodajZnacznikCzasu

do/dodajWłasnyNumerTelefoniczny 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

(18)

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.

(19)

Włączanie Działanie Wyłączenie Wyłącz

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.

(20)

Włączanie Działanie Wyłączenie Wyłącz

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ędzanie

Monitora

[czasMinął] Uderzenie klawisza lub poruszenie myszą

(21)

Podstany sekwencyjne

Oczekiwanie na działanie użytkownika

Rejestrowanie działania użytkownika

Wizualizacja działania użytkownika Działanie

Działanie użytkownika

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

(22)

Podstany współbieżne

Oczekiwanie na działanie użytkownika

Rejestrowanie działania użytkownika

Wizualizacja działania użytkownika Działanie

Działanie użytkownika

Podstany współbieżna występują równolegle w tym samym czasie.

Współbieżność przedstawiamy na diagramie za pomocą linii przerywanej.

Śledzenie zegara systemowego

Uaktualnianie obrazu

[minąłWyznaczonyCzas]

(23)

Stan obiektu

Złożone elementy stanu obiektu obejmują

akcje zachodzące w konkretnym stanie.

(24)

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

(25)

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.

(26)

Podstany

Podstan (sub state/composite state) to stany

zagnieżdżone w innym stanie.

(27)

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.

(28)

Przejście między stanami

Przejście między stanami zawiera:

– zdarzenie uruchamiające (trigger) – warunek dozoru (guard)

– akcja (effect)

(29)

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.

(30)

Przejście między stanami

Przejście automatyczne

Przejście zwrotne

(31)

Zdarzenie i akcja

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

Akcja (effect) to niepodzielna czynność przy

przejściu między stanami obiektu.

(32)

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.

(33)

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.

(34)

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.

(35)

Rozwidlenie/Złączenie

(36)

Punkt synchronizacji

Punkt synchronizacji

wskazuje miejsce w

którym współbieżne

strumienie zostaną

zsynchronizowane.

(37)

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.

(38)

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.

(39)

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

(40)

stm złóż zamów ienie

początek

Spraw dzanie

Oczekiw anie

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]

(41)

stm Samochód

Jazda do przodu na 1- szym biegu

Samochod zatrzymany

Jazda do przodu na 2-

gim biegu Jazda 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

(42)

stm rej estruj poj azd

urządzenie niesprzedane

urządzenie sprzedane

Initial Final

kupno urządzenia przez klienta

zwrot urządzenia przez klienta

(43)

stm rej estruj poj azd

Wprow adzanie hasla + entry / ustaw echo na gwiazdke + entry / zeruj haslo

+ exit / ustaw normalne echo + do / obsluz znak(do) + do / zeruj znak + do / wyswietl pomoc

(44)

Diagram stanów

(45)

Diagram stanów - Ćwiczenie

Stwórz diagram maszyny stanów dla

dowolnego obiektu z diagramu obiektów.

Cytaty

Powiązane dokumenty

Not returning the book in time makes the necessary to pay the penalty for each day of the retention copy, the penalty shall be calculated in time return the book.. If the

TransportMean IsTransportability(shipment) – is it possible to carry this shipment by this transport mean CityPlan Time(start, end, mean) – returns the time needed to reach the goal

Workstations (in the number 15) are connected to the server (Xeon 3400, 8GB RAM) through a local area network (Ethernet), while the readings of counters are transferred from portable

• Dla spraw prowadzonych przez kancelarię mają być pamiętane informacje takie jak: data rozpoczęcia i data zakończenia sprawy, czego dotyczyła, czy zakończyła się sukcesem,

– Tożsamość obiektu, która odróżnia go od innych obiektów i jest niezależna od wartości jego atrybutów, od powiązań z innymi obiektami, od lokalizacji bytu w

Aktor w diagramie komunikacji inicjuje przepływ komunikatów oraz odbiera. komunikaty od obiektów z

•Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu.. •Diagram czynności przedstawia sekwencyjne lub współbieżne kroki

• abstrakcyjna klasa (abstract class) (nazwa klasy napisana kursywą) – klasa nie może mieć bezpośredniego egzemplarza. • elementy statyczne (static elements) – atrybuty