Projektowanie systemw informacyjnych Wykad 10 Model dynamiczny 2

  • Slides: 38
Download presentation
Projektowanie systemów informacyjnych Wykład 10 Model dynamiczny (2) § Diagramy stanów Ewa Stemposz Instytut

Projektowanie systemów informacyjnych Wykład 10 Model dynamiczny (2) § Diagramy stanów Ewa Stemposz Instytut Podstaw Informatyki PAN, Warszawa Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 1

Zagadnienia Diagramy stanów: § Maszyna stanowa § Notacja BNF; Prezentowanie diagramu stanów § Stan

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 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 2

Maszyna stanowa Obiekt, w świetle swoich własności (unikalna tożsamość, stan i zachowanie) może być

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 stanów, 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 2 Stan 1 Stan 3 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 3 Stan n

Adaptacja notacji BNF Symbol Znaczenie = struktura danych po lewej stronie symbolu = składa

Adaptacja notacji BNF Symbol Znaczenie = 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 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 4

Prezentowanie diagramów stanów <nagłówek-diagramu> = (<wyróżnik_diagramu>) + <nazwa-diagramu> + {<parametr>} sm Nazwa diagramu sm

Prezentowanie diagramów stanów <nagłówek-diagramu> = (<wyróżnik_diagramu>) + <nazwa-diagramu> + {<parametr>} sm Nazwa diagramu sm – state machine sm Nazwa diagramu {protocol} protokołowa maszyna stanowa E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 5

Stan obiektu (1) Stan obiektu − w podstawowym znaczeniu − opisywany jest przez zestaw

Stan obiektu (1) 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. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 6

Stan obiektu (2) Ile obiekt może mieć stanów? Nawet dla małego obiektu liczba stanów

Stan obiektu (2) 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 stanowej przez liczbę wszystkich obiektów wszystkich klas. 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 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 7 Alternatywna, tzw. zakładkowa, notacja dla stanu

Sekcje stanu (1) Stan może być podzielony na 4 sekcje – każda z sekcji

Sekcje stanu (1) Stan może być podzielony na 4 sekcje – każda z sekcji jest opcjonalna: 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. ) Stan z dwiema sekcjami: nazwy i operacji wewnętrznych: Nazwa stanu entry/akcja 1/akcja 2/… do/aktywność1/aktywność2/… exit/akcja 1/akcja 2/. . . akcja − operacja, której nie można przerwać (atomowa) lista akcji − akcja 1/akcja 2/… − 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. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 8

Sekcje stanu (2); stan złożony Stan z dwiema sekcjami: nazwy i zdarzeń wewnętrznych: Zliczanie

Sekcje stanu (2); stan złożony Stan z dwiema sekcjami: nazwy i zdarzeń wewnętrznych: Zliczanie pieniędzy wrzucono monetę (wartość) /dodaj do bilansu Stan złożony z ukrytą strukturą wewnętrzną: Nazwa stanu złożonego E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 9

Zdarzenie (1) Zdarzenie: ü następuje w jednym punkcie czasowym (z perspektywy naszej percepcji czasu),

Zdarzenie (1) Zdarzenie: ü 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 trwa w czasie, ale fakt zaistnienia zdarzenia jest rejestrowany i trwa aż do momentu, gdy jakiś podmiot zdarzenie “skonsumuje”; innymi słowy zdarzenie musi być obsłużone od razu w momencie wystąpienia − może być wpisane na listę zdarzeń oczekujących na obsługę. 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. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 10

Zdarzenie (2) Zdarzenia mogą być: ü uporządkowane w czasie (synchroniczne), np. odlot samolotu z

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. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 11

Rodzaje zdarzeń Rodzaj zdarzenia Opis Składnia wołanie (ang. call event) otrzymanie przez obiekt synchronicznego

Rodzaje zdarzeń Rodzaj zdarzenia Opis Składnia wołanie (ang. call event) otrzymanie przez obiekt synchronicznego żądania wykonania operacji − najbardziej podstawowy rodzaj zdarzenia op (a : T) zmiana (ang. change event) 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 when (wyrażenie) sygnał (ang. signal) otrzymania przez obiekt asynchronicznego żądania wykonania operacji; użyteczne do modelowania zdarzeń przychodzących z zewnętrza systemu nazwa_syg (a : T) czas (ang. time event) 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 1. 01. 2000) after (czas) E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 12

