Projektowanie systemów informacyjnych E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 1 Wykład 10 Model dynamiczny (2) Diagramy stanów Ewa Stemposz Instytut Podstaw Informatyki PAN, Warszawa Zmodyfikowane przez Grzegorz Wierzowiecki na potrzeby zajęć do przedmiotu PRI na PJWSTK Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa
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ć 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, a łuki opisują przejścia między stanami. Przejście między stanami jest odpowiedzią na zdarzenie. Często, maszyna stanów 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 Stan n
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 3 Diagramy stanów Stan obiektu (2) sm state machine sm Nazwa diagramu Sekcja nazwy Sekcja operacji wewnętrznych Sekcja zdarzeń wewnętrznych Sekcja dekompozycji maszyna stanowa zachowania protokołowa maszyna stanowa sm Nazwa diagramu {protocol} Nazwa stanu pokazuje strukturę wewnętrzną stanu złożonego (stany, regiony, przejścia, itd.) entry/akcja1/akcja2/ do/aktywność1/aktywność2/ exit/akcja1/akcja2/... Nazwa stanu
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 4 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 5 Rodzaje zdarzeń Rodzaj zdarzenia wołanie (ang. call event) zmiana (ang. change event) sygnał (ang. signal) czas (ang. time event) Opis 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 1.01.2000) Składnia op (a : T) when (wyrażenie) nazwa_syg (a : T) after (czas)
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 6 Generalizacja sygnałów Konkretny sygnał, z ustalonymi wartościami atrybutów jest wystąpieniem odpowiedniego klasyfikatora sygnał. «sygnał» zdarzenie Zdarzenia czas związane z akcjami użytkownika: «sygnał» użycie_urz_wejściowego urządzenie sygnał abstrakcyjny «sygnał» klik_klawisza_myszy lokalizacja «sygnał» naciśnięcie_klawisza_klawiatury kod_znaku «sygnał» naciśnięcie_klawisza_myszy «sygnał» sterujący «sygnał» znakowy sygnały konkretne «sygnał» puszczenie_klawisza_myszy «sygnał» spacja «sygnał» alfanumeryczny «sygnał» interpunkcyjny
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 7 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. przejście zewnętrzne (ang. external transition) przejście wewnętrzne (ang. internal transition) bez zmiany stanu samo-przejście (ang. selftransition) zdarzenie [warunek] /akcja Stan 1 Stan 2 zdarzenie [warunek] /akcja Stan przejście zdarzenie [warunek] /akcja przejście automatyczne (completion transition) [warunek] /akcja Stan 1 Stan 2
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 8 Przykłady przejść przejścia zewnętrzne: Oczekiwanie otrzymanie zamówienia (suma) [suma < =100 zł.] Przetwarzanie zamówienia 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 9 Przykładowe rodzaje akcji Rodzaj akcji Opis Składnia przypisanie (ang. assignment) wołanie (ang. call) nowy (ang. create) usuń (ang. destroy) wyślij (ang. send) zakończ (ang. terminate) powrót (ang. return) 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 (ów) samodestrukcja obiektu specyfikuje instrukcję powrotu zmienna := wyrażenie nazwa_op (arg, ) create nazwa_klasy (arg, ) destroy () nazwa_sygnału (arg, ) terminate return wartość_zwracana
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 10 Rodzaje wierzchołków w maszynie stanów (1) Rodzaj wierzchołka Opis Notacja stan prosty (ang. simple state) stan złożony sekwencyjny (ang. sequential composite state) stan złożony współbieżny (ang. concurrent composite state) stan początkowy (ang. initial state) stan końcowy (ang. final state) stan nie posiadający substruktury 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 podzielony na co najmniej dwa ortogonalne regiony, które są jednocześnie aktywne, gdy aktywny jest stan złożony (jako całość) pseudostan służący do oznaczenia punktu startowego maszyny stanowej pseudostan służący do oznaczenia punktu finalnego maszyny stanowej
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 11 Rodzaje wierzchołków w maszynie stanów (2) Rodzaj wierzchołka Opis Notacja decyzja (ang. decision node) złączenie (ang. merge node) rozwidlenie (ang. fork node) scalenie (ang. join node) węzeł (ang. junction) rozdziela jedno przejście na kilka alternatywnych opatrzonych warunkami złącza kilka przejść alternatywnych w jedno przejście rozdziela jedno przejście na kilka przejść współbieżnych złącza kilka przejść współbieżnych w jedno przejście 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 12 Rodzaje wierzchołków w maszynie stanów (3) Rodzaj wierzchołka punkt wejścia (ang. entry point) Opis wykorzystywany do oznaczenia przejścia ze stanu do jego podstanu i umieszczany na granicy stanu; może być nazwany i/lub zaznaczony w obszarze podstanu Notacja alternatywna notacja dla punktu wejścia (via nazwa punktu we) punkt wyjścia (ang. exit point) wykorzystywany do oznaczenia przejścia ze stanu do jego nadstanu i umieszczany na granicy stanu; może być nazwany i/lub zaznaczony w obszarze podstanu alternatywna notacja dla punktu wyjścia (via nazwa punktu wy)
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 13 Rodzaje wierzchołków w maszynie stanów (4) Rodzaj wierzchołka Opis Notacja zniszczenie (ang. termination) wierzchołek maszyny stanów, w którym następuje zniszczenie obiektu płytkie wznowienie (ang. shallow history) 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
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 14 Rodzaje wierzchołków w maszynie stanów (5) Rodzaj wierzchołka Opis Notacja głębokie wznowienie (ang. deep history) odbiór sygnału (ang. signal receipt) podobnie, jak dla płytkiego wznowienia ale łącznie z przechowaniem informacji o podstanach aktywnego ostatnio podstanu wierzchołek związany z odbiorem sygnału; sygnał może posiadać parametry H* sygnał nadawanie sygnału (ang. signal sending) wierzchołek związany z nadawaniem sygnału; jak poprzednio, sygnał może posiadać parametry sygnał 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ę
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 15 Przykłady diagramów Diagram typu: protokołowa maszyna stanowa Urządzenie niesprzedane kupno urządzenia przez klienta (klient) Urządzenie sprzedane zwrot urządzenia przez klienta (klient) after (data gwarancji) Diagram typu: maszyna stanowa zachowania Kolejka białych when (szach mat) when (pat) czarne wygrywają ruch czarnych ruch białych when (pat) remis Kolejka czarnych when (szach mat) białe wygrywają
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 16 Stan złożony sekwencyjny Stan prosty nie posiada substruktury, jest specyfikowany przez zbiór operacji (akcji, aktywności) 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 przejścia nadstanu. Tylko jeden z podstanów może być aktywny w danym momencie. Generalizacja stanów jest formą zagnieżdżania stanów. zd2 S zd1 zd2 S zd1 zd4 S1 zd5 S1 S2 S3 zd3 S2 zd5 S3 zd4 we-3 zd4 zd4 zd3 we-3 wcześniejsze prace Rumbaugha UML 2.0
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 17 Stan złożony współbieżny Innym rodzajem stanów złożonych są stany składające się ze współbieżnych podstanów. synchronizacja wewnętrzna Takie wyjście ze stanu też jest możliwe (sytuacja nietypowa). synchronizacja zewnętrzna Oba diagramy są równoważne. Sytuacja typowa: wyjście ze stanu następuje wtedy, gdy we wszystkich współbieżnych podstanach zostanie osiągnięty stan końcowy.
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 18 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. Samochód Hamulec hamulec naciśnięty Zapłon Bieg Hamulec Gaz Wył. hamulec puszczony Włącz. Wył. Zapłon kluczyk max w prawo [Biegi w pozycji 0] Zapala kluczyk do poz. Wył. Włącz. 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).
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 19 Współbieżność w ramach jednego obiektu Obiekt może wykonywać współbieżnie dowolną liczbę akcji. Protokołowa maszyna stanowa dla automatu do wypłacania pieniędzy Wypłata Gotowy do działania 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
E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 20 Przykładowy graf z sygnałami Zgłoszenie na kurs Rejestruj zgłoszenie Potwierdzenie zgłoszenia