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?”.
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.