jobbra|bélyegkép| A C4 modell absztrakciói: Egy szoftverrendszer egy vagy több konténerből áll (például webalkalmazásokból, adatbázisokból stb.), amelyek mindegyike egy vagy több komponenst tartalmaz. Ezeket a komponenseket pedig egy vagy több kódelem (osztály, interfész, objektum, függvény stb.) valósítja meg. A C4 modell egy letisztult, grafikus jelölésrendszer, amelyet szoftverrendszerek architektúrájának modellezésére használnak.Richards, Mark; Ford, Neal (2019). A szoftverarchitektúra alapjai: mérnöki megközelítés. O’Reilly Media, 293. o. . . „Bizonyos szabványok kezdenek elterjedni a szoftverarchitektúrák diagramjainak készítésére (ilyen például Simon Brown szoftverarchitektúra által megalkotott C4 modell, vagy a The Open Group ArchiMate szabványa).” Egy strukturális felbontáson – vagyis hierarchikus faszerkezeten – alapul, amely a rendszert konténerekre és komponensekre bontja. A részletesebb bontáshoz meglévő modellezési technikákra, például az Egységes Modellezési Nyelvre (UML) vagy az entitás-kapcsolat diagramokra (ERD) támaszkodik.

Története bélyegkép| Simon Brown C4 modellről szóló technikai előadása Dublinban 2025-ben A C4 modellt Simon Brown szoftvertervező alkotta meg 2006 és 2011 között, az Egységes Modellezési Nyelv (UML) és a 4+1 architekturális nézetmodell alapjaira építve. Egy hivatalos weboldal elindítása Creative Commons licenc alatt,Brown, Simon. The C4 model for visualising software architecture. c4model.com (a modellezési technika hivatalos weboldala). Archiválva: 2010. február 25. Letöltve: 2020. augusztus 22. valamint egy 2018-ban megjelent cikkBrown, Simon (2018. június 25). The C4 Model for Software Architecture. InfoQ. Archiválva: 2018. december 12. Letöltve: 2020. augusztus 22. hozzájárult a módszer szélesebb körű elterjedéséhez.

Áttekintés A C4 modell egy szoftverrendszer architektúráját dokumentálja több nézőpont bemutatásával,Keeling, Michael. Design it! : from programmer to software architect. Raleigh, Észak-Karolina. . . amelyek szemléltetik a rendszer konténerekre és komponensekre való felbontását, ezeknek az elemeknek a kapcsolatát, valamint ahol releváns a felhasználókkal való viszonyát is.

A nézőpontok hierarchikus szintjük szerint vannak rendszerezve:Enríquez, René (2018). Software Architecture with Spring 5.0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications. Társszerző: Salazar, Alberto. Packt Publishing Ltd., 41–44. o. . .

Kontextusdiagramok (1. szint): bemutatják a vizsgált rendszert, valamint annak kapcsolatát a felhasználókkal és más rendszerekkel. Konténerdiagramok (2. szint): a rendszert egymással összefüggő konténerekre bontják. Egy konténer lehet például egy alkalmazás vagy egy adattároló. Komponensdiagramok (3. szint): a konténereket tovább bontják egymással kapcsolatban álló komponensekre, és ezek kapcsolatát más konténerekkel vagy rendszerekkel is ábrázolják. Kóddiagramok (4. szint): további részleteket adnak az architekturális elemek felépítéséről, amelyeket már közvetlenül a forráskódhoz lehet kapcsolni. Ezen a szinten a C4 modell meglévő jelöléseket használ, mint például az Egységes Modellezési Nyelv (UML), az entitás-kapcsolat diagramok (ERD) vagy az integrált fejlesztői környezetek (IDE) által generált ábrák.

Az 1-től 3. szintig a C4 modell öt alapvető diagram-összetevőt használ: személyek, szoftverrendszerek, konténerek, komponensek és kapcsolatok. A módszer nem ír elő semmilyen kötöttséget az elemek elrendezésére, alakjára, színére vagy stílusára vonatkozóan. Ehelyett egyszerű, egymásba ágyazott dobozokon alapuló diagramok használatát javasolja, amelyek elősegítik az interaktív, együttműködésen alapuló ábrázolást. A technika egyben támogatja a helyes modellezési gyakorlatokat is, például minden diagramhoz cím és jelmagyarázat megadását, valamint a világos és egyértelmű feliratozást, hogy a célközönség könnyebben megértse a tartalmat.

A C4 modell lehetővé teszi a közös, vizuális architektúratervezést, valamint támogatja a folyamatosan fejlődő architektúra kialakítását olyan agilis csapatokban, ahol nincs igény a formális dokumentációs módszerekre vagy a részletesen megtervezett kezdeti architektúrára.Az agilitás és az architektúra közti ellentét: mítosz vagy valóság? resources.sei.cmu.edu. SATURN 2013 konferencia. Carnegie Mellon Egyetem Szoftvermérnöki Intézete. 2013. május 10. Archiválva: 2021. április 19. Letöltve: 2020. augusztus 22.

Jegyzetek

Fordítás

További információk

Kapcsolódó szócikk Szoftverarchitektúra

Kategória:Szoftverfejlesztés