Diagramy sekwencji UML  to diagramy interakcji, które szczegółowo opisują sposób przeprowadzania operacji. Uchwycą interakcję między obiektami w kontekście współpracy. Diagramy sekwencji koncentrują się na czasie i pokazują wizualnie kolejność interakcji, wykorzystując pionową oś diagramu do przedstawienia czasu, jakie wiadomości są wysyłane i kiedy.

Co to jest diagram sekwencji?

Diagram sekwencji, znany również jako diagram sekwencji, diagram sekwencyjny lub diagram sekwencyjny, jest diagramem interakcji UML. Pokazuje dynamiczną współpracę między wieloma obiektami, opisując porządek czasowy, w jakim wiadomości są przesyłane między nimi.

W UML obiekt na diagramie sekwencji jest rysowany jako prostokąt zawierający podkreśloną nazwę obiektu. Obiekt można nazwać na jeden z trzech sposobów: nazwą obiektu, nazwą obiektu i jego klasą lub samą nazwą klasy (obiekt anonimowy). Trzy sposoby nadawania nazw obiektom pokazano na poniższym rysunku.

EDYTUJ TEN DIAGRAM SEKWENCJI

Obiekty diagramu sekwencji

  1. Pokaż kolejność interakcji między obiektami. Modeluj zachowanie interakcji jako przekazywanie wiadomości i pokazuj dynamicznie interakcje między obiektami, opisując, w jaki sposób wiadomości są wysyłane i odbierane między nimi.
  2. W porównaniu z innymi diagramami UML, diagram sekwencji czasowej kładzie większy nacisk na chronologiczną kolejność zachowań interakcji.
  3. Może wizualnie opisać proces współbieżności.

Elementy diagramu sekwencji

1. Aktor – Aktorzy systemowi, którymi mogą być ludzie, maszyny, inne systemy, podsystemy; używany do reprezentowania na diagramie sekwencji czasowej.

2. Obiekt – Istnieją trzy sposoby nadawania nazw obiektom:

  1. Zawiera nazwę obiektu i nazwę klasy, na przykład: live class: class, na diagramie szeregów czasowych, z „obiektem: class”.
  2. Pokazuje tylko nazwę klasy, czyli jest to obiekt anonimowy, na przykład: :kurs; na diagramie czasowym, z „:class”.
  3. Pokazuje tylko nazwę obiektu, ale nie nazwę klasy, np.: wykładowca; na diagramie czasowym jest reprezentowany przez „obiekt”.

Dostępne są wszystkie trzy metody nazewnictwa, które są najłatwiejsze do zrozumienia dla osób czytających wykres chronologiczny.

3. Kolejność obiektów

  • Lewa i prawa kolejność obiektów nie jest ważna, ale aby sporządzić przejrzysty i schludny diagram, należy przestrzegać dwóch zasad: obiekty z częstymi interakcjami należy umieścić jak najbliżej siebie;
  • Umieść obiekt inicjujący całą interakcję na skrajnym lewym końcu.

linia życia

Linia przerywana biegnąca w dół od ikony obiektu na diagramie czasowym, wskazująca, jak długo obiekt istnieje.

  • Skupienie Kontroli (znane również jako okres aktywacji) jest symbolem okresu czasu, w którym obiekt wykona odpowiednią operację. Można to interpretować jako parę nawiasów klamrowych { } w semantyce C; reprezentowany przez mały prostokąt. Reprezentuje okres, w którym element wykonuje operację. Górna i dolna część prostokąta są wyrównane odpowiednio z czasem rozpoczęcia i zakończenia.
  • Wiadomości są ogólnie klasyfikowane jako wiadomość synchroniczna, wiadomość asynchroniczna i wiadomość zwrotna.

Uwaga

  • Nadawca komunikatu przekazuje kontrolę odbiorcy komunikatu, po czym zatrzymuje czynność i czeka, aż odbiorca komunikatu zrezygnuje lub zwróci kontrolę, która służy do wskazania synchronizacji.
  • Nadawca komunikatu przekazuje sygnał do odbiorcy komunikatu za pośrednictwem komunikatu, a następnie kontynuuje swoją aktywność, nie czekając na zwrot komunikatu lub sterowania przez odbiorcę. Odbiorca i nadawca wiadomości asynchronicznej pracują jednocześnie.
  • Komunikat zwrotny oznacza powrót z wywołania procedury.

 

