Oba diagramy pokazują interakcję#

Diagram sekwencji i diagram komunikacji są diagramami interakcji UML. Mogą przedstawiać tych samych uczestników i komunikaty, ale kładą nacisk na inne aspekty. Sekwencja pokazuje porządek wzdłuż pionowej osi czasu i ułatwia analizę kolejności, alternatyw oraz aktywacji. Diagram komunikacji skupia się na powiązaniach między uczestnikami; kolejność komunikatów zapisuje się za pomocą numeracji.

Klient wysyła żądanie do systemu, a system kolejno sprawdza dostępność produktu w magazynie i potwierdza wynik.
Diagram sekwencji uwydatnia kolejność komunikatów w czasie.

W sekwencji od góry do dołu widać, że system najpierw sprawdza dostępność, a potem wysyła potwierdzenie. Diagram komunikacji przedstawiłby podobne wiadomości przy połączeniach między uczestnikami, z numerami typu 1, 1.1 i 2. W dużej interakcji często łatwiej odczytać chronologię z sekwencji, a topologię współpracy z komunikacji.

Kiedy wybrać sekwencję#

Wybierz diagram sekwencji, gdy najważniejsze są kolejność komunikatów, odpowiedzi, czasowe aktywacje, warunki, pętle lub alternatywne przebiegi. Pionowa oś czasu intuicyjnie porządkuje interakcję i ułatwia powiązanie jej z konkretnym scenariuszem przypadku użycia.

Sekwencja dobrze pokazuje wywołania synchroniczne i asynchroniczne, samowywołania, tworzenie i zakończenie linii życia oraz fragmenty alt, opt, loop i par. Przy dużej liczbie uczestników i komunikatów diagram może jednak stać się szeroki i długi. Rozważ podział interakcji na kilka widoków lub użycie odwołań do innych interakcji.

Kiedy wybrać komunikację#

Diagram komunikacji jest przydatny, gdy chcesz pokazać, które obiekty są ze sobą powiązane i jak rozkładają się komunikaty w sieci współpracowników. Łączy elementy układu strukturalnego z opisem interakcji; wiadomości są numerowane, by określić kolejność i zagnieżdżenie.

Wybierz go, gdy rozmowa dotyczy odpowiedzialności sąsiadujących obiektów albo zależności komunikacyjnych, a dokładna oś czasu nie jest centralna. Przy wielu sekwencyjnych i zagnieżdżonych komunikatach numeracja może stać się trudna do śledzenia, dlatego sekwencja bywa czytelniejsza.

Informacja wspólna i odmienna#

Oba diagramy opisują komunikaty między liniami życia i mogą pokazywać warunki, pętle oraz fragmenty interakcji. Zmiana perspektywy nie zmienia samego zachowania, które modelujesz. To różne notacje widoku interakcji, nie dwie różne wersje implementacji.

Sekwencja uwydatnia porządek pionowy i aktywacje; komunikacja uwydatnia połączenia między uczestnikami i używa numerowania do odtworzenia kolejności. Żaden nie jest automatycznie dokładniejszy. Dobry diagram pomija szczegóły niepotrzebne dla pytania, na które ma odpowiedzieć.

Jak podjąć decyzję#

  • Jeśli odbiorca pyta „co dzieje się najpierw, a co potem?”, wybierz sekwencję.
  • Jeśli pyta „które obiekty współpracują i przez jakie połączenia?”, rozważ komunikację.
  • Jeśli przebieg ma wiele gałęzi i powrotów, sprawdź czytelność numeracji; sekwencja może być prostsza.
  • Jeśli oś czasu wymaga tylko kilku komunikatów, oba diagramy mogą działać — wybierz format używany przez zespół.
  • Nie twórz dwóch diagramów tylko po to, by pokazać tę samą interakcję drugi raz. Użyj obu, gdy każdy odpowiada na osobne pytanie.

Najczęstsze błędy#

  • Sekwencja utożsamiona z komunikacją. To różne diagramy interakcji, z odmiennym naciskiem wizualnym.
  • Położenie poziome sekwencji odczytane jako czas. Chronologię przedstawia oś pionowa.
  • Kolejność komunikacji pozostawiona bez numerów. Numerowanie jest potrzebne, by odtworzyć porządek wiadomości.
  • Numery wiadomości uznane za czas trwania. To kolejność i zagnieżdżenie, nie miara czasu.
  • Struktura połączeń wywnioskowana z samej sekwencji. Sekwencja nie musi pokazywać trwałych asocjacji między uczestnikami.
  • Zbyt wiele komunikatów na jednym diagramie. Podziel scenariusz, jeśli traci czytelność.
  • Zduplikowane widoki bez celu. Każdy diagram powinien dostarczać odrębnej wartości.

Podsumowanie#

Diagram sekwencji jest najlepszy, gdy trzeba czytać chronologię i aktywacje. Diagram komunikacji lepiej uwydatnia połączenia między współpracującymi obiektami, a kolejność koduje numerami. Wybieraj widok zgodnie z pytaniem, a nie jako konkurujące reprezentacje zachowania.