Diagram sekwencji należy do jednego z diagramów interakcji w UML 2.5. Służy do prezentowania interakcji pomiędzy obiektami z uwzględnieniem w czasie komunikatów przesyłanych między nimi.
Diagram sekwencji to jedna z podstawowych technik modelowania zachowań systemu do realizacji przypadku użycia.
Obiekty na diagramie ułożone są w poziomie (oś X), a przesyłane komunikaty –w pionie (oś Y), na tzw. linii życia obiektu.
To, co jest pokazane w poziomie – ma charakter statyczny, a to, co przedstawione jest pionowo – dynamiczny.
Każdy komunikat reprezentowany jest za pomocą strzałki między liniami życia dwóch obiektów. Ułożone są chronologicznie od góry do dołu. Warto pamiętać, że obiekt może przesyłać komunikat do samego siebie.
Rodzaje diagramów sekwencji
Istnieją trzy rodzaje diagramów sekwencji. Podział ten wskazuje na to, jak dokładnie przedstawiamy dany problem za pomocą diagramu sekwencji.
- konceptualny – diagram o ogólnym zakresie i łatwych do zidentyfikowania interakcjach, stwarza możliwość ogólnego naszkicowania zakresu i zawartości interakcji;
- implementacyjny- diagram stanowiący podstawę opracowania specyfikacji programistycznej, prezentuje o wiele wyższy poziom precyzji oraz większy zakres interakcji;
- wystąpieniowy –przypadek diagramu implementacyjnego w odniesieniu do konkretnego scenariusza
Podstawowe elementy diagramu sekwencji
- Klasyfikator – abstrakcyjna kategoria modelowania, która uogólnia kolekcję instancji o tych samych cechach.
- Linia życia – powiązana z konkretną instancją klasyfikatora linia na diagramie sekwencji, wskazująca okres istnienia tej instancji.
- Komunikat – specyfikacja wymiany informacji między obiektami. Przedstawiany za pomocą strzałki, której kierunek przedstawia kierunek przepływania informacji (komunikatu).
- Ośrodek sterowania – specyfikacja wykonywania czynności, operacji lub innej jednostki zachowania w ramach interakcji – w praktyce jest to po prostu zaznaczenie realizacji funkcjonalności.
Linia życia (ang. life line)
Podstawowym sposobem prezentacji obiektów jest prostokąt z nazwą obiektu oraz odchodzącą od niego w dół linką życia tego obiektu.
Linia życia jest reprezentacją współuczestnika interakcji i czas jego istnienia w realizacji scenariusza.
Większość obiektów z diagramu sekwencji żyje przez cały czas trwania interakcji.
Linie życia prezentują konkretne byty i mogą być reprezentowane przez stereotypy.
Stereotypy linii życia (ang. sequencediagram stereotypes)
- Actor – aktor – stereotyp aktora informuje, że obiekt ten pełni funkcję zewnętrzną w stosunku do systemu
- Boundary–interfejs – Obiekt klasy granicznej, który reprezentuje interfejs między systemem a bytami występującymi poza nim.
- Control – wykonanie – obiekt klasy sterującej używany do sterowania działaniem jednej lub wielu klas
- Entity–obiekt – obiekt klasy danych, stosowany do reprezentowania danych, które muszą być zachowane w systemie.
Rodzaje wiadomości (ang.message)
Informacja przesyłana między obiektami. W UML są trzy rodzaje komunikatów:
Synchroniczny – oznacza, że obiekt musi czekać na odpowiedź. Uznaje się, że natychmiast po wywołaniu przychodzi odpowiedź. Jeśli nie, należy umieścić komunikat zwrotny. Przedstawia się go jako strzałkę z wypełnionym grotem.
Asynchroniczny – oznacza, że obiekt nie musi czekać na odpowiedź. Prezentowany jest za pomocą zwykłej strzałki.
Zwrotny – odpowiedź na komunikat. Rysowany strzałką z linią przerywaną.
Samowywołanie synchroniczne lub asynchroniczne – wiadomość, którą obiekt wysyła sam do siebie. Używa się, np. w sytuacji gdy obiekt wywołuje swoją własną metodę.
Symbole oddziaływań można uzupełniać nazwami i specyfikacjami (np. sygnatury wywołań, typy przesyłanych argumentów).
Stereotypy – tworzenie obiektów
Większość obiektów z diagramu sekwencji żyje przez cały czas trwania interakcji, jednak możliwe jest ukazanie na diagramie sekwencji, w którym momencie obiekt jest tworzony lub niszczony.
Wyodrębnić można 2 stereotypy: <<create>> oraz <<destroy>>.
Stereotyp ‘create’–
Stereotyp create umożliwia utworzenie obiektów.
W momencie utworzenia obiektu za pomocą streotypu <<create>>, instancja klasyfikatora jest obniżona do poziomu komunikatu tworzącego.
Stereotypu tego można użyć także w trakcie interakcji, gdy mogą powstawać nowe obiekty – umieszcza się je w miejscu, w którym odbierany jest komunikat „create”.
Stereotyp ‘destroy’
Stereotyp destroy powoduje zniszczenie obiektu.
Diagram sekwencji, za pomocą tego stereotypu, umożliwia pokazanie momentu zniszczenia obiektu.
Linia życia niszczonego obiektu kończy się w chwili odbierania przez niego komunikatu stereotypowanego „destoy”.
Zniszczenie oznacza się znakiem X na linii życia.
Ośrodek sterowania
Przedstawiany jako podłużny, cienki prostokąt prezentujący okres wykonania przez obiekt jakiejś akcji osobiście albo z użyciem procedury podrzędnej.
Istotne jest umiejscowienie ośrodka sterowania – górna krawędź jest na wysokości początku akcji, a dolna – na wysokości jej zakończenia (może dodatkowo mieć oznaczenie komunikatu przekazania).
Białe prostokąty na linii życia obiektu oznaczają, że obiekt jest zajęty wykonywaniem pewnej czynności, ale nie mają bezpośredniego związku z istnieniem obiektu
Komunikat warunkowy
Fragment (ang. combined fragment)
Fragment to wyodrębniona część diagramu sekwencji charakteryzująca się specyficznymi właściwościami określonymi przez operator sekwencji.
Operator sekwencji – stanowi sprecyzowanie funkcjonalności realizowanej przez fragment wyodrębniony.
Istnieje kilka różnych operatorów, które omówię w kolejnym wpisie. Użycie każdego z nich zaznacza się w ramce nazwy “fragmentu wyodrębnionego”.