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 uczestnika

Naciśnij P, aby aktywować narzędzie uczestnika, a następnie kliknij na obszarze roboczym, aby umieszczać uczestników.

Diagram sekwencji z uczestnikami

Typy uczestników

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

  • Actor - Użytkownik lub system zewnętrzny (ikona postaci)
  • Object - Instancja klasy (prostokąt)
  • Component - Komponent systemu (prostokąt ze stereotypem)
  • Boundary - Granica interfejsu lub systemu
  • Control - Logika procesu lub kontrolera
  • Entity - Obiekt danych lub domeny

Skonfiguruj typ uczestnika w panelu Inspektora.

Tworzenie komunikatów

Za pomocą narzędzia komunikatu

Naciśnij M, aby aktywować narzędzie komunikatu, 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

Typy komunikatów

Etykiety komunikatów

Kliknij dwukrotnie na komunikat, aby edytować jego etykietę. 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. Zaznacz komunikat
  2. W Inspektorze włącz „Show Activation"
  3. Pasek aktywacji pojawi się na linii życia odbierającego uczestnika

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ć nakładane.

Paski aktywacji

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

Tworzenie fragmentów

  1. Zaznacz komunikaty, które chcesz zgrupować
  2. Kliknij prawym przyciskiem myszy i wybierz „Add Fragment" lub użyj narzędzia fragmentu
  3. Wybierz typ fragmentu
  4. W razie potrzeby dodaj warunki/strażniki

Przykład fragmentu

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

Przeciągaj komunikaty pionowo, aby zmienić ich kolejność w sekwencji. Wpływa to na czas/kolejność interakcji.

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 elementów notatek, 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.