miniatura|Un sistema de programari està format per un o més contenidors (aplicacions i magatzems de dades), cadascun dels quals conté un o més components, que al seu torn s'implementen mitjançant un o més elements de codi (classes, interfícies, objectes, funcions, etc.). I les persones (actors, rols, personatges, individus amb nom, etc.) utilitzen els sistemes de programari que construïm. El model C4 és una tècnica de notació gràfica simplificada per modelar l'arquitectura dels sistemes de programari.

Es basa en una descomposició estructural (una estructura d'arbre jeràrquica) d'un sistema en contenidors i components i es basa en tècniques de modelització existents com ara el Llenguatge Unificat de Modelització (UML) o els diagrames entitat-relació (ERD) per a una descomposició més detallada dels blocs de construcció arquitectònics.

Història miniatura|Xerrada tècnica sobre el model C4 de Simon Brown a Dublín, 2025 El model C4 va ser creat per l' arquitecte de programari Simon Brown entre el 2006 i el 2011 sobre les arrels del Llenguatge Unificat de Modelització (UML) i el model de vista arquitectònica 4+1 .

El llançament d'un lloc web oficial sota una llicència Creative Commons i un article publicat el 2018 van popularitzar la tècnica emergent.

El model C4 documenta l'arquitectura d'un sistema de programari, mostrant múltiples punts de vista que expliquen la descomposició d'un sistema en contenidors i components, la relació entre aquests elements i, si escau, la relació amb els seus usuaris.

Els punts de vista estan organitzats segons el seu nivell jeràrquic:

Diagrames de context (nivell 1): mostren el sistema en l'àmbit d'aplicació i la seva relació amb els usuaris i altres sistemes; Diagrames de contenidors (nivell 2): descomponen un sistema en contenidors interrelacionats. Un contenidor representa una aplicació o un magatzem de dades; Diagrames de components (nivell 3): descomponen els contenidors en components interrelacionats i relacionen els components amb altres contenidors o altres sistemes; Diagrames de codi (nivell 4): proporcionen detalls addicionals sobre el disseny dels elements arquitectònics que es poden assignar al codi. El model C4 es basa en aquest nivell en notacions existents com ara el Llenguatge Unificat de Modelització (UML), els Diagrames d'Entitat i Relació (ERD) o els diagrames generats per Entorns de Desenvolupament Integrats (IDE) .

El marc C4, en els seus primers tres estadis (nivells 1 a 3), es basa en cinc figures clau per representar l'arquitectura: persones, sistemes, contenidors, components i les seves interaccions. La tècnica ofereix una gran llibertat pel que fa a la disposició gràfica, la simbologia, el color o l'estil d'aquests símbols. La seva preferència és per als dibuixos nets, basats en la jerarquia de caixes, facilitant així l'esborrany conjunt en temps real. Paral·lelament, C4 subratlla la importància de l'ordenament documental, exigint títols i llegendes per a cada vista, i una identificació concisa i unívoca dels seus elements per garantir que el públic objectiu ho entengui fàcilment.

El model C4 facilita l'arquitectura visual col·laborativa i l'arquitectura evolutiva en el context d'equips àgils on no es desitgen mètodes de documentació més formals ni un disseny arquitectònic inicial .

Eines IcePanel : IcePanel és un instrument de treball conjunt per a la creació de models i esquemes, que destaca per oferir una interfície visual que funciona mitjançant la funció d'arrossegar i deixar anar (drag-and-drop). Structurizr : Structurizr es basa en el concepte de "diagrames com a codi", fet que habilita la generació de múltiples representacions gràfiques d'arquitectura de programari a partir d'una única font modelada. PlantUML : La biblioteca C4-PlantUML harmonitza els punts forts de PlantUML amb els del model C4, facilitant un mètode concís per a la descripció i la transmissió de les arquitectures de programari.

Vegeu també Arquitectura de programari

Referències

Enllaços externs Lloc web oficial Categoria:Diagrames