E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 1 Projektowanie systemów informacyjnych Ewa Stemposz Instytut Podstaw Informatyki.

1 E. Stemposz, Analiza i Projektowanie Systemów Informaty...
Author: Antonina Klimek
0 downloads 1 Views

1 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 1 Projektowanie systemów informacyjnych Ewa Stemposz Instytut Podstaw Informatyki PAN, Warszawa Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa Wykład 10 Model dynamiczny (2)  Diagramy stanów Zmodyfikowane przez Grzegorz Wierzowiecki na potrzeby zajęć do przedmiotu PRI na PJWSTK

2 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 1 Stan 2 Stan 3 Stan n

3 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 3 Diagramy stanów sm Nazwa diagramu sm – state machine sm Nazwa diagramu {protocol} protokołowa maszyna stanowa Nazwa stanu Stan obiektu (2) maszyna stanowa zachowania 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.) Nazwa stanu entry/akcja1/akcja2/… do/aktywność1/aktywność2/… exit/akcja1/akcja2/...

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

5 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 5 Rodzaje zdarzeń Rodzaj zdarzenia wołanie (ang. call event) OpisSkładni a 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 1.01.2000) op (a : T) when (wyrażenie) nazwa_syg (a : T) after (czas)

6 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 6 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ł abstrakcyjny sygnały konkretne zdarzenie «sygnał» klik_klawisza_myszy lokalizacja «sygnał» naciśnięcie_klawisza_klawiatury kod_znaku «sygnał» czas

7 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) samo-przejście (ang. selftransition) bez zmiany stanu zdarzenie [warunek] /akcja Stan zdarzenie [warunek] /akcja Stan 1 Stan 2 przejście przejście automatyczne (completion transition) [warunek] /akcja Stan 1 Stan 2

8 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 8 Przykłady przejść 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:

9 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 9 Przykładowe rodzaje akcji powrót (ang. return) przypisanie (ang. assignment) wołanie (ang. call) nowy (ang. create) usuń (ang. destroy) wyślij (ang. send) zakończ (ang. terminate) Rodzaj akcji OpisSkładni a zmienna := wyrażenie nazwa_op (arg, …) create nazwa_klasy (arg, …) destroy () nazwa_sygnału (arg, …) terminate 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 return wartość_zwracana

10 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 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żący do oznaczenia punktu startowego maszyny stanowej stan końcowy (ang. final state) pseudostan służący do oznaczenia punktu finalnego maszyny stanowej 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ść)

11 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 11 Rodzaj wierzchołka Opis Notacja decyzja (ang. decision node) rozdziela jedno przejście na kilka alternatywnych opatrzonych warunkami złączenie (ang. merge node) rozwidlenie (ang. fork node) 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 scalenie (ang. join node) Rodzaje wierzchołków w maszynie stanów (2) złącza kilka przejść alternatywnych w jedno przejście złącza kilka przejść współbieżnych w jedno przejście rozdziela jedno przejście na kilka przejść współbieżnych

12 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 Opis punkt wejścia (ang. entry point) 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 punkt wyjścia (ang. exit point) Notacja 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 (via nazwa punktu we) alternatywna notacja dla punktu wejścia (via nazwa punktu wy) alternatywna notacja dla punktu wyjścia

13 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 OpisNotacja 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

14 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 OpisNotacja głębokie wznowienie (ang. deep history) podobnie, 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

15 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 15 Przykłady diagramów Urządzenie niesprzedan e Urządzeni e sprzedane kupno urządzenia przez klienta (klient) zwrot urządzenia przez klienta (klient) after (data gwarancji) Kolejk a białych Kolejka czarnyc h 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ą

16 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. wcześniejsze prace Rumbaugha S S1S2S3 zd2 zd3 zd5 zd4 zd1 UML 2.0 S1 S2 S3 S zd4 zd5 zd3 zd2 we-3 zd1

17 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 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).

18 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. 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. Zapal a kluczyk max w prawo [Biegi w pozycji 0] kluczyk do poz. Wył.

19 E. Stemposz, Analiza i Projektowanie Systemów Informatycznych, Wykład 10, Slajd 19 Współbieżność w ramach jednego obiektu Gotowy do działania Protokołowa 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ę akcji.

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