====== Diagramy stanu i sekwencji ======

=====Diagram Stanu=====

//[[uml_w_analizie_i_projektowaniu#Diagramy stanów|Patrz też "UML w analizie i projektowaniu"]]//

Diagramy stanu przedstawiają maszynę stanową. Obrazują przepływ czynności między stanami. Służą do modelowania obiektów reaktywnych, tzn. takich, które najlepiej są określane przez odpowiedzi na zdarzenia wywołane w ich otoczeniu. Bieżące działanie obiektu reaktywnego zależy od tego co było w przeszłości.

Zawartość:

  * stany zwykłe i złożone
  * przejścia ze zdarzeniami i akcjami
  * obiekty
  * notatki i ograniczenia

Zdarzenie - specyfikacja zjawiska zachodzącego w czasie i przestrzeni, np. bodziec uruchamiający przejście między stanami. Zdarzenia mogą być synchroniczne bądź asynchroniczne, wewnętrzne (np. przepełnienie arytmetyczne) lub zewnętrzne (zachodzące między systemem i aktorami).

Rodzaje zdarzeń:

  * sygnał
  * wywołanie
  * upływ czasu
  * zmiana stanu

Sygnał - zdarzenie asynchroniczne, obiekt wysłany z jednego obiektu do drugiego.

Przykładem sygnału jest wyjątek. Może być modelowany jako np. komunikat w interakcji bądź przejście w maszynie stanowej.

Zastosowanie diagramów stanów

Modelowanie obiektów reaktywnych - przedstawienie zachowań obiektu w czasie jego życia.

Uwypuklenie elementów:

  * stanów stabilnych obiektu (stałe warunki przez zauważalny czas)
  * zdarzeń uruchamiających przejścia
  * akcji wykonywanych przy zmianie stanu
















  * opisuje dynamiczne zachowanie obiektu
  * graficzna interpretacja sekwencji stanów obiektu i zdarzeń powodujących zmiany
  * diagramy stanu są tworzone dla obiektów posiadających nietrywialne, istotne zachowanie
  * nie wszystkie obiekty wymagają diagramu stanu

{{:diagramy_stanu.jpg|:diagramy_stanu.jpg}}

=====Diagram Sekwencji=====

//[[uml_w_analizie_i_projektowaniu#Diagramy sekwencji|Patrz też "UML w analizie i projektowaniu"]]//

  * pozwala zrozumieć przepływ danych w przypadku użycia
  * identyfikuje operacje obiektów uczestniczących w przypadku użycia
  * uczestnicy reperezentowani przez linie życia (lifelines), przepływ modelowany jest za pomocą komunikatów
  * przedstawia informacje dynamiczne potrzebne do zrozumienia czasowych zależności w przepływie danych

{{:sekwencji.jpg|:sekwencji.jpg}}