Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 1/44 Wykład 8 Model dynamiczny (2) Diagramy stanów dr inż. Ewa Stemposz

Podobne prezentacje


Prezentacja na temat: "E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 1/44 Wykład 8 Model dynamiczny (2) Diagramy stanów dr inż. Ewa Stemposz"— Zapis prezentacji:

1 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 1/44 Wykład 8 Model dynamiczny (2) Diagramy stanów dr inż. Ewa Stemposz

2 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 2/44 Zagadnienia Diagramy stanów:  Maszyna stanowa  Notacja BNF; Prezentowanie diagramu stanów  Stan  Zdarzenie  Przejście  Stan złożony sekwencyjny  Stan złożony współbieżny

3 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 3/44 Maszyna stanowa Obiekt, w świetle swoich własności (unikalna tożsamość, stan i zachowanie) może być traktowany jako automat o skończonej liczbie stanów, czyli jako maszyna, która może znajdować się w danym momencie w jednym z wyróżnionych stanów, a także może oddziaływać na otoczenie i vice-versa. Maszyna stanowa jest grafem skierowanym, reprezentowanym za pomocą notacji diagramów stanów. Wierzchołki grafu stanowią stany obiektu/obiektów, a łuki opisują przejścia między stanami. Przejście między stanami jest odpowiedzią na zdarzenie. Często, maszyna stanowa jest przypisana do jednej klasy i specyfikuje reakcje obiektów tej klasy na zdarzenia, które do nich przychodzą (najczęściej są to komunikaty), stanowiąc w ten sposób model historii życia obiektów klasy (opis wszystkich możliwych stanów i przejść). Ten rodzaj maszyny stanowej, nazywa się protokołową maszyną stanową. Z kolei, maszyna stanowa zachowania – dotyczy zmian stanów nie jednego lecz wielu obiektów w aspekcie pewnego fragmentu zachowania systemu. Stan 1 Stan 2 Stan 3 Stan n

4 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 4/44 Adaptacja notacji BNF =struktura danych po lewej stronie symbolu = składa się z elementów wyspecyfikowanych po stronie prawej +odpowiada słowu “i”; wykorzystywane do agregowania elementów [ … ]definiowana struktura zawiera tylko jeden spośród elementów zawartych w nawiasach [ ]; kolejne elementy są oddzielane przecinkami ( … )elementy zawarte w nawiasach ( ) są opcjonalne, co oznacza, że mają 0..1 wystąpień { … }definiowana struktura zawiera od 0..* wystąpień elementu zawartego w nawiasach { }; kolejne wystąpienia są oddzielane przecinkami * … *informacje zawarte między * * są traktowane jak komentarz, a więc nie stanowią elementów składowych definiowanej struktury SymbolZnaczenie

5 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 5/44 Prezentowanie diagramów stanów sm Nazwa diagramu sm – state machine sm Nazwa diagramu {protocol} protokołowa maszyna stanowa = ( ) + + { }

6 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 6/44 Stan obiektu (1) Stan obiektu Stan obiektu: − w podstawowym znaczeniu − opisywany jest przez zestaw wartości wszystkich (?) atrybutów oraz wszystkich (?) powiązań danego obiektu z innymi obiektami w pewnej chwili czasowej. Obiekt pozostaje w danym stanie do momentu wystąpienia zdarzenia, które spowoduje zmianę tego stanu na inny. Innymi słowy, stan to “zdjęcie migawkowe” jednej sytuacji, w której znalazł się obiekt. Często abstrahuje się od pewnych składników stanu, lub “zlepia się” wiele stanów w jeden (w oparciu o „podobieństwo jakościowe” atrybutów czy powiązań). Alternatywne definicje stanu obiektu:  stan − to okres czasu, w którym obiekt oczekuje na zdarzenie,  stan − to okres czasu, w którym obiekt przetwarza.

