Twórcą metodyki C4 jest Simon Brown – zaproponował on czterostopniowy
model dokumentowania architektury, ukierunkowany na odbiorcę. Model ten
charakteryzuje podejście dość przejrzyste, z niewieloma zasadami oraz
elementami semantycznymi, jakie powinny być stosowane podczas tworzenia
architektury systemu. Ze względu na wyżej wskazane cechy, podejście
takie harmonizuje ze zwinnymi metodykami tworzenia oprogramowania.
Model C4 opiera się o rozdzielenie opisu architektury na cztery warstwy abstrakcji. Każda z nich odgrywa inną rolę. Posiada zróżnicowane cechy i odmienne zawiera odmienne szczegóły. Dzięki temu może być kierowana do programistów, architektów, PO itd. Czyli osób o odmiennych rolach w zespole czy firmie.
Wyróżniamy jak nazwa wskazuje 4 warstwy:
- C1 - Context System - spojrzenie na system z lotu ptaka. Celem jest pokazanie otoczenia, w jakim działa nasz system.
- C2 - Containers - pokazujemy kontenery wchodzące w skład systemu. Pojedynczy kontener to osobno wdrażana i autonomiczna jednostka
- C3 - Components - schodząc niżej na poziom każdego kontenera wizualizujemy komponenty wchodzące w skład danego kontenera
- C4 - Code - na koniec tworzony jest diagram reprezentujący kod. Może być to znany z UMLa diagram klas.
W pewnym sensie można zauważyć tutaj podejście od ogółu do szczegółu.
Poziom 1 – Kontekst Systemu
Punktem wyjściowym do tworzenia architektury jest kontekst, w jakim dany system działa.
Na poziomie tym przedstawiony jest modelowany system, będący centralnym elementem diagramu, a także jego interakcje z zewnętrznymi aktorami lub systemami.
Szczegóły nie są tutaj ważne, ponieważ jest to widok pomniejszony, pokazujący duży obraz krajobrazu systemu. Należy skupić się na ludziach (aktorach, rolach, osobach itp.) i systemach oprogramowania, a nie na technologiach, protokoły i inne szczegóły niskiego poziomu. Jest to rodzaj diagramu, który można pokazać osobom nietechnicznym.
Poziom 2 – Diagram Kontenerów
Wchodząc w głąb systemu uwidacznia się niższy poziom abstrakcji – struktura systemu oparta o kontenery, które odwzorowują rozkład odpowiedzialności elementów systemu realizujących procesy biznesowe. Kontenerem może być osobno uruchamiana bądź instalowana jednostka, wykonująca kod lub zapisująca dane.
Typowymi elementami występującymi na tym poziomie abstrakcji są aplikacje mobilne, aplikacje webowe, bazy danych, czy kolejki systemowe. Co więcej, aspekty techniczne – jak typ magazynu danych czy protokoły użyte w komunikacji pomiędzy kontenerami – są nieodzowną częścią tego poziomu.
Diagram zawiera również systemy zewnętrzne, widoczne na poprzednim poziomie, ilustrując komunikację kontenerów z otoczeniem (światem zewnętrznym).
Głównym odbiorcą tego diagramu jest szeroko rozumiany DevOps – osoby odpowiadające za rozwój, utrzymanie lub zapewnienie jakości systemu – oraz architekci i programiści.
Poziom 3 – Komponenty
Na tym poziomie architektury staramy się przedstawić wnętrze pojedynczego kontenera składającego się z komponentów. W podejściu C4 komponent odzwierciedla „prawdziwą abstrakcję” na poziomie kodu, czyli zgrupowanie kodu mające wspólną bazę, znaczenie czy funkcjonalność.
Na tym poziomie widoczne są aspekty technologiczne odnoszące się do implementacji komponentu, czyli użyty framework, czy język programowania.
Poziom 4 – Klasy
Pojedyncze klasy są tematem najniższego poziomu architektury C4.
Zidentyfikowane w poprzednim kroku komponenty posiadają wewnętrzną strukturę, którą można rozłożyć na klasy lub inne artefakty. Modelując duże i złożone systemy, komponenty mogą być tak dużą jednostką architektoniczną, że na tym poziomie uwypukla się architektura aplikacji – rozkład na warstwy lub inne style architektoniczne.
Zważywszy na fakt, że grupą docelową tego poziomu są programiści i architekci, czyli osoby operujące na kodzie, poziom ten można zwizualizować za pomocą diagramu klas, który jest składową języka UML.
Jest to opcjonalny poziom szczegółowości i często jest dostępny na żądanie z narzędzi, takich jak IDE.
Materiały:
https://modelc4.pl/
https://c4model.com/
https://mrdev.pl/10-powodow-dla-ktorych-warto-znac-model-c4
https://tomaszsokol.pl/wizualizacja-architektury-zgodnie-z-modelem-c4-podejscie-praktyczne/
Brak komentarzy:
Prześlij komentarz