Odraczanie zdarzeń Obsługa zdarzenia typu zmiana jest kosztowna obliczeniowo, ponieważ wymaga ciągłej ewaluacji warunku.

Odraczanie zdarzeń 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 przyczynaskutek, 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. Zdarzenie odroczone (ang. deferred event): ü zdarzenie, które z założenia nie jest obsługiwane od razu lecz dopisywane do kolejki zdarzeń odroczonych; ü obsługa zdarzeń odroczonych będzie przeprowadzana dopiero wtedy, gdy zostanie uaktywniony stan, który ich nie odracza. Notacja: zdarzenie/deferred E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 13

Zdarzenie typu sygnał Sygnały mogą być reprezentowane na diagramach podobnie jak klasy, ale oznaczone

Zdarzenie typu sygnał 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ę E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 14

Generalizacja sygnałów Konkretny sygnał, z ustalonymi wartościami atrybutów jest wystąpieniem odpowiedniego klasyfikatora sygnał. «sygnał»

Generalizacja sygnałów Konkretny sygnał, z ustalonymi wartościami atrybutów jest wystąpieniem odpowiedniego klasyfikatora sygnał. «sygnał» zdarzenie Zdarzenia związane z akcjami użytkownika: sygnał abstrakcyjny czas «sygnał» użycie_urz_wejściowego urządzenie «sygnał» klik_klawisza_myszy lokalizacja «sygnał» naciśnięcie_klawisza_myszy «sygnał» puszczenie_klawisza_myszy E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 15 «sygnał» naciśnięcie_klawisza_klawiatury kod_znaku «sygnał» sterujący «sygnał» spacja «sygnał» znakowy «sygnał» alfanumeryczny «sygnał» interpunkcyjny

Przejście (1) Przejście: opisywane przez zdarzenie, które je wywołało, warunek oraz akcję (akcje), która

Przejście (1) Przejście: opisywane przez zdarzenie, które je wywołało, warunek oraz akcję (akcje), która jest wykonywana przed ewentualną zmianą stanu. zdarzenie [warunek] /akcja Stan 1 Stan 2 przejście zewnętrzne (ang. external transition) przejście wewnętrzne (ang. internal transition) samo-przejście (ang. selftransition) zdarzenie [warunek] /akcja Stan E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 16 zdarzenie [warunek] /akcja

Przejście (2) Dla samo-przejścia, w przeciwieństwie do przejścia wewnętrznego, przy wychodzeniu ze stanu wykonywane

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. [warunek] /akcja przejście automatyczne (ang. completion transition) 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 typu Boolean, występujący w etykiecie przejścia, może dotyczyć zarówno atrybutów maszyny stanów, 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. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 17

Przykłady przejść przejścia zewnętrzne: otrzymanie zamówienia (suma) [suma < =100 zł. ] Przetwarzanie zamówienia

Przykłady przejść przejścia zewnętrzne: otrzymanie zamówienia (suma) [suma < =100 zł. ] Przetwarzanie zamówienia Oczekiwanie otrzymanie zamówienia (suma) [suma > 100 zł. ] Zatwierdzenie kredytu kredyt zatwierdzony/ licz debet () kredyt odrzucony Anulowanie zamówienia Wprowadzanie hasła entry/ ustaw echo na gwiazdkę/ haslo_zeruj() exit/ ustaw normalne echo przejścia wewnętrzne: znak/ obsłuż znak czyść/ haslo_zeruj() pomoc/ wyświetl pomoc E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 18

Przykładowe rodzaje akcji Rodzaj akcji przypisanie (ang. assignment) wołanie (ang. call) Opis przypisanie wartości

