Visión General del Modelo C4 - Archyl Docs

Aprende sobre el modelo C4 y cómo Archyl lo implementa para la documentación de arquitectura

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