Wszystko, Co Musisz Wiedzieć O Diagramach Sekwencji
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.
Obiekty diagramu sekwencji
- 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.
- W porównaniu z innymi diagramami UML, diagram sekwencji czasowej kładzie większy nacisk na chronologiczną kolejność zachowań interakcji.
- 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:
- Zawiera nazwę obiektu i nazwę klasy, na przykład: live class: class, na diagramie szeregów czasowych, z „obiektem: class”.
- Pokazuje tylko nazwę klasy, czyli jest to obiekt anonimowy, na przykład: :kurs; na diagramie czasowym, z „:class”.
- 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.
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.
- Krok 1 i 2: Klient tworzy zamówienie.
- Krok 3: Klient dodaje pozycje do zamówienia.
- Krok 4, 5: Każda pozycja jest sprawdzana pod kątem dostępności w magazynie.
- Krok 6, 7, 8 : Jeśli produkt jest dostępny, zostaje dodany do zamówienia.
- Krok 9 powrót
- Krok 10, 11: ocal i zniszcz porządek
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…:
(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:
(3) Pętla (Pętla) – Pętla umożliwia powtarzanie fragmentu, aż jakiś warunek ochronny stanie się fałszywy:
Przerwanie
Przerwa umożliwia wyjście z otaczającej pętli, gdy jakiś strażnik stanie się prawdziwy:
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:
Ramki
Ramka umożliwia hermetyzację diagramu sekwencji.
Odniesienie (odniesienie)
Do ramki można odwoływać się na innym diagramie sekwencji:
Protokoły
Współpraca
Scenariusze
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:
Na diagramie sekwencji możemy przedstawić sygnał jako sygnał asynchroniczny, a odbiór jako wywołanie odbioru:
Krytyczny
Inne typy fragmentów
- Rygorystyczny
- Zapewniać
- Rozważać
- Ignorować
- Region
- Neg
Podsumowanie notacji diagramu sekwencji
Opis notacji | Reprezentacja wizualna |
---|---|
Aktor
Pamiętaj, że:
|
|
linia życia
|
|
Aktywacje
|
|
Zadzwoń do wiadomości
|
|
Wiadomość zwrotna
|
|
Wiadomość własna
|
|
Wiadomość rekurencyjna
|
|
Stwórz wiadomość
|
|
Zniszcz wiadomość
|
|
Wiadomość 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. |