Modelo C4
# Modelo C4

El modelo C4 es una técnica de notación gráfica que se utiliza para modelar la arquitectura de sistemas de software. Está basada en la descomposición estructural de un sistema en contenedores y componentes. Su fundamento se encuentra en técnicas de modelado ya existentes, como el Lenguaje de modelado unificado (UML) o los Diagramas de entidad-relación (ERD) para la descomposición más detallada de los bloques de construcción arquitectónicos.

## Historia

El modelo C4 fue creado por el arquitecto de software Simon Brown entre 2006 y 2011 sobre las raíces del lenguaje de modelado unificado (UML) y el modelo de vistas de arquitectura 4 + 1. El lanzamiento de un sitio web oficial bajo una licencia creative commons y un artículo publicado en 2018 popularizaron la técnica emergente.

## Descripción general

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

Los miradores están organizados según su nivel jerárquico:

* Diagramas de contexto (nivel 1): muestran el alcance del sistema 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 relaciona 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 a código. El modelo C4 se basa en este nivel en notaciones existentes, como el lenguaje de modelado unificado (UML), los diagramas de entidad-relación (ERD) o los diagramas generados por entornos de desarrollo integrados (IDE) .

Para los niveles 1 a 3, el modelo C4 utiliza 5 elementos básicos de diagramación: personas, sistemas de software, contenedores, componentes y relaciones. La técnica no es prescriptiva para el diseño, la forma, el color y el estilo de estos elementos. En cambio, el modelo C4 recomienda el uso de diagramas simples basados en cajas anidadas para facilitar el dibujo colaborativo interactivo. La técnica también promueve buenas prácticas de modelado, como proporcionar un título y una leyenda en cada diagrama, y un etiquetado claro e inequívoco para facilitar la comprensión por parte de la audiencia destinataria.

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 y un diseño arquitectónico inicial.

