Wykres sekwencji UML to istotny narzędzie do zrozumienia zachowania dynamicznego systemu. Modeluje sposób, w jaki obiekty wzajemnie się oddziałują oraz kolejność tych oddziaływań, podkreślając uporządkowany w czasie przepływ wiadomości. Jest kluczowy do definiowania przypadków użycia, dokumentowania wywołań interfejsów API oraz śledzenia złożonych przepływów transakcji.
Ten samouczek przewodniczy Ci przez podstawowe elementy i techniki modelowania wykresu sekwencji.
Podstawowa struktura i cel
Wykres sekwencji jest organizowany wzdłuż dwóch osi:
- Oś pozioma: Pokazuje uczestniczące Obiekty (lub aktorów, klas i komponentów).
- Oś pionowa (oś czasu): Reprezentuje przepływ czasu, poruszający się w dół. Wiadomości wysyłane niżej na wykresie pojawiają się później w sekwencji.

Cel polega na odpowiedzi na pytanie: „W tym konkretnym scenariuszu (przypadku użycia), w jakiej kolejności te obiekty wymieniają informacje, aby osiągnąć oczekiwany wynik?“
Podstawowe elementy wykresu sekwencji
Aby zamodelować sekwencję, potrzebne są trzy podstawowe elementy: linie życia, wiadomości i paski aktywacji.
A. Linie życia (uczestnicy)
Linia życia reprezentuje jednego uczestnika — obiekt, instancję lub klasę — w interakcji.
- Oznaczenie: Prostokątny pudełko na górze wykresu zawierające nazwę obiektu, z pionową linia kreskową rozciągającą się w dół.
- Składnia:
NazwaUczestnika(jeśli obiekt jest instancją, np.użytkownik)NazwaInstancji: NazwaKlasy(np.authService: AuthenticationService)
- Cel:Przerywana linia wskazuje istnienie uczestnika w czasie w zakresie sekwencji.

B. Komunikaty (Interakcja)
Komunikaty to poziome strzałki rysowane między liniami życia. Odpowiadają one komunikacji między obiektami, takimi jak wywołania metod, sygnały lub żądania API.