Przykładowe rodzaje akcji Rodzaj akcji przypisanie (ang. assignment) wołanie (ang. call) Opis przypisanie wartości do zmiennej wywołanie operacji na obiekcie; czeka się na zakończenie operacji; może być zwracana wartość Składnia zmienna : = wyrażenie nazwa_op (arg, …) nowy (ang. create) usuń (ang. destroy) wyślij (ang. send) utworzenie nowego obiektu create nazwa_klasy (arg, …) usunięcie obiektu destroy () utworzenie wystąpienia sygnału i wysłanie do obiektu/obiektów nazwa_sygnału (arg, …) powrót (ang. return) specyfikuje instrukcję powrotu return wartość_zwracana E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 19

Rodzaje wierzchołków w maszynie stanów (1) Rodzaj wierzchołka Opis stan prosty (ang. simple state)

Rodzaje wierzchołków w maszynie stanów (1) Rodzaj wierzchołka Opis 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 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ść) stan początkowy (ang. initial state) pseudostan służący do oznaczenia punktu startowego maszyny stanowej stan końcowy (ang. final state) pseudostan służący do oznaczenia punktu finalnego maszyny stanowej E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 20 Notacja

Rodzaje wierzchołków w maszynie stanów (2) Rodzaj wierzchołka Opis decyzja (ang. decision node) rozdziela

Rodzaje wierzchołków w maszynie stanów (2) Rodzaj wierzchołka Opis decyzja (ang. decision node) rozdziela jedno przejście na kilka alternatywnych opatrzonych warunkami złączenie (ang. merge node) złącza kilka przejść alternatywnych w jedno przejście rozwidlenie (ang. fork node) rozdziela jedno przejście na kilka przejść współbieżnych scalenie (ang. join node) złącza kilka przejść współbieżnych w jedno przejście węzeł (ang. junction) złącza kilka przejść we i rozdziela je na kilka przejść wy; szczególnymi rodzajami węzła są wierzchołki powyżej E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 21 Notacja

Rodzaje wierzchołków w maszynie stanów (3) Rodzaj wierzchołka punkt wejścia (ang. entry point) Opis

Rodzaje wierzchołków w maszynie stanów (3) Rodzaj wierzchołka punkt wejścia (ang. entry point) Opis wykorzystywany do oznaczenia przejścia do wnętrza stanu złożonego i umieszczany na granicy stanu; może być oznaczony i nazwany wewnątrz stanu złożonego alternatywna notacja dla punktu wejścia punkt wyjścia (ang. exit point) Notacja (via nazwa punktu we) wykorzystywany do oznaczenia przejścia z wnętrza stanu złożonego i umieszczany na granicy stanu; może być oznaczony i nazwany wewnątrz stanu złożonego alternatywna notacja dla punktu wyjścia E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 22 (via nazwa punktu wy)

