Diagramy sekwencji

Diagramy sekwencji wizualizują sposób, w jaki obiekty wchodzą w interakcje w czasie. Pokazują kolejność komunikatów wymienianych między uczestnikami w celu wykonania określonego zadania lub scenariusza.

Podstawowe pojęcia

Uczestnicy

Uczestnicy reprezentują obiekty lub aktorów zaangażowanych w interakcję. Każdy uczestnik ma linię życia — pionową linię przerywaną rozciągającą się w dół, która reprezentuje czas.

Komunikaty

Komunikaty to wymiany informacji między uczestnikami, przedstawiane jako poziome strzałki między liniami życia. Czas płynie od góry do dołu.

Paski aktywacji

Paski aktywacji (zwane też specyfikacjami wykonania) to cienkie prostokąty na linii życia, które pokazują, kiedy uczestnik aktywnie przetwarza.

Tworzenie uczestników

Za pomocą narzędzia Uczestnik

Na stronie UML Sequence Diagram naciśnij P lub wybierz Uczestnik z menu UML na pasku narzędzi, a następnie klikaj na płótnie, aby umieszczać uczestników. Nowi uczestnicy ustawiają się w linii z istniejącymi. Naciśnij Return przy zaznaczonym uczestniku, aby zmienić jego nazwę.

Typy uczestników

Uczestnicy mogą reprezentować różne typy encji:

  • Uczestnik - ogólny obiekt lub część systemu (prostokąt)
  • Aktor - użytkownik lub system zewnętrzny (figurka ludzika)
  • Granica - granica interfejsu lub systemu
  • Kontroler - logika procesu lub kontrolera
  • Encja - obiekt danych lub domeny
  • Baza danych - magazyn danych

Ustaw Typ roli w zakładce Rozmieść Inspektora → sekcja UML.

Tworzenie komunikatów

Za pomocą narzędzia Komunikat

Naciśnij M, aby aktywować narzędzie Komunikat, a następnie:

  1. Kliknij na linii życia uczestnika źródłowego
  2. Przeciągnij do linii życia uczestnika docelowego
  3. Puść, aby utworzyć komunikat

Typy komunikatów

TypStyl strzałkiOpis
SynchronicznyLinia ciągła, wypełniona strzałkaNadawca czeka na odpowiedź
AsynchronicznyLinia ciągła, otwarta strzałkaNadawca kontynuuje bez czekania
ZwrotnyLinia przerywana, otwarta strzałkaOdpowiedź na wywołanie synchroniczne
TworzącyLinia przerywana, otwarta strzałka do polaTworzy nowego uczestnika
NiszczącyLinia kończąca się na XKończy uczestnika
SamowywołanieStrzałka zapętlająca się do tej samej linii życiaUczestnik wywołuje sam siebie

Ustaw Typ komunikatu zaznaczonego komunikatu w sekcji UML Inspektora.

Etykiety komunikatów

Zaznacz komunikat i edytuj jego Etykietę w sekcji UML Inspektora. Typowe formaty:

  • nazwaMetody() - proste wywołanie metody
  • nazwaMetody(param1, param2) - wywołanie z parametrami
  • wynik := nazwaMetody() - wywołanie z przypisaniem wartości zwracanej
  • [warunek] nazwaMetody() - komunikat warunkowy (strażnik)

Paski aktywacji

Paski aktywacji pokazują okres, w którym uczestnik wykonuje przetwarzanie lub czeka na odpowiedź.

Dodawanie pasków aktywacji

  1. Wybierz Aktywacja z menu UML na pasku narzędzi
  2. Przeciągnij wzdłuż linii życia uczestnika na odcinku, na którym jest aktywny
  3. Pasek aktywacji zostaje umieszczony na tej linii życia

Zagnieżdżone aktywacje

Gdy uczestnik wywołuje sam siebie (wywołanie rekursywne) lub obsługuje wiele zagnieżdżonych wywołań, paski aktywacji mogą być ułożone jeden na drugim.

Fragmenty

Fragmenty grupują komunikaty, aby pokazać logikę warunkową, pętle lub inny przepływ sterowania.

Typy fragmentów

TypSłowo kluczowePrzeznaczenie
AlternatywaaltRozgałęzienie if-else
OpcjaoptOpcjonalne wykonanie (if bez else)
PętlaloopPowtarzane wykonanie
PrzerwaniebreakWyjście z otaczającej pętli
RównoległeparJednoczesne wykonanie
KrytycznecriticalSekcja atomowa/krytyczna
NegatywnenegNieprawidłowa interakcja
AsercjaassertWymagana interakcja
IgnorujignoreKomunikaty, które można zignorować
UwzględnijconsiderKomunikaty, które muszą zostać uwzględnione
OdniesienierefOdniesienie do innej interakcji

Tworzenie fragmentów

  1. Wybierz Fragment z menu UML na pasku narzędzi
  2. Przeciągnij prostokąt nad uczestnikami i komunikatami, które chcesz zgrupować
  3. Zaznacz fragment i ustaw jego Typ fragmentu w sekcji UML Inspektora
  4. Wprowadź Warunek strzeżony w razie potrzeby

Strażnicy fragmentów

Strażnicy to warunki wyświetlane w nawiasach kwadratowych:

  • [x > 0] - warunek numeryczny
  • [user.isAdmin] - sprawdzenie właściwości
  • [else] - domyślna/alternatywna gałąź w fragmentach alt

Zmiana kolejności elementów

Przesuwanie uczestników

Przeciągaj uczestników poziomo, aby zmienić ich kolejność. Połączone komunikaty podążą za nimi.

Przesuwanie komunikatów

Zaznacz komunikat i naciśnij Cmd+↑ lub Cmd+↓, aby przesunąć go wcześniej lub później w sekwencji.

Dobre praktyki

  1. Zacznij od głównego przepływu - zamodeluj najpierw szczęśliwą ścieżkę, potem dodaj alternatywy
  2. Zachowaj czytelność - ogranicz się do 5–7 uczestników na diagram
  3. Używaj znaczących nazw - etykietuj komunikaty rzeczywistymi nazwami metod lub opisami
  4. Pokazuj komunikaty zwrotne - szczególnie dla wywołań synchronicznych, gdzie wartość zwracana ma znaczenie
  5. Używaj fragmentów oszczędnie - zbyt wiele zagnieżdżonych fragmentów zmniejsza czytelność
  6. Dodawaj notatki - używaj karteczek, aby wyjaśnić złożoną logikę

Przykład: przepływ logowania użytkownika

Typowa sekwencja logowania może obejmować:

  1. Użytkownik wprowadza dane uwierzytelniające
  2. Klient wysyła żądanie logowania do serwera
  3. Serwer waliduje z bazą danych
  4. Baza danych zwraca rekord użytkownika
  5. Serwer tworzy sesję
  6. Serwer zwraca sukces/niepowodzenie do klienta
  7. Klient aktualizuje interfejs

Ten przepływ demonstruje wywołania synchroniczne, komunikaty zwrotne i potencjalne fragmenty alt dla ścieżek sukcesu/niepowodzenia.