7 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 7/44 Stan obiektu (2) Notacja: Stan jest oznaczany za pomocą prostokąta z zaokrąglanymi rogami. Stan może mieć nazwę, ale często jest charakteryzowany jedynie poprzez wewnętrzne operacje czy zdarzenia. Nazwa stanu Ile obiekt może mieć stanów? Nawet dla małego obiektu liczba stanów może być bardzo duża, zależna od liczby możliwych wartości, które mogą przyjmować atrybuty i powiązania obiektu. Ile stanów może mieć cały system? Bardzo, bardzo dużo: iloczyn liczby wszystkich możliwych stanów dla każdej maszyny stanów przez liczbę wszystkich obiektów wszystkich klas. Nazwa stanu Alternatywna, tzw. zakładkowa, notacja dla stanu

8 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 8/44 Sekcje stanu (1) Nazwa stanu entry/akcja1/akcja2/… do/aktywność1/aktywność2/… exit/akcja1/akcja2/... akcja − operacja, której nie można przerwać (atomowa) lista akcji − akcja1/akcja2/… − traktowana jest, jak pojedyncza akcja, aktywność (czynność) − operacja, którą można przerwać, lista aktywności − podobnie, jak lista akcji, entry − słowo kluczowe specyfikujące operacje, zawsze wykonywane na wejściu do stanu (rodzaj setup’u), exit − operacje zawsze wykonywane na wyjściu (rodzaj porządkowania “po”), do − operacje wykonywane w trakcie. Stan może być podzielony na 4 sekcje – każda z sekcji jest opcjonalna: Stan z dwiema sekcjami: nazwy i operacji wewnętrznych: Sekcja nazwy Sekcja operacji wewnętrznych Sekcja zdarzeń wewnętrznych Sekcja dekompozycji pokazuje strukturę wewnętrzną stanu złożonego (stany, regiony, przejścia, itd.)

9 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 9/44 Sekcje stanu (2); stan złożony wrzucono monetę (wartość) /dodaj do bilansu Zliczanie pieniędzy Stan z dwiema sekcjami: nazwy i zdarzeń wewnętrznych: Stan złożony z ukrytą strukturą wewnętrzną: Nazwa stanu złożonego ikona symbolizująca ukrycie struktury stanu złożonego

10 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 10/44 Zdarzenie (1) Np. zdarzeniem jest naciśnięcie przez użytkownika systemu lewego klawisza myszy, lub odlot samolotu w dniu 20 stycznia 2007 o godz. 19:00 z Warszawy do Paryża, gdy system zajmuje się rejestracją lotów. następuje w jednym punkcie czasowym (z perspektywy naszej percepcji czasu), warte jest analizowania z punktu widzenia celów projektowanego systemu. Wszystko, co wywołuje pewne skutki w systemie, może być modelowane jako zdarzenie. Samo zdarzenie nie trwa w czasie, ale fakt zaistnienia zdarzenia jest rejestrowany i trwa aż do momentu, gdy jakiś podmiot zdarzenie “skonsumuje”; innymi słowy zdarzenie nie musi być obsłużone od razu w momencie wystąpienia − może być wpisane na listę zdarzeń oczekujących na obsługę. Zdarzenie:

11 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 11/44 Zdarzenie (2) Zdarzenia mogą być: uporządkowane w czasie (synchroniczne), np. odlot samolotu z Warszawy i przylot tego samolotu do Paryża, współbieżne, np. naciśnięcie klawisza myszy i odlot samolotu są zdarzeniami wzajemnie niezależnymi i mogą być rozpatrywane jako współbieżne. Zdarzenie w sensie opisu pewnego zjawiska jest klasyfikatorem i jako klasyfikator może posiadać atrybuty, np. zdarzenie odlot samolotu może mieć datę i godz. odlotu jako swoje atrybuty, co zapisujemy następująco: odlot samolotu (data, godz.). Wystąpienie zdarzenia jest odlotem z ustalonymi, konkretnymi wartościami obu atrybutów.

12 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 12/44 Rodzaje zdarzeń Rodzaj zdarzenia wołanie (ang. call event) OpisSkładnia zmiana (ang. change event) sygnał (ang. signal) czas (ang. time event) otrzymanie przez obiekt synchronicznego żądania wykonania operacji − najbardziej podstawowy rodzaj zdarzenia spełnienie warunku typu Boolean, np. when (x =10); zdarzenie typu zmiana jest użyteczne np. do modelowania sytuacji, gdy obiekt zmienia stan po otrzymaniu odpowiedzi na wysłany przez siebie komunikat otrzymania przez obiekt asynchronicznego żądania wykonania operacji; użyteczne do modelowania zdarzeń przychodzących z zewnętrza systemu upłynięcie czasu określonego w sposób bezwzględny lub względny, np. after (5 sec.) lub after (1 miesiąc od dnia ) op (a : T) when (wyrażenie) nazwa_syg (a : T) after (czas)

