MASZYNA STANÓW
WPROWADZENIE
Diagram maszyny stanów (zwany także maszyną stanowa albo diagramem stanów) pokazuje w jakie stany przyjmuje dany obiekt pod wpływem zdarzeń w systemie. Na diagramie są zobrazowane wszystkie możliwe stany wraz z opisem warunków, które muszą zaistnieć, aby przejście pomiędzy stanami zostało zrealizowane.
Diagram stanów jest także używany by przedstawić cały cykl życia danego obiektu, aby deweloperzy i biznesowi interesariusze mogli lepiej zrozumieć działanie sytemu.
Maszyna stanowa pozwala przedstawiać zmiany stanów obiektu danych biznesowych wraz ze zdarzeniami powodującymi przejście pomiędzy stanami. Diagram ten zatem pokazuje w ujęciu dynamicznym możliwe wartości (stany) jakie obiekt może przyjąć w zależności od reguł biznesowych ograniczających otoczenie biznesowe organizacji. Konieczne jest także zaznaczenie, że kolejny stan danego obiektu zależy nie tylko od zdarzenia warunkującego daną tranzycję (input), ale także od poprzednich wartości stanów obiektu. —> chodzi o wejście w konkretną ścieżkę.
Aby zamodelować zachowanie obiektu w systemie w ramach jego cyklu życia potrzebujemy przejść następujące kroki:
- Określenie stanów: stan jest rozumiany jako status jaki obiekt może przyjąć w trakcie swojego życia. Minimalnie identyfikuje się dwa stany – początek i koniec, ale z reguły są jeszcze stany pośrednie.
- Określenie tranzycji: tranzycja jest to dozwolone przejście pomiędzy jednym stanem a drugim.
- Zdefiniowanie zdarzeń oraz warunków brzegowych: konieczne jest pokazanie jakie zdarzenia wyzwalają przejście pomiędzy stanami oraz jakie ograniczenia wynikające z reguł biznesowych powodują, że przejścia mogą być zrealizowane.
Działanie diagramu maszyny stanów zaczyna się od pseudostanu początkowego, zaś kończy w chwili osiągnięcia stanu końcowego albo stanu, z którego nie wychodzą już żadne przejścia.
Przejście początkowe (ang. initial transition) jest to przejście wychodzące z pseudostanu początkowego. Dla danego pseudostanu początkowego może być określone co najwyżej jedno takie przejście, które nie może mieć zdefiniowanych warunków. Stan (ang. state) opisuje sytuację, jaka występuje w trakcie cyklu życia obiektu, w trakcie której spełniony jest określony warunek (np. wniosek jest zarejestrowany). Warunek ten zwykle nie jest jawnie wyspecyfikowany, najczęściej reprezentuje go nazwa. W praktyce stan obiektu określa się przez zbiór wartości jego atrybutów oraz związków z innymi obiektami, z jakimi w danym momencie on występuje. Dla przykładowego wniosku można określić następujące stany: Zarejestrowany, Odrzucony, Zaakceptowany, Oddalony.
Przejścia między stanami danego obiektu są inicjowane wystąpieniem określonego zdarzenia (a precyzyjniej, wyzwalaczem skojarzonym z określonym zdarzeniem). UML definiuje następujące rodzajów zdarzeń:
- warunkowe (ang. change event),
- czasowe (ang. time event),
- odbioru komunikatu (ang. message event), spośród których wyróżniono dodatkowo:
- odbiór sygnału (ang. signal event),
- wywołanie operacji (ang. call event),
- odbiór dowolnego komunikatu (ang. any receive event).
Dokładniejsze omówienie elementów diagramu maszyny stanów można znaleźć we wpisie Maszyny stanów modelu informacyjnego systemu.
Powyższy diagram prezentuje przykład maszyny stanowej z różnymi typami stanów oraz wyzwalaczy. Każdy obiekt klasy Klasa, po utworzeniu przejdzie do stanu Stan 1. Następnie, w zależności od tego, które ze zdarzeń wystąpi jako pierwsze, przejdzie, albo do stanu Stan 3, albo do stanu złożonego Stan Z, a konkretniej, do podstawnu Stan 2. Warto zwrócić uwagę, iż wyzwalacze powodujące te przejścia są różnych typów. Obiekt ze stanu 2 do stanu 3 jest przeprowadzany wskutek wystąpienia zdarzenia Akcja 1. W metodyce OMNIS jest to jedna z konwencji, mająca na celu wskazanie, iż wyzwalaczem przejścia jest fakt wywołania akcji na diagramie aktywności. Więcej informacji o tej konwencji można znaleźć we wpisie Konwencja [call action]. Warto przy tej okazji zwrócić uwagę na fakt stymulowania dbałości o spójność pomiędzy analizą odpowiedzialności a maszynami stanów, co jest bardzo porządane przy tworzeniu spójnego opisu systemu.
Rola techniki w metodyce OMNIS
Maszyna stanów jest narzędziem służącym do opisywania istotnych z punktu widzenia systemu etapów cyklu życia obiektów danej klasy. Dodatkowo, analiza systemu poprzez stany pozwala na identyfikację brakujących wymagań.
UŻYTECZNE TECHNIKI
Konwencja [call action]
We wpisie wyjaśniono intencję konwencji oraz pokazano w jaki sposób zastosować konwencję wyzwalacza na maszynie stanów, będącego wywolaniem akcji na diagramie aktywności, w narzędzi Visual Paradigm.Informacje ogólneKonwencja (call action) służy do powiązania elementów...
Maszyny stanów modelu informacyjnego systemu
We wpisie opisano podstawowe konstrukcje języka UML wykorzystywane do tworzenia maszyn stanów w ramach modelu informacyjnego systemu.Informacje ogólneTechnika tworzenia maszyn stanów na etapie analizy systemowej jest rekomendowana w metodyce OMNIS w sytuacjach, gdy...