Wiadomości tworzenia i niszczenia

Uczestnicy niekoniecznie żyją przez cały czas trwania interakcji diagramu sekwencji. Uczestników można tworzyć i niszczyć zgodnie z przekazywanymi wiadomościami.

Wiadomość  konstruktora  tworzy swojego odbiorcę. Nadawcy, którzy już istnieją na początku interakcji, są umieszczani na górze diagramu. Cele, które są tworzone podczas interakcji przez wywołanie konstruktora, są automatycznie umieszczane w dalszej części diagramu.

Wiadomość  destruktora  niszczy odbiorcę. Istnieją inne sposoby wskazania, że ​​cel został zniszczony podczas interakcji. Tylko wtedy, gdy zniszczenie celu jest ustawione na „po destruktorze”, musisz użyć destruktora.

Nie natychmiastowa wiadomość

Wiadomości są często uważane za natychmiastowe, dlatego czas potrzebny na dotarcie do odbiorcy jest znikomy. Komunikaty są rysowane jako pozioma strzałka. Aby wskazać, że minie trochę czasu, zanim odbiorca faktycznie otrzyma wiadomość,  używana jest ukośna strzałka .

Fragmenty kombinacji

Fragment sekwencji jest reprezentowany jako prostokąt zwany fragmentem złożonym, który obejmuje część interakcji na wykresie sekwencji. Operator fragmentu (w lewym górnym rogu) wskazuje typ fragmentu. Interaktywne fragmenty umożliwiają grupowanie powiązanych komunikatów na diagramie sekwencji. Dostępne są różne predefiniowane typy fragmentów, umożliwiające określenie alternatywnych wyników, komunikatów równoległych lub pętli.

Fragment diagramu sekwencji to prostokątne ramki narysowane na części diagramu. Reprezentują strukturę warunkową, która wpływa na przepływ komunikatów. Ramki te nazywane są w specyfikacji UML połączonymi fragmentami, a kontenery nazywane są operandami interakcji. Ramki są oznaczone w lewym górnym rogu. Ta etykieta jest określana jako operator interakcji w języku UML.

 

Przykład – scenariusz składania zamówienia

Członek statku, który chce złożyć zamówienie online. Zamówione pozycje zostaną wysłane do członka pocztą kurierską lub pocztą tradycyjną, w zależności od jego statusu członkowskiego (VIP, członek zwyczajny). Jeśli członek wybierze opcję powiadomienia w zamówieniu, sklep wyśle ​​do członka powiadomienie potwierdzające.

EDYTUJ TEN DIAGRAM SEKWENCJI

Inny przykład: Złóż zamówienie

Diagram sekwencji to dwuwymiarowy diagram z osią poziomą reprezentującą obiekty i osią pionową reprezentującą czas, w którym komunikaty są przekazywane poziomo między obiektami i ułożone pionowo w porządku chronologicznym. Przykład przedstawia diagram sekwencji z trzema partycypującymi obiektami: Klient, Zamówienie i Zapas. Nawet nie znając formalnie notacji, prawdopodobnie możesz uzyskać całkiem dobre pojęcie o tym, co się dzieje.

  1. Krok 1 i 2: Klient tworzy zamówienie.
  2. Krok 3: Klient dodaje pozycje do zamówienia.
  3. Krok 4, 5: Każda pozycja jest sprawdzana pod kątem dostępności w magazynie.
  4. Krok 6, 7, 8 : Jeśli produkt jest dostępny, zostaje dodany do zamówienia.
  5. Krok 9 powrót
  6. Krok 10, 11: ocal i zniszcz porządek

EDYTUJ TEN DIAGRAM SEKWENCJI

 

Często używane fragmenty kombinacji

Typy fragmentów obejmują ref, assert, loop, break, alt, opt i neg, ref, sd.