13 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 13/44 Zdarzenie typu sygnał Obsługa zdarzenia typu zmiana jest kosztowna obliczeniowo, ponieważ wymaga ciągłej ewaluacji warunku. Wadą tego typu zdarzeń jest też przesłonięcie związku typu przyczyna- skutek, czyli przesłonięcie tego, co wywołało spełnienie warunku − eksponowany jest tu jedynie sam warunek. Dlatego zdarzenia typu zmiana powinny być wykorzystywane tylko wtedy, gdy inne sposoby wydają się nienaturalne. Sygnały mogą być reprezentowane na diagramach podobnie jak klasy, ale oznaczone stereotypem « sygnał » ( « signal » ); parametry sygnału są tu deklarowane jako atrybuty. Między sygnałami mogą występować związki generalizacji, co oznacza, że mogą dziedziczyć parametry po innych sygnałach oraz “odpalać” przejścia zgodnie ze specyfikacją sygnałów, po których dziedziczą. Przykłady zdarzeń typu sygnał: − odlot samolotu (linia lotnicza, nr lotu, miasto) − naciśnięcie klawisza myszy (klawisz, lokacja kursora) − wprowadzenie ciągu znaków (tekst) − podniesienie słuchawki telefonu − wybranie cyfry numeru telefonu (cyfra) − wkroczenie obrotów silnika w niebezpieczną strefę

14 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 14/44 Konkretny sygnał, z ustalonymi wartościami atrybutów jest wystąpieniem odpowiedniego klasyfikatora sygnał. Generalizacja sygnałów Zdarzenia związane z akcjami użytkownika: «sygnał» użycie_urz_wejściowego urządzenie «sygnał» naciśnięcie_klawisza_myszy «sygnał» puszczenie_klawisza_myszy «sygnał» sterujący «sygnał» znakowy «sygnał» spacja «sygnał» alfanumeryczny «sygnał» interpunkcyjny sygnały konkretne zdarzenie «sygnał» klik_klawisza_myszy lokalizacja «sygnał» naciśnięcie_klawisza_klawiatury kod_znaku «sygnał» czas sygnał abstrakcyjny

15 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 15/44 Przejście (1) Przejście: opisywane przez zdarzenie, które je wywołało, warunek (w postaci wyrażenia typu Boolean) oraz akcję/akcje, wykonywane przed ewentualną zmianą stanu. przejście zewnętrzne (ang. external transition) przejście wewnętrzne (ang. internal transition) samo-przejście (ang. selftransition) zdarzenie [warunek] /akcja Stan zdarzenie [warunek] /akcja Stan 1 Stan 2 przejście

16 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 16/44 Przejście (2) Dla samo-przejścia, w przeciwieństwie do przejścia wewnętrznego, przy wychodzeniu ze stanu wykonywane są wszystkie akcje wyspecyfikowane po słowie kluczowym exit, podobnie − przy ponownym wchodzeniu do stanu − są wykonywane akcje specyfikowane po słowie kluczowym entry. przejście automatyczne (ang. completion transition) [warunek] /akcja Stan 1 Stan 2 Przetwarzanie zostało zakończone − wszystkie operacje wyspecyfikowane po słowach kluczowych entry, exit i do zostały zakończone, co spowodowało zmianę stanu ze Stanu 1 na Stan 2. Warunek, występujący w etykiecie przejścia, może dotyczyć zarówno atrybutów maszyny stanowej, jak i argumentów zdarzenia, które odpaliło dane przejście. Warunek podlega oszacowaniu w momencie wystąpienia zdarzenia. Jeśli warunek przyjmie wartość TRUE − przejście będzie miało miejsce. Uwaga − warunek występujący w specyfikacji przejścia różni się od warunku w zdarzeniu typu zmiana − jest ewaluowany tylko jeden raz. Jedno zdarzenie może stanowić tryger dla więcej niż jednego przejścia − wtedy należy opatrzyć wszystkie przejścia odpalane przez dane zdarzenie wzajemnie wykluczającymi się warunkami (w ramach jednego wątku sterowania). Jeśli nie wszystkie możliwości zostały przykryte, zdarzenie zostanie zignorowane.

