Wyklad IO 4


Inżynieria oprogramowania
Projektowanie systemów informatycznych
Dr inż. Lucjan Miękina
upel.agh.edu.pl/wimir/login/
Katedra Robotyki i Mechatroniki
April 13, 2014
1/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej
Diagramy stanów (state machine diagram) służą do modelowania dynamicznego
aspektu pojedynczych klas lub innego rodzaju obiektów (przypadków użycia, interakcji
lub całego systemu).
Diagramy te ukazują sekwencję stanów jakie przyjmuje obiekt, zdarzenia (events)
powodujące zmianę stanu i akcje (actions) wynikające ze zmiany stanu.
Diagram stanów jest graficznym przedstawieniem tzw. maszyny stanowej, składającej
się ze:
stanów, w jakich mogą się znajdować wybrane obiekty systemu lub interakcje,
przejść między stanami, wywołanych zdarzeniami zewnętrznymi, po spełnieniu
określonych warunków.
2/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - stan
Stan
Stan (state) jest to okoliczność lub sytuacja, w jakiej się znajduje obiekt w czasie
swego cyklu życia, kiedy spełnia pewien warunek, wykonuje czynność lub czeka na
zdarzenie.
Stany dzieli się na:
proste (simple)  nie zawierają podstanów ani obszarów współbieżnych,
złożone (composite)  zawierają podmaszynę stanową (dwa lub więcej stanów 
zwanych podstanami  połączonych przejściami) albo dwa lub więcej obszarów
współbieżnych (wtedy zakończenie stanu wymaga zakończenia wszystkich jego
współbieżnych wątków),
podstany (substate)  stany występujące w maszynie stanowej stanu złożonego.
Istnieją również pseudostany  symbole stosowane do definiowania złożonych układów
przejść między stanami, a nie spełniające definicji stanu. Należą tu: stan początkowy i
końcowy, rozwidlenie i scalenie, punkt węzłowy i decyzyjny, punkt wejścia i wyjścia.
3/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - stan
Stan posiada trzy wydzielone fazy:
entry  wykonywana automatycznie
w momencie wejścia do stanu (tylko
1 operacja),
do  wykonywana w sposób ciągły
w trakcie trwania stanu, od
momentu zakończenia operacji
zdefiniowanej jako entry; można
zdefiniować wiele takich równolegle
wykonujących się operacji,
exit  wykonywana automatycznie
w momencie wyjścia ze stanu (tylko
1 operacja).
4/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - przejścia
Przejście
Przejście (transition) jest to relacja między dwoma stanami wskazująca, że obiekt
znajdujący się w pierwszym stanie wykona pewne akcje i przejdzie do drugiego stanu,
ilekroć zajdzie określone zdarzenie i będą spełnione określone warunki.
Specyfikacja przejścia składa się z:
zdarzenia, które inicjuje proces przejścia (wymagane),
dozoru (guard condition), będącego warunkiem logicznym, którego spełnienie
pozwala na zmianę stanu,
efektu, który jest operacją wykonywaną po zmianie stanu.
Przykład przedstawia przejście proste (zachodzące między dwoma różnymi stanami) i
przejście zwrotne (osiągające ten sam stan).
Dla przejścia prostego wyspecyfikowano wszystkie parametry: zdarzenie Zdarz1, dozór
Doz1 i efekt Ef1. Format tej specyfikacji przewiduje podanie nazwy zdarzenia,
następnie dozoru w nawiasach kwadratowych, a nazwy efektu po znaku ukośnika  / .
5/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - zdarzenia
Zdarzenie
Zdarzenie (event) jest bodzcem, który może powodować zmianę stanu, o ile jest
spełniony warunek dozoru.
Egzemplarze zdarzeń są generowane jako rezultat pewnej akcji, wykonanej wewnątrz
systemu (internal events) lub w jego otoczeniu (external events).
Z obsługą zdarzeń związane są następujące pojęcia:
Zdarzenie jest przekazywane do jednego lub więcej zarejestrowanych odbiorców (klientów)
celem umożliwienia reakcji na nie;
Zdarzenie jest odebrane (received) kiedy zostaje umieszczone w kolejce zdarzeń odbiorcy/ów;
Zdarzenie jest wysłane (dispatched) kiedy jest pobrane z kolejki zdarzeń odbiorcy i
dostarczone do maszyny stanowej w celu przetworzenia. W tym momencie staje się bieżącym
zdarzeniem (current event);
Zdarzenie jest zakończone (consumed) po zakończeniu przetwarzania i przestaje istnieć (nie
jest dostępne).
UML definiuje pięć kategorii zdarzeń:
sygnał (signal) - asynchroniczny bodziec przesyłany między obiektami;
wywołania (invoking, call event), wywołanie przez obiekt operacji innego obiektu, który ma
związek z maszyną stanową; wykonywane synchronicznie;
czasowe (time-out), występujące po upływie określonego czasu (after);
zmiany stanu (state change), występujące w określonym momencie (when);
odroczone (deferred), nieobsługiwane w ramach danego stanu, a jedynie dopisane do kolejki
zdarzeń odroczonych; poszczególne zdarzenia z tej kolejki są przetwarzane w ramach innych
stanów, które ich nie odraczają.
6/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - stany złożone: przedstawienie jawne
Stany złożone zawierają podmaszynę stanową lub obszary współbieżne. Stan złożony
może być jawnie przedstawiony  wtedy pokazane są wszystkie podstany i przejścia
między nimi.
Przykład takiego podejścia przedstawiono na rysunku poniżej.
7/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - stany złożone: przedstawienie hierarchiczne
Alternatywnie można ukryć strukturę stanu złożonego, podając na diagramie tylko
jego nazwę i umieszczając symbol złożoności " wewnątrz symbolu stanu; wymaga to
stworzenia odrębnego diagramu dla stanu złożonego.
Przykład takiego podejścia przedstawiono na rysunku niżej.
Natomiast diagram podmaszyny stanowej, związany z ukrytym stanem złożonym
wygląda tak:
8/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - punkty wejścia i wyjścia
Normalnie wejście do podmaszyny stanowej odbywa się przez jej stan początkowy, a
wyjście przez jej stan końcowy. Można jednak zdefiniować specjalne punkty wejścia i
wyjścia, jeśli istnieje potrzeba ominięcia podstawowego mechanizmu. Dodatkowe
punkty wejścia definiuje się symbolem okręgu z nazwą, a punkty wyjścia przy użyciu
okręgu ze znakiem X w środku.
Na poniższym rysunku przedstawiono podmaszynę stanową Przetwarzanie ze
zdefiniowanym punktem wejścia Bez inicjalizacji, służącym do ominięcia stanu
Inicjalizacja. Dla tej podmaszyny zdefiniowano również punkt wyjścia Błąd odczytu,
który posłuży do awaryjnego opuszczenia podmaszyny po wystąpieniu błędu odczytu.
9/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - punkty wejścia i wyjścia
Na rysunku przedstawiono diagram, w którym użyto punktów wejścia i wyjścia. Z
punktem wejścia Bez inicjalizacji jest skojarzone przejście opatrzone dozorem
Następny, co pozwala ominąć inicjalizację dla kolejnych iteracji przetwarzania. Z
punktu Błąd odczytu odbywa się przejście do stanu Raportowanie błędów,
przyjmowanego w sytuacji błędnego przetwarzania.
10/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - punkty węzłowe i obszary współbieżne
Punkt węzłowy (junction) jest pseudostanem, który pozwala połączyć wiele przejść
dochodzących do niego i rozprowadzić wiele przejść wychodzących do innych stanów.
Każde z tych przejść może posiadać dozór, warunkujący jego aktywność.
Na rysunku przedstawiono punkt węzłowy Węzeł, który grupuje przejścia od dwu
stanów (Odebrano wiadomość tekstową i Odebrano wiadomość multimedialną) i
rozdziela przejścia do trzech stanów (Wyświetlanie tekstowe, Wyświetlanie zdjęcia i
Wyświetlanie filmu), stosownie do zawartości odebranej wiadomości.
11/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - punkty węzłowe i obszary współbieżne
Stan Wyświetlanie filmu jest przykładem stanu złożonego, zawierającego trzy obszary
współbieżne, oddzielone liniami przerywanymi. Stany zawarte w obszarach
współbieżnych trwają równocześnie i niezależnie, nadto wszystkie muszą być
zakończone, by stan je zawierający mógł się zakończyć. Do rozwidlenia na
odpowiednią ilość przejść do obszarów współbieżnych zastosowano pseudostan typu
rozwidlenie (fork), który natychmiastowo (bez dozoru) rozwidla przejście. Do
pózniejszego scalenia użyto pseudostanu typu scalenie (join), który integruje przejścia,
zarazem synchronizując je.
12/1
Inżynieria Oprogramowania
Diagramy maszyny stanowej - historia
Pseudostan typu historia (history) jest
stosowany do zapamiętania stanu, jaki
występował w maszynie stanowej przed
przerwaniem jej działania. Po wznowie-
niu maszyna stanowa wejdzie w stan, jaki
występował w niej ostatnio.
Przykład z rysunku przedstawia stan Pro-
ces, złożony z pięciu podstanów i pseu-
dostanu reprezentującego historię. Jeśli
wystąpi zdarzenie evPauza, to obiekt
przejdzie do stanu Pauza, zapamiętując
ostatni podstan w pseudostanie Histo-
ria. Po ponownym włączeniu nastąpi
przejście do złożonego stanu Proces, za
pośrednictwem pseudostanu Historia, tym
samym odtwarzając ostatni stan obiektu.
13/1


Wyszukiwarka

Podobne podstrony:
Wyklad IO 7
Wyklad IO 1
Wyklad IO 3
wyklad io 1
Wyklad IO 2
io wyklad1
io wyklad4
io wyklad2
IO Wyklad 01a SSM i Rich Picture
io wyklad5
io wyklad5
IO Wyklad 01 Wprowadzenie
IO notatki z wykladow
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja
amd102 io pl09

więcej podobnych podstron