print
A A A

Diagramy stanu (maszyny stanowej)

Przykładem notacji służącej do modelowania zmian stanów systemu są diagramy maszyny stanowej UML (state machine diagrams)

W wersji 2.0 UML wprowadza się rozróżnienie między:

  • maszynami stanu modelującymi zachowanie (behavioral state machines) - będącymi zmodyfikowaną wersją diagramów opracowanych przez Harela w roku 1987 (rozmaite diagramy stanów są w użyciu już od lat 60-tych XX wieku)
  • maszynami stanu reprezentującymi dozwolone sposoby użycia egzemplarzy klasyfikatorów (np. obiektów jako egzemplarzy klas) (protocol state machines)

Maszyny stanowe protokołów są jednym ze sposobów ilustracji interfejsów klas.

Elementami diagramów stanu są:

  • stany – przedstawiane jako prostokąty o zaokrąglonych narożach
    • stany proste (bez regionów i podmaszyn)
    • stany będące maszynami stanowymi (“podmaszyny”)
    • stany złożone – zawierające regiony sekwencyjne lub współbieżne (stany zawarte w regionach ortogonalnych innych stanów nazywane są “podstanami”)
  • regiony ortogonalne (współbieżne)
  • przejścia między stanami – strzałki łączące stany
    • z przejściem może być związany słowny opis mający różną formę w diagramach zachowania i protokołów
    • pseudostany – elementy pozwalające na tworzenie złożonych przejść między stanami

W diagramach protokołów opis przejścia może mieć postać:

[warunek początkowy] zdarzenie/[warunek końcowy]

  • zdarzenie (event) jest najczęściej wywołaniem operacji związanej z danym egzemplarzem klasyfikatora (obiektem)
  • warunek początkowy i końcowy (precondition, postcondition) mają swoje standardowe znaczenie – warunek początkowy musi być spełniony przed rozpoczęciem przejścia, warunek końcowy powinien być spełniony po zakończeniu przejścia

Protokół - DostępDoBazyDanych

W diagramach zachowania opis przejścia może mieć postać:

wyzwalacz [warunek sprawdzający]/czynność

  • wyzwalacz (trigger) jest tym co uruchamia przejście
  • czynność (activity) opisuje, co realizowane jest w trakcie przejścia
  • warunek sprawdzjący (warunek dozoru, guard) musi być prawdziwy, aby doszło do przejścia (dzięki temu można wprowadzać sterowanie za pomocą warunków)
  • oznaczenie przejść parami wyzwalacz-warunek musi być jednoznaczne

Zamiast opisu przejścia można wykorzystać także graficzne symbole oznaczające wysłanie lub odebranie sygnału

Symbol stanu (tylko w maszynie modelującej zachowanie) może, poza samą nazwą stanu, zawierać dodatkowe informacje (umieszczane poniżej poziomej kreski dzielącej symbol stanu). Dodatkowe informacje określają wewnętrzne przemiany w ramach danego stanu.
Podstawowymi dodatkowymi informacjami są:

  • entry/... - informuje o działaniach realizowanych bezpośrednio po wejściu w dany stan
  • exit/... - działania realizowane bezpośrednio przed wyjściem ze stanu
  • do/... - czynności realizowane w sposób ciągły w danym stanie, po ich ukończeniu możliwe jest przejście ze stanu bez żadnego wyzwalacza
  • inne wewnętrzne działania (przejścia wewnętrzne) opisane za pomocą tej samej formy co przejścia między stanami
  • .../defer – zdarzenia odroczone, obsługiwane w innych stanach

Podstawowymi pseudostanami pojawiającymi się w diagramach stanów są następujące pseudostany:

  • (initial) – pokazuje na domyślny stan początkowy
  • (fork) – rozdziela przejście na ortogonalne składowe
  • (join) – łączy ortogonalne składowe
  • (junction) – łączy składowe
  • (choice) – oznacza miejsce dokonywania wyboru
  • (entry) – wejście do maszyny stanowej lub stanu złożonego
  • (exit) – wyjście z pod-maszyny stanowej lub stanu złożonego
  • (terminate) – zakończenie działania maszyny stanowej
  • (deep history, shallow history) – oznaczają przejście maszyny w ostatni aktywny stan, wskazują na stan domyślny przy braku stanów poprzednich

Mikrofalówka – maszyna stanowa

«Narzędzia CASE     Przypomnienie – typy modeli systemu»