17 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 17/44 Przejście; przykłady otrzymanie zamówienia (suma) [suma > 100 zł.] przejścia zewnętrzne: otrzymanie zamówienia (suma) [suma < =100 zł.] Oczekiwanie Przetwarzanie zamówienia Zatwierdzenie kredytu Anulowanie zamówienia kredyt zatwierdzony/ licz debet () kredyt odrzucony entry/ ustaw echo na gwiazdkę/ haslo_zeruj() exit/ ustaw normalne echo znak/ obsłuż znak czyść/ haslo_zeruj() pomoc/ wyświetl pomoc Wprowadzanie hasła przejścia wewnętrzne:

18 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 18/44 Rodzaje akcji; przykłady powrót (ang. return) przypisanie (ang. assignment) wołanie (ang. call) nowy (ang. create) usuń (ang. destroy) wyślij (ang. send) Rodzaj akcjiOpisSkładnia zmienna := wyrażenie nazwa_op (arg, …) create nazwa_klasy (arg, …) destroy () nazwa_sygnału (arg, …) przypisanie wartości do zmiennej wywołanie operacji na obiekcie; czeka się na zakończenie operacji; może być zwracana wartość utworzenie nowego obiektu usunięcie obiektu utworzenie wystąpienia sygnału i wysłanie do obiektu/obiektów specyfikuje instrukcję powrotu return wartość_zwracana

19 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 19/44 Ograniczenie {final} zdarzenie {final} Stan 1 {final} Stan 2 Ograniczenie {final} oznacza, że byt, na który zostało to ograniczenie nałożone, nie może być przedefiniowywany.

20 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 20/44 Odraczanie zdarzeń Zdarzenie odroczone (ang. deferred event): zdarzenie odroczone to takie, które z założenia nie jest obsługiwane w ramach danego stanu lecz dopisywane do kolejki zdarzeń odroczonych, każdy stan może mieć zdefiniowany zbiór zdarzeń odroczonych, obsługa zdarzenia odroczonego będzie przeprowadzona dopiero wtedy, gdy zostanie uaktywniony stan, który go nie odracza, jeśli maszyna stanowa nie zawiera stanu obsługującego zdarzenie odroczone, to zdarzenie takie zostanie zgubione (zignorowane). zdarzenie/deferr Notacja: z0 z3 S2 z4 S3 z5 z2 z6 z2/deferr S1 z1 z0 z3 S2 z1 z4 S3 z5 z6 z2/deferr S1

21 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 21/44 Rodzaje wierzchołków w maszynie stanowej (1) Rodzaj wierzchołka Opis Notacja stan prosty (ang. simple state) stan nie posiadający substruktury stan złożony sekwencyjny (ang. sequential composite state) stan złożony z jednego lub więcej podstanów, z których tylko jeden jest aktywny, gdy aktywny jest stan złożony stan początkowy (ang. initial state) pseudostan; służy do oznaczenia punktu startowego maszyny stanowej stan końcowy (ang. final state) służy do oznaczenia punktu, w którym obsługa „otaczającego” go regionu (ang. enclosing region) została ukończona stan złożony współbieżny (ang. concurrent composite state) stan podzielony na co najmniej dwa ortogonalne regiony, które są jednocześnie aktywne, gdy aktywny jest stan złożony (jako całość)

22 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 22/44 Rodzaj wierzchołka Opis Notacja decyzja (ang. choice node) pseudostan; rozdziela jedno przejście na kilka alternatywnych opatrzonych warunkami złączenie (ang. merge node) rozwidlenie (ang. fork node) węzeł (ang. junction) pseudostan; łączy kilka przejść we i rozdziela je na kilka przejść wy; szczególnymi rodzajami węzła są wierzchołki powyżej scalenie (ang. join node) Rodzaje wierzchołków w maszynie stanowej (2) pseudostan; łączy kilka przejść alternatywnych w jedno przejście pseudostan; łączy kilka przejść współbieżnych w jedno przejście pseudostan; rozdziela jedno przejście na kilka przejść współbieżnych

