Odpowiadają na różne pytania#

Diagram komponentów pokazuje modularne części systemu oraz ich interfejsy i zależności. Diagram wdrożenia pokazuje środowisko wykonawcze: węzły, artefakty, przypisania wdrożeniowe i ścieżki komunikacji. Pierwszy odpowiada głównie „z jakich modułów składa się system i przez jakie kontrakty współpracują?”, drugi — „gdzie i na czym uruchomiono lub planujemy uruchomić jego artefakty?”.

Komponent Sklep wymaga interfejsu IPayment, który dostarcza komponent Platnosci.
Diagram komponentów pokazuje logiczne moduły i ich kontrakty.

Diagram komponentów mówi, że Sklep wymaga kontraktu płatności, dostarczanego przez Platnosci. Nie określa, czy są to dwa procesy, dwa kontenery czy dwie biblioteki w jednej aplikacji. Te informacje należą do widoku wdrożenia.

Diagram komponentów: logiczna architektura#

Komponent jest modularną częścią systemu o określonych interfejsach dostarczanych i wymaganych. Diagram może przedstawiać zależności, porty, łączniki montażowe i delegację, a także mapowanie komponentów na klasy lub inne elementy, jeśli ten poziom szczegółu jest potrzebny.

Komponent nie musi odpowiadać pojedynczemu plikowi lub procesowi. Może być usługą złożoną z wielu artefaktów albo fragmentem monolitu. Granice należy wyznaczać według odpowiedzialności i kontraktów, nie wyłącznie według infrastruktury.

Diagram wdrożenia: środowisko wykonawcze#

Diagram wdrożenia przedstawia węzły sprzętowe lub programowe, takie jak serwery, urządzenia, kontenery, maszyny wirtualne lub środowiska uruchomieniowe. Artefakty — na przykład pakiet aplikacji, obraz kontenera, skrypt albo plik konfiguracji — można przypisać do węzłów. Połączenia między węzłami mogą pokazywać ścieżki komunikacji.

Diagram może opisywać konfigurację docelową, konkretną instancję środowiska lub wariant dla testów i produkcji. Ustal ten zakres jawnie. Przypisanie artefaktu do węzła nie potwierdza, że został on rzeczywiście wdrożony ani że działa.

Jak powiązać oba widoki#

Komponenty mogą być realizowane przez artefakty, a artefakty wdrażane na węzłach. Dzięki temu można przejść od logicznej architektury do fizycznego rozmieszczenia. Mapowanie jest relacją modelu i wymaga jasnych założeń: komponent może być rozłożony na kilka artefaktów, wiele komponentów może być pakowanych razem, a artefakt może zawierać zasoby używane przez wiele elementów.

Przykładowo komponent Platnosci może być zbudowany jako platnosci.jar i wdrożony na tym samym klastrze co sklep.jar, mimo że pozostaje osobnym modułem logicznym. Diagram komponentów pokaże kontrakt między modułami, a wdrożenia — ich lokalizację i połączenia środowiskowe.

Czy można użyć jednego diagramu?#

Jeśli system jest mały, jeden uproszczony diagram może zawierać zarówno elementy logiczne, jak i wdrożeniowe, ale mieszanie poziomów utrudnia interpretację. Używaj osobnych diagramów, gdy granice modułów nie pokrywają się z węzłami lub gdy różne osoby utrzymują architekturę i infrastrukturę.

Nie dubluj nazw bez wyjaśnienia. Jeśli komponent i węzeł mają tę samą nazwę, wskaż, czy komponent jest wdrożony na węźle, czy modelujesz jeden pojęciowy element. Nazwij widoki „logiczny” i „wdrożeniowy” albo dodaj zakres i środowisko w tytule diagramu.

Szybki wybór#

  • Pokaż interfejsy i zależności modułów: diagram komponentów.
  • Pokaż serwery, kontenery, urządzenia lub środowiska: diagram wdrożenia.
  • Pokaż artefakt i miejsce jego uruchomienia: diagram wdrożenia.
  • Pokaż, że klient zależy od kontraktu, niezależnie od topologii: diagram komponentów.
  • Pokaż mapowanie komponentu na paczkę i węzeł: użyj powiązanych widoków lub kilku czytelnych warstw.

Typowe błędy#

  • Komponent utożsamiony z serwerem. Jeden jest granicą modułu, drugi środowiskiem wykonania.
  • Artefakt utożsamiony z komponentem. Artefakt to materialny wynik lub plik, komponent — element architektury.
  • Wdrożenie utożsamione z zależnością. Miejsce uruchomienia i kontrakt współpracy to różne informacje.
  • Deklarowana topologia uznana za potwierdzony stan. Diagram nie jest monitoringiem.
  • Wszystko umieszczone w jednym widoku. Rozdziel perspektywy, jeśli obniża to czytelność.
  • Niezgodne granice w powiązanych diagramach. Ustal relację komponentów, artefaktów i węzłów.

Podsumowanie#

Diagram komponentów opisuje moduły i ich kontrakty; diagram wdrożenia — artefakty oraz środowiska, w których mogą działać. Oba widoki uzupełniają się, gdy potrzebujesz przejść od logicznej architektury do infrastruktury. Nie traktuj ich jako zamiennych map tego samego poziomu.