El modelo C4 (del inglés C4 model, Context Container Component Code model, context-container-component-code model ) es un método de registro gráfico simple para modelar la arquitectura de los sistemas de software [1] . Se basa en la descomposición estructural de un sistema en contenedores y componentes, y se apoya en técnicas de modelado existentes como el Lenguaje de Modelado Unificado (UML) o el Modelo ER (ERD) para una descomposición más detallada de bloques arquitectónicos.
El modelo C4 fue creado por el arquitecto de software Simon Brown entre 2006 y 2011 basado en UML y el modelo de vista arquitectónica 4+1 . El lanzamiento del sitio web oficial [2] y la publicación de un artículo [3] , publicado en 2018, contribuyeron a la popularización de la nueva técnica de modelado.
El modelo C4 describe la arquitectura de los sistemas software, reflejándola desde diferentes puntos de vista, explicando la descomposición del sistema en contenedores y componentes, así como las relaciones entre estos elementos y, en su caso, las relaciones entre sus usuarios [2] .
Los cuadros están organizados según su nivel jerárquico:
Para los niveles 1 a 3, el modelo C4 utiliza 5 elementos básicos del diagrama: usuarios, sistemas de software, contenedores, componentes y relaciones. El modelo no impone requisitos sobre la ubicación, forma, color y estilo de estos elementos. Sin embargo, el modelo C4 recomienda el uso de gráficos simples basados en cuadros anidados para facilitar la edición colaborativa interactiva de gráficos.
El modelo C4 facilita el trabajo colaborativo en la arquitectura de software y el refinamiento de la arquitectura en el contexto de equipos de desarrollo que trabajan en una metodología de desarrollo ágil , en la que los métodos de documentación más formales y el diseño prearquitectónico no son deseables [4] .