23 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 23/44 Rodzaje wierzchołków w maszynie stanowej (3) Rodzaj wierzchołkaOpis punkt wejścia (ang. entry point) pseudostan; wykorzystywany do oznaczenia przejścia prowadzącego do wnętrza diagramu stanów lub stanu złożonego i umieszczany na jego granicy; może być nazwany i skojarzony z wewnętrznym stanem/podstanem punkt wyjścia (ang. exit point) Notacja alternatywna notacja dla punktu wejścia (via nazwa punktu wy) alternatywna notacja dla punktu wyjścia pseudostan; wykorzystywany do oznaczenia przejścia prowadzącego z wnętrza diagramu stanów lub stanu złożonego i umieszczany na jego granicy; może być nazwany i skojarzony z wewnętrznym stanem/podstanem (via nazwa punktu we)

24 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 24/44 Rodzaje wierzchołków w maszynie stanowej (4) Rodzaj wierzchołkaOpisNotacja zniszczenie (ang. termination) pseudostan; wierzchołek maszyny stanowej, w którym następuje zniszczenie obiektu płytkie wznowienie (ang. shallow history) pseudostan; wskazuje na ostatni podstan, w ramach stanu złożonego, który był aktywny przed ponowną aktywacją stanu złożonego (bez przechowywania informacji o podstanach danego podstanu); stan złożony może mieć tylko jeden wierzchołek tego typu; co najwyżej jedno przejście może łączyć wierzchołek typu płytkie wznowienie z wierzchołkiem domyślnym – jest to wykorzystywane w sytuacji, gdy stan złożony nie był ani razu uaktywniany przed wznowieniem H

25 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 25/44 Rodzaje wierzchołków w maszynie stanowej (5) Rodzaj wierzchołkaOpisNotacja głębokie wznowienie (ang. deep history) pseudostan; jak dla płytkiego wznowienia ale łącznie z przechowaniem informacji o podstanach aktywnego ostatnio podstanu H * akcja (ang. action) wykorzystywany dla reprezentowania akcji; o ile na diagramie występuje wierzchołek związany z odbiorem sygnału, wierzchołek akcja musi następować po nim Rejestruj datę odbiór sygnału (ang. signal receipt) wierzchołek związany z odbiorem sygnału; sygnał może posiadać parametry sygnał nadawanie sygnału (ang. signal sending) wierzchołek związany z nadawaniem sygnału; jak poprzednio, sygnał może posiadać parametry sygnał

26 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 26/44 Stany: początkowy, końcowy; punkty: wejścia, wyjścia S1S2 S1S2 [w1] [w2] S v3 S1S2 [w1] [w2] SS S1S2 [w1] [w2] S

27 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 27/44 Stan końcowy – ograniczenia Żadne przejście nie może prowadzić od symbolu stanu końcowego, stan końcowy nie może zawierać regionów, stan końcowy nie może mieć operacji wejściowych (specyfikowanych po słowie kluczowym entry), stan końcowy nie może mieć operacji wyjściowych (specyfikowanych po słowie kluczowym exit), stan końcowy nie może mieć operacji wewnętrznych (specyfikowanych po słowie kluczowym do), osiągnięcie stanu końcowego na najwyższym poziomie zagnieżdżenia implikuje wystąpienie operacji prowadzących do zniszczenia obiektu/obiektów. Lista ograniczeń obowiązujących dla stanu końcowego:

