Visión General del Modelo C4
El modelo C4 es una técnica de notación gráfica ligera para modelar la arquitectura de sistemas de software. Creado por Simon Brown, proporciona una manera de comunicar la arquitectura de software en diferentes niveles de abstracción.
¿Por qué C4?
Los diagramas de arquitectura tradicionales a menudo sufren de:
- Notación inconsistente: Diferentes equipos usan diferentes símbolos
- Nivel de detalle incorrecto: Demasiado abstracto o demasiado detallado
- Documentación desactualizada: Los diagramas no reflejan la realidad
El modelo C4 aborda estos problemas proporcionando:
- Niveles de abstracción estandarizados: Cuatro niveles claros de alto a bajo
- Notación simple: Fácil de entender para audiencias técnicas y no técnicas
- Navegación jerárquica: Amplía para más detalle, reduce para contexto
Los Cuatro Niveles
Nivel 1: Contexto del Sistema
El diagrama de Contexto del Sistema muestra tu sistema como una caja en el centro, rodeado por sus usuarios y los otros sistemas con los que interactúa.
Propósito: Mostrar el panorama general - cómo tu sistema encaja en el mundo
Audiencia: Todos (técnicos y no técnicos)
Contiene:
- Tu sistema de software (central)
- Usuarios/personas que usan el sistema
- Sistemas externos de los que tu sistema depende
Nivel 2: Contenedor
El diagrama de Contenedor amplía tu sistema para mostrar los bloques de construcción técnicos de alto nivel.
Propósito: Mostrar las elecciones tecnológicas principales y cómo se distribuyen las responsabilidades
Audiencia: Personas técnicas dentro y fuera del equipo de desarrollo
Contiene:
- Contenedores (aplicaciones, almacenes de datos, etc.)
- Relaciones entre contenedores
- Conexiones a sistemas externos
Nivel 3: Componente
El diagrama de Componente amplía un contenedor para mostrar sus componentes internos.
Propósito: Mostrar cómo un contenedor está compuesto de componentes y sus responsabilidades
Audiencia: Arquitectos de software y desarrolladores
Contiene:
- Componentes dentro de un contenedor
- Relaciones entre componentes
- Elecciones de tecnología/implementación
Nivel 4: Código
El diagrama de Código (opcional) muestra cómo se implementa un componente.
Propósito: Mostrar detalles a nivel de código para componentes complejos o críticos
Audiencia: Desarrolladores
Contiene:
- Clases, interfaces, funciones
- Relaciones de herencia e implementación
- Patrones de diseño
C4 en Archyl
Archyl implementa el modelo C4 con estas características:
Navegación
- Doble clic en cualquier elemento para ampliar al siguiente nivel
- Usa las migas de pan para navegar hacia arriba
- Atajos de teclado para navegación rápida (← → ↑ ↓)
Tipos de Elementos
Cada nivel tiene sus propios tipos de elementos:
| Nivel | Tipos de Elementos |
|---|---|
| Contexto del Sistema | Sistema, Sistema Externo, Persona |
| Contenedor | Contenedor, Contenedor Externo |
| Componente | Componente |
| Código | Clase, Interfaz, Función |
Relaciones
Las relaciones se pueden crear entre elementos en cualquier nivel:
- Arrastra de un elemento a otro
- Agrega etiquetas describiendo la interacción
- Especifica la tecnología utilizada
Estilo
Personaliza la apariencia de tus diagramas:
- Colores para diferentes tipos de elementos
- Iconos personalizados
- Agrupación con overlays
Mejores Prácticas
Comienza desde Arriba
Siempre comienza con el diagrama de Contexto del Sistema. Te obliga a pensar en:
- ¿Quién usa tu sistema?
- ¿De qué sistemas externos dependes?
- ¿Cuál es el alcance de tu sistema?
Mantenlo Simple
Cada diagrama debería caber en una sola página/pantalla. Si no:
- Divide en múltiples diagramas
- Reduce el nivel de detalle
- Usa el siguiente nivel para más detalle
Usa Nombres Consistentes
- Usa nombres claros y descriptivos
- Sigue las convenciones de nomenclatura de tu equipo
- Evita abreviaturas que no sean universalmente entendidas
Documenta las Relaciones
Las relaciones son tan importantes como los elementos:
- Siempre agrega etiquetas describiendo la interacción
- Incluye la tecnología/protocolo cuando sea relevante
- Muestra la dirección de la comunicación
Próximos Pasos
- Contexto del Sistema - Profundiza en el Nivel 1
- Diagramas de Contenedor - Profundiza en el Nivel 2
- Diagramas de Componente - Profundiza en el Nivel 3
- Relaciones - Aprende a conectar elementos