Articulo de referencia

modelo C4

Abstracciones del modelo C4: Un sistema de software se compone de uno o más contenedores (aplicaciones web, bases de datos, etc.), cada uno de los cuales contiene uno o más comp...

Abstracciones del modelo C4: Un sistema de software se compone de uno o más contenedores (aplicaciones web, bases de datos, etc.), cada uno de los cuales contiene uno o más componentes, que a su vez son implementados por uno o más elementos de código (clases, interfaces, objetos, funciones, etc.).

El modelo C4 es una técnica de notación gráfica simplificada para modelar la arquitectura de sistemas de software. [ 1 ] [ 2 ]  Se basa en una descomposición estructural (una estructura de árbol jerárquica) de un sistema en contenedores y componentes, y se apoya en técnicas de modelado existentes, como el Lenguaje Unificado de Modelado (UML) o los diagramas entidad-relación (DER), para la descomposición más detallada de los bloques arquitectónicos.

Historia

Charla técnica sobre el modelo C4 de Simon Brown en Dublín, 2025.

El modelo C4 fue creado por el arquitecto de software Simon Brown entre 2006 y 2011, basándose en el Lenguaje Unificado de Modelado (UML) y el modelo de vista arquitectónica 4+1 . El lanzamiento de un sitio web oficial bajo una licencia Creative Commons [ 3 ] y un artículo [ 4 ] publicado en 2018 popularizaron la técnica emergente. [ 1 ]

Descripción general

El modelo C4 documenta la arquitectura de un sistema de software , mostrando múltiples puntos de vista [ 5 ] que explican la descomposición de un sistema en contenedores y componentes , la relación entre estos elementos y, cuando corresponda, la relación con sus usuarios. [ 3 ]

Los puntos de vista están organizados según su nivel jerárquico: [ 2 ] [ 3 ]

  • Diagramas de contexto (nivel 1): muestran el sistema en cuestión y su relación con los usuarios y otros sistemas;
  • Diagramas de contenedores (nivel 2): ​​descomponen un sistema en contenedores interrelacionados. Un contenedor representa una aplicación o un almacén de datos;
  • Diagramas de componentes (nivel 3): descomponen los contenedores en componentes interrelacionados y relacionan los componentes con otros contenedores u otros sistemas;
  • Diagramas de código (nivel 4): proporcionan detalles adicionales sobre el diseño de los elementos arquitectónicos que se pueden asignar al código. El modelo C4 se basa en este nivel en notaciones existentes como el Lenguaje Unificado de Modelado (UML) , los Diagramas Entidad-Relación (DER) o los diagramas generados por Entornos de Desarrollo Integrados (IDE) .

Para los niveles 1 a 3, el modelo C4 utiliza cinco elementos básicos de diagramación: personas, sistemas de software, contenedores, componentes y relaciones. Esta técnica no impone una disposición, forma, color ni estilo específicos para estos elementos. En cambio, recomienda el uso de diagramas sencillos basados ​​en cajas anidadas para facilitar el dibujo interactivo y colaborativo. Asimismo, promueve buenas prácticas de modelado, como incluir un título y una leyenda en cada diagrama, y ​​un etiquetado claro e inequívoco para facilitar la comprensión por parte del público objetivo.

El modelo C4 facilita la arquitectura visual colaborativa y la arquitectura evolutiva en el contexto de equipos ágiles donde no se desean métodos de documentación más formales ni un diseño arquitectónico inicial . [ 6 ]

Herramientas

  • IcePanel : Herramienta colaborativa de diagramación y modelado con interfaz de usuario de arrastrar y soltar.
  • Structurizr : Structurizr se basa en el concepto de "diagramas como código", lo que permite crear múltiples diagramas de arquitectura de software a partir de un único modelo.
  • PlantUML : C4-PlantUML combina las ventajas de PlantUML y el modelo C4 para proporcionar una forma sencilla de describir y comunicar arquitecturas de software.
  • C4InterFlow : Marco de arquitectura como código (AaC) que permite modelar la arquitectura en código una sola vez (por ejemplo, YAML, JSON, etc.) y luego generar diagramas de cualquier alcance, nivel de detalle (por ejemplo, contexto, contenedor y componente) y tipos (por ejemplo, C4, C4 estático (dependencias) y secuencia).

Véase también

Referencias

  1. ^ a b Richards, Mark; Ford, Neal (2019). Fundamentos de la arquitectura de software: un enfoque de ingeniería . O'REILLY MEDIA. pág. 293. ISBN 978-1-4920-4342-3OCLC 1138515057. Están surgiendo algunos estándares para diagramar la arquitectura de software ( como el modelo C4 del arquitecto de software Simon Brown o el estándar Archimate de The Open Group) . 
  2. ^ a b Enríquez, René (2018). Software Architecture with Spring 5.0: Design and Architect Highly Scalable, Robust, and High-Performance Java Applications . Salazar, Alberto. Packt Publishing Ltd. pp.  41–44 . ISBN 978-1-78899-673-0OCLC 1053798657 ​
  3. ^ a b c Brown, Simon. "El modelo C4 para visualizar la arquitectura de software" . c4model.com (Sitio oficial de la técnica de modelado). Archivado del original el 25 de febrero de 2010. Recuperado el 22 de agosto de 2020 .
  4. ^ Brown, Simon (25-06-2018). "El modelo C4 para la arquitectura de software" . InfoQ . Archivado del original el 12-12-2018 . Recuperado el 22-08-2020 .
  5. ^ Keeling, Michael. ¡Diseñelo!: del programador al arquitecto de software . Raleigh, Carolina del Norte. ISBN 978-1-68050-345-6OCLC 1024312521 ​
  6. ^ "El conflicto entre Agile y arquitectura: ¿mito o realidad?" . resources.sei.cmu.edu . Conferencia SATURN 2013. Instituto de Ingeniería de Software de la Universidad Carnegie Mellon . 10 de mayo de 2013. Archivado del original el 19 de abril de 2021 . Consultado el 22 de agosto de 2020 .
  • Sitio oficial
Obtenido de " https://en.wikipedia.org/w/index.php?title=C4_model&oldid=1323200692 "