28 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 28/44 Protokołowa maszyna stanowa Protokołowa maszyna stanowa specyfikuje wszystkie zdarzenia (z rodzaju wołanie), możliwe i dopuszczalne dla wystąpień danego klasyfikatora. Klasyfikator może posiadać więcej niż jedną protokołową maszynę stanową, np. w sytuacji, gdy dana klasy dziedziczy po więcej niż jednej klasie i protokołowe maszyny stanowe tych klas są wzajemnie ortogonalne. Przejścia między stanami dla protokołowej maszyny stanowej są opisywane: Protokołowa maszyna stanowa jest wygodnym środkiem do definiowania cyklu życiowego obiektów, tzn. do określania wszystkich możliwych i dopuszczalnych przejść (ang. legal transitions) zdefiniowanych w kontekście danego klasyfikatora czy też do wyrażania protokołu wykorzystania fragmentu systemu. [warunek wstępny] operacja/ [warunek końcowy] S1 S2

29 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 29/44 Protokołowa maszyna stanowa; przykłady S1S2 [W1] op1/ [W2] S3S4 [W3] op1/ [W4] Operacja op1 może być wywołana dla obiektu znajdującego się w różnych stanach i z różnymi warunkami wstępnymi/końcowymi. Drzwi otwarte Drzwi zamknięte Drzwi zamknięte na klucz utwórz/ [jest miejsce] zamknij/ zamknij na klucz/ otwórz kluczem/ otwórz/ sm Drzwi {protocol}

30 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 30/44 Protokołowa maszyna stanowa; własności Własności protokołowej maszyny stanowej: operacje, które nie generują przejść, nie są reprezentowane w protokołowej maszynie stanowej; wewnętrzne operacje danego stanu dla protokołowej maszyny stanowej nie są specyfikowane (operacje po słowach kluczowych: entry, do, exit); protokołowa maszyna stanowa może zawierać zarówno stany proste, jak i stany złożone; nie może zawierać pseudostanów związanych ze wznowieniami; w przypadku ogólnym, dozwolone jest wprowadzanie do protokołowej maszyny stanowej zdarzeń innych niż wołanie ([w_wstępny] zdarzenie/ [w_końcowy]); stany w prokołowej maszynie stanowej, w przeciwieństwie do maszyny zachowania, mogą mieć określone inwarianty; S [wyrażenie invariant]

31 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 31/44 Protokołowa maszyna stanowa – przykład (3) Protokołowa maszyna stanowa może wystąpić w postaci: deklaratywnej, gdzie stany i przejścia między stanami zostały określone w sposób ogólny, np. warunki (wstępny/końcowy) mogą nie być specyfikowane, wykonywalnej, zawierającej szczegółową specyfikację przejść i związanych z nimi operacji – co może stanowić podstawę do generowania kodu źródłowego. protokołowa maszyna stanowa może być skojarzona z interfejsem do klasy. IKK

32 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 32/44 Maszyna protokołowa a maszyna zachowania Urządzenie niesprzedane Urządzenie sprzedane kupno urządzenia przez klienta (klient)/ zwrot urządzenia przez klienta (klient)/ Kolejka białych Kolejka czarnych ruch białychruch czarnych when (szach mat) when (pat) when (szach mat) Diagram typu: protokołowa maszyna stanowa Diagram typu: maszyna stanowa zachowania czarne wygrywają remis białe wygrywają utwórz / [minięcie czasu gwarancji] usuń/ [informacja o urządzeniu usunięta]

33 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 33/44 Stan złożony sekwencyjny Stan prosty nie posiada substruktury, jest specyfikowany przez zbiór operacji (akcji, aktywności), zdarzeń wewnętrznych oraz przejść. Stan złożony może być zdekomponowany na stany bardziej proste; dekompozycja może być traktowana jako rodzaj specjalizacji. Każdy z podstanów dziedziczy operacje, przejścia i zdarzenia nadstanu. Tylko jeden z podstanów może być aktywny w danym momencie. Generalizacja stanów jest formą zagnieżdżania stanów. wcześniejsze prace Rumbaugha S S1S2S3 zd2 zd3 zd5 zd4 zd1 UML 2.* S1 S2 S3 S zd4 zd5 zd3 zd2 we-3 zd1

34 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 34/44 Alternatywna notacja dla punktów we, wy S1 S2 S3 S zd4 zd5 zd3 zd2 we-3 (via we-3) zd1

