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:
- Kliknij na linii życia uczestnika źródłowego
- Przeciągnij do linii życia uczestnika docelowego
- Puść, aby utworzyć komunikat
Typy komunikatów
| Typ | Styl strzałki | Opis |
|---|---|---|
| Synchroniczny | Linia ciągła, wypełniona strzałka | Nadawca czeka na odpowiedź |
| Asynchroniczny | Linia ciągła, otwarta strzałka | Nadawca kontynuuje bez czekania |
| Zwrotny | Linia przerywana, otwarta strzałka | Odpowiedź na wywołanie synchroniczne |
| Tworzący | Linia przerywana, otwarta strzałka do pola | Tworzy nowego uczestnika |
| Niszczący | Linia kończąca się na X | Kończy uczestnika |
| Samowywołanie | Strzałka zapętlająca się do tej samej linii życia | Uczestnik 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 metodynazwaMetody(param1, param2)- wywołanie z parametramiwynik := 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
- Wybierz Aktywacja z menu UML na pasku narzędzi
- Przeciągnij wzdłuż linii życia uczestnika na odcinku, na którym jest aktywny
- 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
| Typ | Słowo kluczowe | Przeznaczenie |
|---|---|---|
| Alternatywa | alt | Rozgałęzienie if-else |
| Opcja | opt | Opcjonalne wykonanie (if bez else) |
| Pętla | loop | Powtarzane wykonanie |
| Przerwanie | break | Wyjście z otaczającej pętli |
| Równoległe | par | Jednoczesne wykonanie |
| Krytyczne | critical | Sekcja atomowa/krytyczna |
| Negatywne | neg | Nieprawidłowa interakcja |
| Asercja | assert | Wymagana interakcja |
| Ignoruj | ignore | Komunikaty, które można zignorować |
| Uwzględnij | consider | Komunikaty, które muszą zostać uwzględnione |
| Odniesienie | ref | Odniesienie do innej interakcji |
Tworzenie fragmentów
- Wybierz Fragment z menu UML na pasku narzędzi
- Przeciągnij prostokąt nad uczestnikami i komunikatami, które chcesz zgrupować
- Zaznacz fragment i ustaw jego Typ fragmentu w sekcji UML Inspektora
- 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
- Zacznij od głównego przepływu - zamodeluj najpierw szczęśliwą ścieżkę, potem dodaj alternatywy
- Zachowaj czytelność - ogranicz się do 5–7 uczestników na diagram
- Używaj znaczących nazw - etykietuj komunikaty rzeczywistymi nazwami metod lub opisami
- Pokazuj komunikaty zwrotne - szczególnie dla wywołań synchronicznych, gdzie wartość zwracana ma znaczenie
- Używaj fragmentów oszczędnie - zbyt wiele zagnieżdżonych fragmentów zmniejsza czytelność
- 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ć:
- Użytkownik wprowadza dane uwierzytelniające
- Klient wysyła żądanie logowania do serwera
- Serwer waliduje z bazą danych
- Baza danych zwraca rekord użytkownika
- Serwer tworzy sesję
- Serwer zwraca sukces/niepowodzenie do klienta
- Klient aktualizuje interfejs
Ten przepływ demonstruje wywołania synchroniczne, komunikaty zwrotne i potencjalne fragmenty alt dla ścieżek sukcesu/niepowodzenia.