Rodzaje wierzchołków w maszynie stanów (4) Rodzaj wierzchołka zniszczenie (ang. termination) płytkie wznowienie (ang.

Rodzaje wierzchołków w maszynie stanów (4) Rodzaj wierzchołka zniszczenie (ang. termination) płytkie wznowienie (ang. shallow history) Opis Notacja wierzchołek maszyny stanów, w którym następuje zniszczenie obiektu 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 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 23 H

Rodzaje wierzchołków w maszynie stanów (5) Rodzaj wierzchołka Opis głębokie wznowienie (ang. deep history)

Rodzaje wierzchołków w maszynie stanów (5) Rodzaj wierzchołka Opis głębokie wznowienie (ang. deep history) podobnie, jak dla płytkiego wznowienia ale łącznie z przechowaniem informacji o podstanach aktywnego ostatnio podstanu odbiór sygnału (ang. signal receipt) wierzchołek związany z odbiorem sygnału; sygnał może posiadać parametry nadawanie sygnału (ang. signal sending) wierzchołek związany z nadawaniem sygnału; jak poprzednio, sygnał może posiadać parametry 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 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 24 Notacja H* sygnał Rejestruj datę

Protokołowa maszyna stanowa: specyfikuje wszystkie operacje, dopuszczalne w kontekście wystąpień danego klasyfikatora. ü przejścia

Protokołowa maszyna stanowa: specyfikuje wszystkie operacje, dopuszczalne w kontekście wystąpień danego klasyfikatora. ü przejścia między stanami są opisywane za pośrednictwem operacji: [warunek wstępny] operacja/ [warunek końcowy] ü wewnętrzne operacje danego stanu nie są specyfikowane, ü w przypadku ogólnym, dozwolone jest wprowadzanie do protokołowej maszyny stanów zdarzeń innych niż wołanie. 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, ü wykonywalnej, zawierającej szczegółową specyfikację przejść i związanych z nimi operacji – maszyna wykonywalna może stanowić podstawę do generowania kodu źródłowego. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 25

Przykłady diagramów Diagram typu: protokołowa maszyna stanowa rejestruj kupno urządzenia przez klienta (klient)/ Urządzenie

Przykłady diagramów Diagram typu: protokołowa maszyna stanowa rejestruj kupno urządzenia przez klienta (klient)/ Urządzenie niesprzedane Urządzenie sprzedane rejestruj zwrot urządzenia przez klienta (klient)/ after (data gwarancji)/ Diagram typu: maszyna stanowa zachowania when (szach mat) Kolejka białych czarne wygrywają when (pat) ruch czarnych ruch białych remis when (pat) Kolejka czarnych E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 26 when (szach mat) białe wygrywają

Stan złożony sekwencyjny Stan prosty nie posiada substruktury, jest specyfikowany przez zbiór operacji (akcji,

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 wewnętrzne nadstanu. Tylko jeden z podstanów może być aktywny w danym momencie. Generalizacja stanów jest formą zagnieżdżania stanów. S zd 2 S zd 1 zd 4 S 1 S 2 zd 5 S 3 zd 3 S 2 S 1 zd 5 S 3 we-3 zd 4 zd 2 zd 4 wcześniejsze prace Rumbaugha E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 27 zd 3 we-3 UML 2. 0

Alternatywna notacja dla punktów we, wy S zd 1 zd 2 zd 4 S

Alternatywna notacja dla punktów we, wy S zd 1 zd 2 zd 4 S 2 zd 3 S 1 zd 5 (via we-3) E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 28 S 3 we-3

Stan złożony sekwencyjny; przykład (1) wybrano 1 -szy bieg Jazda do przodu na 1

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

Stan złożony sekwencyjny; przykład (2) naciśnięto hamulec wybrano 1 -szy bieg Samochód zatrzymany Jazda

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

Stan złożony sekwencyjny; przykład (3) wybrano 1 -szy bieg Jazda wybrano poprzedni bieg Jazda

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

Stan złożony sekwencyjny; przykład (4) wybrano 1 -szy bieg Jazda naciśnięto hamulec (via do

Stan złożony sekwencyjny; przykład (4) wybrano 1 -szy bieg Jazda naciśnięto hamulec (via do tyłu) E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 32 Samochód zatrzymany wybrano wsteczny bieg

Maszyna stanowa dla automatu sprzedającego Stan spoczynku wrzucono monetę (wartość) / inicjuj bilans wrzucono

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

Stan złożony współbieżny synchronizacja wewnętrzna synchronizacja zewnętrzna Oba diagramy są równoważne. E. Stemposz, Analiza

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

Współbieżność − obiekty zagregowane Współbieżność ma źródło w trzech sytuacjach: (1) obiekty mogą być

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. Hamulec Samochód hamulec naciśnięty Zapłon Bieg Hamulec Włącz. Wył. Gaz hamulec puszczony Zapłon kluczyk max w prawo [Biegi w pozycji 0] Wył. Zapala Włącz. kluczyk do poz. Wył. E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 35 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).

Współbieżność w ramach jednego obiektu Obiekt może wykonywać współbieżnie dowolną liczbę akcji. Maszyna stanowa

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

Wierzchołek typu płytkie wznowienie S H S 1 S 3 S 2 S 4

Wierzchołek typu płytkie wznowienie S H S 1 S 3 S 2 S 4 S 5 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 37

Przykładowa maszyna stanowa z sygnałami Zgłoszenie na kurs Rejestruj zgłoszenie Potwierdzenie zgłoszenia E. Stemposz,

Przykładowa maszyna stanowa z sygnałami Zgłoszenie na kurs Rejestruj zgłoszenie Potwierdzenie zgłoszenia E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 38