Operator Oznaczający
alt Alternatywne wielokrotne fragmenty: wykona się tylko ten, którego warunek jest prawdziwy.
optować Opcjonalne : fragment jest wykonywany tylko wtedy, gdy podany warunek jest prawdziwy. Odpowiednik alt tylko z jednym śladem.
par Równolegle : każdy fragment jest uruchamiany równolegle.
pętla Pętla : fragment może być wykonywany wiele razy, a strażnik wskazuje podstawę iteracji.
krytyczny Region krytyczny : fragment może mieć tylko jeden wątek wykonujący go jednocześnie.
neg Negatywne : fragment pokazuje nieprawidłową interakcję.
ref Odniesienie : odnosi się do interakcji zdefiniowanej na innym diagramie. Ramka jest rysowana tak, aby obejmowała linie życia zaangażowane w interakcję. Możesz zdefiniować parametry i wartość zwracaną.
SD Diagram sekwencji : używany do otaczania całego diagramu sekwencji.

Uwaga:

  • Możliwe jest łączenie klatek w celu uchwycenia np. pętli lub gałęzi.
  • Połączone  słowa kluczowe fragmentów: alt, opt, break, par, seq, strict, neg, krytyczne, ignorowane, rozważenie, potwierdzenie i pętla.
  • Ograniczenia są zwykle używane do wyświetlania ograniczeń czasowych w komunikatach. Mogą dotyczyć synchronizacji jednej wiadomości lub odstępów między wiadomościami.

Przykłady połączonych fragmentów

(1) Wybór (Alt) – Fragment alternatywny zapewnia kilka strzeżonych fragmentów alternatywnych (oddzielonych operandami interakcji), tj. używanych do określenia wzajemnie wykluczających się wyborów między dwiema lub więcej sekwencjami komunikatów, co odpowiada klasycznemu if..else…:

EDYTUJ TEN DIAGRAM SEKWENCJI

(2) Option (Opt) – Zawiera sekwencję możliwych wystąpień lub niewystąpienia, co oznacza, że ​​opcjonalny fragment jest wykonywany tylko wtedy, gdy spełniony jest jakiś warunek ochronny:

EDYTUJ TEN DIAGRAM SEKWENCJI

(3) Pętla (Pętla) – Pętla umożliwia powtarzanie fragmentu, aż jakiś warunek ochronny stanie się fałszywy:

EDYTUJ TEN DIAGRAM SEKWENCJI

Przerwanie

Przerwa umożliwia wyjście z otaczającej pętli, gdy jakiś strażnik stanie się prawdziwy:

EDYTUJ TEN DIAGRAM SEKWENCJI

Przerwy są najczęściej używane do modelowania obsługi wyjątków. W tym przykładzie diagramu sekwencji zastosowano fragment kombinacji podziału, ponieważ warunek saldo < kwota jest traktowany jako wyjątek, a nie jako przepływ alternatywny. Aby przeczytać ten przykład, zaczynamy od lewego górnego rogu sekwencji i czytamy w dół. Kiedy sekwencja dochodzi do zwracanej wartości „saldo”, sprawdza, czy saldo jest mniejsze niż kwota. Jeśli saldo nie jest mniejsze niż kwota, następną wysłaną wiadomością jest wiadomość addDebitTransaction, a sekwencja przebiega normalnie.

Równoległy

Fragment równoległy umożliwia równoległe działanie wielu interakcji:

EDYTUJ TEN DIAGRAM SEKWENCJI

Ramki

Ramka umożliwia hermetyzację diagramu sekwencji.

EDYTUJ TEN DIAGRAM SEKWENCJI

Odniesienie (odniesienie)

Do ramki można odwoływać się na innym diagramie sekwencji:

EDYTUJ TEN DIAGRAM SEKWENCJI

Protokoły

EDYTUJ TEN DIAGRAM SEKWENCJI

Współpraca

EDYTUJ TEN DIAGRAM SEKWENCJI

Scenariusze

EDYTUJ TEN DIAGRAM SEKWENCJI

Sygnały i przyjęcia

Licytator ogłasza proponowaną cenę za przedmiot w zatłoczonej sali zaniepokojonych licytantów. Kiedy licytant słyszy propozycję, decyduje się przyjąć cenę lub nie.

