Cada aplicación tiene una arquitectura especifica y dependiendo de la misma puede ser simple o compleja, ademas estas cambian constantemente. De tal manera que es de suma importancia tener y mantener la información actualizada. Es por ello que en este artículo hablamos del modelo C4, el cual nos ayuda a generar la documentación de la arquitectura del 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, en su caso, la relación con sus usuarios. 

Este modelo se creo como una forma de ayudar a los desarrolladores a describir y comunicar la arquitectura de software, desde las sesiones iniciales de diseño como al documentar una base de código existente. Siendo este modelo una forma de crear mapas del código en varios niveles de detalle.

Este tipo de modelo principalmente esta dirigido a arquitectos y desarrolladores de software, pero a su vez este mismo proporciona una manera eficaz de comunicación por parte del equipo de los desarrolladores hacia las demás áreas de la empresa, mostrando diferentes niveles de detalle, contando diferentes historias a diferentes tipos de audiencia, al hacer un diseño inicial o retrospectivamente, documentando un código existente.  

El modelo C4 esta basado en un enfoque de “abstracción primero”, para la arquitectura de software de diagramación, basado en abstracciones que reflejan cómo los arquitectos y desarrolladores piensan y consulten el software. Siendo que el conjunto de abstracciones y tipos de diagramas, sea más fácil de aprender y utilizar.  Teniendo en cuenta que no siempre es necesario ocupar los cuatro niveles del diagrama; solo aquellos que aportan valor.

Para crear estos mapas, primero necesitamos un conjunto común de abstracciones a fin de crear un lenguaje generalizado que se pueda ocupar para describir la estructura estática de un software. Dentro del modelo C4 considera a las estructuras estáticas de un software en términos de contenedores componentes y código. A su vez también considera a las persona que usa los sistemas.

Cuatro niveles del modelo C4

Existen cuatro niveles del modelo C4, cada uno creado para un nivel y una audiencia diferente. Siendo los diagramas de Contexto, Contenedor, Componente y Código.

Nivel 1: diagrama de contexto del sistema 

Los diagramas de contexto son la descripción más general de lo que hace un sistema, quién lo usara y con qué otros sistemas interactuara. Este ayuda de contexto para describir el alcance del proyecto y a su vez ayuda a identificar quién es el usuario y que problema vas a resolver.

En otras palabras este tipo de diagrama muestra un panorama general de la aplicación, las personas y sistemas que interactuaran con dicha aplicación, sin importar los detalles, tecnologías, protocoles u otras características de bajo nivel, a fin de que personas sin conocimientos técnicos puedan entenderlo. 

Nivel 2: diagrama de contenedores

El diagrama de contenedor muestra la forma a un alto nivel de la arquitectura del software y cómo se distribuyen las responsabilidades en ella. A su vez muestra las principales opciones tecnológicas y cómo los contenedores (base de datos, aplicaciones del lado del servidor, aplicaciones del lado del cliente, etc.) se comunicaran entre sí.

Siendo este diagrama sencillo y centrado en la tecnología de alto nivel, que resulta útil tanto para los desarrolladores como para el personal de operaciones y soporte. 

Nivel 3: diagrama de componentes

Dentro de este diagrama detalla cómo un contenedor se compone de una serie de componentes, cuales son esos componentes, sus responsabilidades y detalles de tecnología/implementación.  

Nivel 4: Código 

Por ultimo nos encontramos con el nivel del código, este muestra cómo se implementa cada componente como código; utilizando diagramas de clases UML, diagramas de modelo entidad – relación u otros. 

Este nivel de detalles es opcional y a menudo se genera de forma automática a través de herramientas de modelado IDE o UML.

Conclusión

El C4 es un modelo relativamente simple para describir la arquitectura de un sistema. Existiendo una gran ventaja de utilizar este enfoque, como: sistemas más fáciles de entender y la incorporación de nuevos desarrolladores de una manera más fácil. 

Al usar C4, cualquier persona puede comprender el sistema al nivel que les resulte útil. Ya que no todo el mundo necesita conocer los detalles de la implementación, sin embargo todo el mundo debería de comprender los objetivos de alto nivel de un sistema y qué servicios se utilizaran. 

El C4 es un modelo el cual se puede complementar junto con otros diagramas adicionales como: ERD, secuencia, diagramas de flujo, etc. Sin embargo, el C4 es un gran punto de partida a fin de lograr una mejor comunicación y entendimiento de un sistema.

Published On: septiembre 28, 2021 / Categories: Desarrollo de Software /

Recibir publicaciones por correo electrónico

¡Genial!, estás suscrito.
Hubo un error al intentar enviar su mensaje. Por favor, inténtelo de nuevo más tarde.