Vés al contingut

Model C4

De la Viquipèdia, l'enciclopèdia lliure
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. [1]

El model C4 és una tècnica de notació gràfica simplificada per modelar l'arquitectura dels sistemes de programari.[1][2]

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

[modifica]
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 [3] i un article [4] 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 [5] 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.[3]

Els punts de vista estan organitzats segons el seu nivell jeràrquic: [2] [3]

  • 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 .[6]

Eines

[modifica]
  • 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é

[modifica]

Referències

[modifica]
  1. Richards, Mark. Fundamentals of software architecture. An engineering approach. O'REILLY MEDIA, 2019, p. 293. ISBN 978-1-4920-4342-3. OCLC 1138515057. 
  2. 2,0 2,1 Enríquez, René; Salazar, Alberto.. Software Architecture with Spring 5. 0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications.. Packt Publishing Ltd., 2018, p. 41–44. ISBN 978-1-78899-673-0. OCLC 1053798657. 
  3. 3,0 3,1 3,2 Brown, Simon. «The C4 model for visualising software architecture». c4model.com. Arxivat de l'original el 2010-02-25. [Consulta: 22 agost 2020].
  4. Brown, Simon. «The C4 Model for Software Architecture» (en anglès). InfoQ, 25-06-2018. Arxivat de l'original el 2018-12-12. [Consulta: 22 agost 2020].
  5. Keeling, Michael. Design it! : from programmer to software architect. ISBN 978-1-68050-345-6. OCLC 1024312521. 
  6. «The Conflict Between Agile and Architecture: Myth or Reality?» (en anglès). resources.sei.cmu.edu. Software Engineering Institute of Carnegie Mellon University, 10-05-2013. Arxivat de l'original el 2025-10-31. [Consulta: 22 agost 2020].

Enllaços externs

[modifica]