Rodzaje komunikatów:
| Typ komunikatu | Oznaczenie | Opis |
|---|---|---|
| Wywołanie synchroniczne | Pełna linia z zatoczoną strzałką | Wysyłający oczekuje odpowiedzi przed kontynuowaniem. Powoduje to rozpoczęciePasek aktywacjina linii życia odbiorcy. |
| Odpowiedź/Zwrot | Linia przerywana z otwartą strzałką | Odpowiedź na wywołanie synchroniczne, wskazująca na powrót kontroli do nadawcy. Zazwyczaj zamyka pasek aktywacji. |
| Komunikat asynchroniczny | Pełna linia z otwartą strzałką | Nadawca nie oczekuje odpowiedzi i natychmiast kontynuuje swoją własną realizację. Często występuje w architekturach opartych na zdarzeniach. |
| Wywołanie własne | Strzałka, która wraca do tej samej linii życia | Obiekt wywołujący jedną z własnych metod. |
| Komunikat zewnętrzny | Strzałka wychodząca z punktu końcowego i uderzająca w linię życia | Nadawcą komunikatu jest nieznany lub poza zakresem diagramu (np. zewnętrzny wyzwalacz). |
C. Paski aktywacji (specyfikacja wykonania)
Pasek aktywacji (nazywany również skupieniem kontroli) to cienki prostokąt pionowy rysowany na linii życia.
- Oznaczenie: Pełny pionowy prostokąt na linii życia.
- Cel: Oznacza okres, w którym obiekt aktywnie wykonuje operację (tj. jego metoda jest uruchomiona) lub oczekuje na odpowiedź synchroniczną. Zaczyna się w momencie otrzymania komunikatu synchronicznego i kończy się w momencie wysłania komunikatu odpowiedzi.
Modelowanie logiki i przepływu sterowania
Aby zamodelować złożoną logikę biznesową, używasz fragmentów (lub prostokątów), aby otoczyć sekcje diagramu.
A. Fragmenty połączone
Fragmenty połączone pozwalają na modelowanie logiki warunkowej, powtarzania i opcjonalnych kroków. Najczęstsze fragmenty to:
- Alternatywa (alt): Używane do if-else logiki. Fragment jest podzielony linią przerywaną, a każda sekcja zawiera warunek (tzw. „ochrona”) w nawiasach kwadratowych. Można wybrać tylko jedną drogę.
- Przykład:
[jeśli dane uwierzytelniające użytkownika są poprawne]i[w przeciwnym razie / niepoprawne dane uwierzytelniające].
- Przykład:
- Opcja (opt): Używane do if instrukcji. Interakcja wewnątrz fragmentu jest opcjonalna i wykonuje się tylko wtedy, gdy warunek (ochrona) jest prawdziwy.
- Przykład:
[jeśli użytkownik ma przedmioty w koszyku].
- Przykład:
- Pętla (loop): Używane do powtarzania. Ochrona określa warunek iteracji (np.
[dla każdego przedmiotu]lub[dopóki (próby < 3)]). - Odwołanie (ref): Używane do modularizacji diagramu przez odwołanie się do sekwencji interakcji zdefiniowanej w innym, oddzielnym diagramie sekwencji. Zapobiega to nadmiernemu zatłoczeniu diagramów.
- Krytyczny (crit): Służy do oznaczenia sekcji, która nie może być przerwana, często używana do modelowania procesów współbieżnych.
Przykład modelowania krok po kroku
Zamodelujmy uproszczonyProces wyboru użytkownika używając podstawowych elementów:
| Krok | Działanie | Typ wiadomości |
|---|---|---|
| 1. | Użytkownik kliknął „Zamówienie.” | Wywołanie synchroniczne |
| 2. | Frontend weryfikuje koszyk. | Wywołanie własne (na frontendzie) |
| 3. | Frontend prosi o przetworzenie płatności. | Wywołanie synchroniczne |
| 4. | Brama płatności sprawdza środki. | Wywołanie synchroniczne |
| 5. | Brama płatności zwraca „Sukces.” | Wiadomość zwrotna |
| 6. | Frontend wysyła wiadomość asynchroniczną do usługi Inwentarz w celu zmniejszenia stanu. | Wiadomość asynchroniczna |
| 7. | Frontend wysyła wiadomość synchroniczną do usługi Zamówienia w celu finalizacji zamówienia. | Wywołanie synchroniczne |
| 8. | Usługa Zamówień zwraca „ID zamówienia”. | Wiadomość zwrotna |
| 9. | Frontend wyświetla stronę potwierdzenia. | Wiadomość zwrotna (do użytkownika) |
Modelowanie logiki (fragment alternatywy)
Aby obsłużyć błąd, używamy Alternatywy fragment:
- Umieść Sprawdzenie bramki płatności (krok 4 i 5) wewnątrz
altfragmentu. - Pierwsza sekcja jest chroniona przez
[Sukces]. Ta sekcja zawiera kroki 6, 7, 8 i 9. - Druga sekcja, podzielona linią przerywaną, jest chroniona przez
[Błąd]. Ta sekcja zawiera nową wiadomość synchroniczną:paymentService -> frontend: zwróć „Płatność nie powiodła się”a frontend wyświetla stronę z błędem.
Podsumowanie najlepszych praktyk diagramów sekwencji
- Zachowaj skupienie: Diagram sekwencji powinien zazwyczaj modelować pojedynczy przypadek użycia lub pojedynczą operację atomową (np. „Zaloguj się”, „Dodaj przedmiot do koszyka”). Użyj Fragmentów odwołaniowych do podprocesów.
- Jasno oznacz wiadomości: Używaj fraz z czasownikiem dla wiadomości, odzwierciedlając nazwy metod lub punkty końcowe interfejsów API (np.
processPayment(ilość, token)). - Poprawne identyfikowanie uczestników: Rozróżnij między Aktora (zewnętrzny element) i Obiekt (wewnętrzny składnik systemu lub wystąpienie).
- Czas płynie w dół: Upewnij się, że wiadomości są spójnie ułożone od góry do dołu.
- Użyj fragmentów do kontroli: Unikaj rysowania złożonych węzłów decyzyjnych lub pętli w samym przepływie wiadomości; użyj
alt,opt, iloopfragmentów.
Aby uzyskać więcej informacji na temat UML i jego metod wizualizacji opartych na AI, odwiedź nasz centrum zasobów UML.
Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文












