MASZYNA STANOWA Maciej Patan Motywacje Modelowanie stanów: Wyspecjalizowany typ modelowania behawioralnego, przeznaczony do projektowania cyklu życia elementów. Stan jako określona kondycja lub sytuacja elementu służy opisowi etapów jego cyklu życia(tworzenie, zawarta informacja, przetwarzanie, komunikacja, itd.), stosowane w połączeniu z modelami kolaboracji i interakcji, zapewnienie precyzji opisu i definiowania logiki działania elementów. 1
Podstawy Automat jest maszyną abstrakcyjną(komputerem abstrakcyjnym), którego zachowanie na wyjściu jest nie tylko bezpośrednią konsekwencją aktualnego stanu wejść, ale także ich przeszłości. Jest charakteryzowany przez zestaw stanów wewnętrznych reprezentujących historię działania elementu od startu systemu do teraźniejszości. Skończona maszyna stanowa jest typem automatu zdefiniowanym przez krotkę 6 elementową(s,σ,λ,t,g,s)złożonąze: skończonego zbioru stanów S, skończonego zbioru sygnałów wejściowych(tzw. alfabet wejściowy) Σ, skończonego zbioru sygnałów wyjściowych(tzw. alfabet wyjściowy) Λ, funkcjiprzejściat:s Σ S, funkcjiwyjściowejg:s Σ Λ stanupoczątkowegos S. 2 Tranzycja wskazuje zmianę stanu i jest opisana warunkiem, który musi być spełniony, celem uaktywnienia tranzycji. Akcja(Zdarzenie) jest opisem aktywności wykonywanej w danej chwili. Typy maszyn stanowych(ms) Akceptory/Klasyfikatory(mogą tylko akceptować/rozpoznawać swoje wejścia lubnie). deterministyczna MS(1 wejście/1 tranzycja), niedeterministyczna MS(1 wejście/wiele tranzycji), dwustronna MS. Przetworniki(generują wyjście na podstawie sygnału wejściowego) automat Mealy ego(wyjścia zależą od aktualnego stanu wejść i stanów wewnętrznych), automat Moore a(wyjścia zależą tylko od stanów wewnętrznych). 3
Przykład 1. Skonstruować diagram stanów dla maszyny realizującej opóźnienie o jedną próbkę w ciągu binarnym, gdzie pierwszy element ciągu wyjściowego powinienbyćzainicjowanyzerem(tzn.dlaciąguwejściowegox 0 x 1 x 2...x n wygenerujeciąg0x 0 x 1 x 2...x n 1 ). X k 1 X k Y - 0 0-1 0 0 0 0 0 1 0 1 0 1 1 1 1 Automat Mealy ego 1/1 0/0 0/1 S 1 S 2 1/0 1/0 0/0 S 0 S 0 stanpoczątkowy Automat Moore a 1 0 S 1 0 1 1 0 S 0 0 S 2 1 0 4 Zachowanie pobudzane zdarzeniem(ang. event-driven) Zdarzenie typ obserwowalnego wystąpienia bodźca interakcje synchroniczne wywołania operacji, asynchroniczne przyjęcie sygnału, zdarzenia czasowe upływ interwału czasu, zegar systemowy/kalendarz itp. zmiana wartości pewnej wielkości(np. zmiennej lub wejścia) Instancja typu zdarzenia czyli jego konkretny casus nie jest rozciągnięta w czasie! 5
Przeznaczenie maszyn stanowych odpowiednie do opisu dyskretnych systemów zdarzeniowych, nieodpowiednie do modelowania zmian ciągłych, próg czas można modelować wszystko co manifestuje się zachowaniem pobudzanym przez zdarzenia(zachowanie poszczególnych obiektów, interakcje między obiektami), 6 Zastosowania sprzętowe Sprzętowo MS mogą być realizowane przez układy programowalne, bramki, przerzutniki lub przekaźniki. 7
Bezpośrednie zastosowania w oprogramowaniu Zdarzeniowe(ang. event-driven) maszyny stanowe parsery(analiza składni), kompilatory, itd. Wirtualne maszyny stanowe symulatory sieci przepływowych, automatów komórkowych, sieci Petriego itd. Maszyny stanowe a UML semantyka dynamicznych maszyn stanowych UML-a jest głównie nastawiona na przypadek obiektów aktywnych, notacja UML-a łączy we wspólny opis wiele różnych typów MS(automat Mealy ego, Moore a i inne) skończone MS w UML-u zawierają elementy różnych modeli matematycznych tj. diagramy przepływowe, sieci Petriego itd. 8 zdarzenie Podstawowe elementy pseudostan pocz¹tkowy W³¹cz PC tranzycja pseudostan koñcowy Wy³¹cz PC W³¹czanie Wy³¹czanie stan prosty Zdarzenie = wyzwalacz przejścia. Pełny opis tranzycji: opis zdarzenia {}}{ nazwa zdarzenia(lista parametrów)[dozór]/ wynik:= elem docelowy.nazwa akcji(lista argumentów) }{{} opis akcji 9
Szczegóły i akcje stanów Stany aparatu faksowego Faksowanie Data = Data systemowa Numer = W³asny numer telefoniczny Czas = Czas rozpoczêcia faksowania entry/wpisznrfaksuadresata() exit/zakoñcztransmisjê() do/dodajznacznikdata() do/czas:=dodajznacznikczasu() do/przetwarzanie() nazwa zmienne W³¹cz/rozpocznijFaksowanie() Bezczynnoœæ akcje stanów przejœcie automatyczne Data = Data systemowa Numer = W³asny numer telefoniczny Czas = Czas systemowy entry/zakoñczfaksowanie() do/data:=poka Date() do/czas:=poka Czas() 10 Typy akcji wewnętrznych entry akcja wykonywana przy wejściu elementu do stanu, exit akcja wykonywana przy wyjściu elementu ze stanu, do akcjawykonywanawsposóbciągły,gdyelementznajdujesięw danym stanie, w razie potrzeby można sprecyzować inne, np. na wystąpienie tranzycji wewnętrznych. 11
Warunki dozoru i wybór dynamiczny W³¹cz PC W³¹czanie do/start_sys() Wy³¹cz PC Wy³¹czanie [czas<=15min]/odrzuæ() wybór dynamiczny [czas>15min]/oszczêdzaj() timer/czas:=pobierz_czas() klaw lub mysz Oszczêdzanie monitora timer [czas>2h]/off 12 Stany złożone(1) Podstany sekwencyjne czas = czas_bezczynnoœci do/pobierz_czas() Oczekiwanie na Rejestrowanie Dzia³ania Wizualizacja Dzia³ania 13
Współbieżność i ortogonalność stan "p³ytkiego" wznowienia Stany złożone(2) H Przetwarzanie pierwszoplanowe Oczekiwanie na Rejestrowanie Dzia³ania Wizualizacja Dzia³ania Przetwarzanie w tle timer Œledzenie zegara systemowego [czas min¹³] Uaktualnienie obrazu klaw lub mysz 14 Podsumowanie MS są bardzo potężnym sposobem opisu i implementacji logiki sterującej aplikacji. Bardzo zwarta forma reprezentacji(sporo informacji o zachowaniu w stosunkowo małym diagramie). Podlegają prostym regułom i są łatwe do weryfikacji. Umożliwiają generację kodu. Szeroki zakres zastosowań, np. protokoły komunikacji, sterowanie interakcjami GUI, etc. 15