W jaki sposób prowadzący aukcję rozpowszechni ofertę pakietową podczas aukcji automatycznej? Obiekt może mieć wyznaczone operacje, które powinny być automatycznie wywoływane w przypadku odebrania określonych typów sygnałów rozgłoszeniowych. Metody te nazywane są recepcjami. Sygnały to szczególny rodzaj klas. Nazwa odbioru zwykle odpowiada nazwie sygnału. Przyjęcia są pokazane w osobnym przedziale:

EDYTUJ TEN DIAGRAM SEKWENCJI

Na diagramie sekwencji możemy przedstawić sygnał jako sygnał asynchroniczny, a odbiór jako wywołanie odbioru:

EDYTUJ TEN DIAGRAM SEKWENCJI

Krytyczny

EDYTUJ TEN DIAGRAM SEKWENCJI

Inne typy fragmentów

  • Rygorystyczny
  • Zapewniać
  • Rozważać
  • Ignorować
  • Region
  • Neg

Podsumowanie notacji diagramu sekwencji

Opis notacji Reprezentacja wizualna
Aktor
  • rodzaj roli odgrywanej przez podmiot, który wchodzi w interakcję z podmiotem (np. poprzez wymianę sygnałów i danych)
  • zewnętrzne w stosunku do podmiotu (tj. w tym sensie, że instancja aktora nie jest częścią instancji odpowiadającego jej podmiotu).
  • reprezentują role odgrywane przez użytkowników, sprzęt zewnętrzny lub inne podmioty.

Pamiętaj, że:

  • Aktor niekoniecznie reprezentuje konkretną jednostkę fizyczną, ale jedynie określoną rolę jakiejś jednostki
  • Jedna osoba może odgrywać rolę kilku różnych aktorów i odwrotnie, danego aktora może odgrywać wiele różnych osób.
Diagram sekwencji UML: przykład aktora
linia życia
  • Linia życia reprezentuje indywidualnego uczestnika interakcji.
Diagram sekwencji UML: przykład aktywacji
Aktywacje
  • Cienki prostokąt na linii życia) reprezentuje okres, w którym element wykonuje operację.
  • Górna i dolna część prostokąta są wyrównane odpowiednio z czasem rozpoczęcia i zakończenia
Diagram sekwencji UML: przykład aktywacji
Zadzwoń do wiadomości
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Wiadomość wywoławcza jest rodzajem wiadomości, która reprezentuje wezwanie do działania docelowej linii życia.
Diagram sekwencji UML: przykład wiadomości wywołania
Wiadomość zwrotna
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Wiadomość zwrotna to rodzaj wiadomości, która reprezentuje przekazanie informacji z powrotem do osoby dzwoniącej z poprzedniej wiadomości.
Diagram sekwencji UML: przykład komunikatu zwrotnego
Wiadomość własna
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Wiadomość własna jest rodzajem wiadomości, która reprezentuje wywołanie wiadomości z tej samej linii życia.
Diagram sekwencji UML: przykład wiadomości własnej
Wiadomość rekurencyjna
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Komunikat rekurencyjny to rodzaj komunikatu, który reprezentuje wywołanie komunikatu o tej samej linii życia. Jego cel wskazuje na aktywację nad aktywacją, z której wywołano wiadomość.
Diagram sekwencji UML: przykład wiadomości rekurencyjnej
Stwórz wiadomość
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Utwórz wiadomość to rodzaj wiadomości, która reprezentuje instancję (docelowej) linii życia.
Diagram sekwencji UML: przykład tworzenia wiadomości
Zniszcz wiadomość
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Wiadomość Destroy to rodzaj wiadomości, która reprezentuje prośbę o zniszczenie cyklu życia docelowej linii życia.
Diagram sekwencji UML: przykład niszczenia wiadomości
Wiadomość o czasie trwania
  • Wiadomość definiuje określoną komunikację między liniami życia interakcji.
  • Komunikat czasu trwania pokazuje odległość między dwoma momentami czasu dla wywołania komunikatu.
Diagram sekwencji UML: Przykład komunikatu o czasie trwania
NotatkaNotatka (komentarz) daje możliwość dołączania różnych uwag do elementów. Komentarz nie ma mocy semantycznej, ale może zawierać informacje przydatne dla modelarza. Diagram sekwencji UML: Uwaga przykład