Modelul C4 (din limba engleză C4 model, Context Container Component Code model, context-container-component-code model ) este o metodă simplă de înregistrare grafică pentru modelarea arhitecturii sistemelor software [1] . Se bazează pe descompunerea structurală a unui sistem în containere și componente și se bazează pe tehnici de modelare existente, cum ar fi Unified Modeling Language (UML) sau ER Model (ERD) pentru o descompunere mai detaliată a blocurilor arhitecturale.
Modelul C4 a fost creat de arhitectul software Simon Brown între 2006 și 2011, pe baza UML și a modelului 4+1 Architectural View Model . Lansarea site-ului oficial [2] și publicarea unui articol [3] , publicat în 2018, au contribuit la popularizarea noii tehnici de modelare.
Modelul C4 descrie arhitectura sistemelor software, reflectând-o din diferite puncte de vedere, explicând descompunerea sistemului în containere și componente, precum și relațiile dintre aceste elemente și, acolo unde este cazul, relațiile dintre utilizatorii săi [2] .
Diagramele sunt organizate în funcție de nivelul lor ierarhic:
Pentru nivelurile 1 până la 3, modelul C4 utilizează 5 elemente de diagramă de bază: utilizatori, sisteme software, containere, componente și relații. Modelul nu impune cerințe privind amplasarea, forma, culoarea și stilul acestor elemente. Cu toate acestea, modelul C4 recomandă utilizarea diagramelor simple bazate pe casete imbricate pentru a facilita editarea interactivă în colaborare a diagramelor.
Modelul C4 facilitează munca de colaborare privind arhitectura software și rafinarea arhitecturii în contextul echipelor de dezvoltare care lucrează într-o metodologie de dezvoltare agilă , în care metodele de documentare mai formale și designul pre-arhitectural sunt nedorite [4] .