35 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 35/44 Stan złożony sekwencyjny; przykład (1) Jazda do przodu na 1-szym biegu Jazda do przodu na 2-gim biegu Jazda do tyłu Samochód zatrzymany wybrano 1-szy bieg naciśnięto hamulec wybrano następny bieg wybrano poprzedni bieg naciśnięto hamulec naciśnięto hamulec wybrano wsteczny bieg przykładowa protokołowa maszyna stanowa dla klasy Samochód

36 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 36/44 Stan złożony sekwencyjny; przykład (2) zastosowanie generalizacji stanów dla diagramu z poprzedniej folii Jazda do przodu na 1-szym biegu Jazda do przodu na 2-gim biegu Jazda do tyłu Jazda wybrano następny bieg wybrano poprzedni bieg Samochód zatrzymany wybrano wsteczny bieg wybrano 1-szy bieg naciśnięto hamulec

37 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 37/44 Stan złożony sekwencyjny; przykład (3) wykorzystano notację UML 2.0 dla stanów złożonych sekwencyjnych. Samochód zatrzymany Jazda do przodu na 1-szym biegu Jazda do przodu na 2-gim biegu Jazda do tyłu Jazda wybrano poprzedni bieg wybrano następny bieg wybrano wsteczny bieg naciśnięto hamulec wybrano 1-szy bieg do tyłu (via do tyłu)

38 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 38/44 Stan złożony sekwencyjny; przykład (4) Samochód zatrzymany wybrano wsteczny bieg naciśnięto hamulec wybrano 1-szy bieg (via do tyłu) Jazda

39 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 39/44 Maszyna stanowa dla automatu sprzedającego Stan spoczynku wrzucono monetę (wartość)/ inicjuj bilans kasowanie / zwróć monety [reszta < 0] [reszta > 0] wybór (pozycja)[brak pozycji] [reszta = 0] do/ wydaj pozycję do/ wydaj resztę do/przesuń ramię do właściwego wiersza do/wypchnij pozycję do/przesuń ramię do właściwej kolumny do/ sprawdź wybraną pozycję i/lub oblicz resztę Zliczanie pieniędzy wrzucono monetę (wartość) /dodaj do bilansu przykład przejścia automatycznego

40 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 40/44 Stan złożony współbieżny synchronizacja wewnętrzna synchronizacja zewnętrzna Sytuacja typowa: wyjście ze stanu następuje wtedy, gdy we wszystkich współbieżnych podstanach zostanie osiągnięty stan końcowy. Oba diagramy są równoważne. Takie wyjście ze stanu też jest możliwe (sytuacja nietypowa).

41 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 41/44 Współbieżność − obiekty zagregowane Współbieżność ma źródło w trzech sytuacjach: (1) obiekty mogą być zagregowane, (2) pewne operacje w ramach jednego obiektu można wykonywać współbieżnie, a także (3) obiekty mogą działać asynchronicznie. Każdy obiekt wchodzący w skład agregatu posiada tu własny diagram stanów. Można je łączyć, tworząc diagram dla agregatu samochód (wspólny diagram będzie uwzględniał współbieżność operacji). Samochód ZapłonBiegHamulecGaz hamulec puszczony Hamulec Włącz. Wył. hamulec naciśnięty Zapłon Wył. Włącz. Zapala kluczyk max w prawo [Biegi w pozycji 0] kluczyk do poz. Wył.

42 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 42/44 Współbieżność w ramach jednego obiektu Gotowy do działania Maszyna stanowa dla automatu do wypłacania pieniędzy Wypłata do/wydaj gotówkę do/oddaj kartę Podział na współbieżne procesy Synchronizacja: wszystkie współbieżne procesy muszą się zakończyć, aby automat był ponownie gotowy do działania Obiekt może wykonywać współbieżnie dowolną liczbę operacji.

43 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 43/44 Wierzchołek typu płytkie wznowienie S1 S2 S H S4 S3 S5

44 E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 44/44 Maszyna stanowa z sygnałami; przykład Rejestruj zgłoszenie Potwierdzenie zgłoszenia Zgłoszenie na kurs


Pobierz ppt "E. Stemposz. UML i Analiza dynamiczna, Diagramy stanów, Wykład 8, Slajd 1/44 Wykład 8 Model dynamiczny (2) Diagramy stanów dr inż. Ewa Stemposz"

Podobne prezentacje


Reklamy Google