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.[1][2] 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
[editar]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[3] y un artículo[4] publicado en 2018 popularizaron la técnica emergente.[5]
Descripción general
[editar]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.[6][7]
Los miradores están organizados según su nivel jerárquico:[8][7]
- 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.[9]
Véase también
[editar]Referencias
[editar]- ↑ Richards, Mark; Ford, Neal (2019). Fundamentals of software architecture: an engineering approach. O'REILLY MEDIA. p. 293. ISBN 978-1-4920-4342-3. OCLC 1138515057. «some standard are emerging for diagramming software architecture (such as software architect simon Brown's C4 model or The Open Group Archimate standard)».
- ↑ Enríquez, René; Salazar, Alberto (2018). Software Architecture with Spring 5. 0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications. Packt Publishing. pp. 41-44. ISBN 978-1-78899-673-0. OCLC 1053798657.
- ↑ Brown, Simon. «The C4 model for visualising software architecture». c4model.com (Official site of the modelling technique). Consultado el 22 de agosto de 2020.
- ↑ Brown, Simon (25 de junio de 2018). «The C4 Model for Software Architecture». InfoQ (en inglés). Consultado el 22 de agosto de 2020.
- ↑ Richards,Mark; Ford, Neal (2019). Fundamentals of software architecture: an engineering approach. O'REILLY MEDIA. p. 293. ISBN 978-1-4920-4342-3. OCLC 1138515057. «some standard are emerging for diagramming software architecture (such as software architect simon Brown's C4 model or The Open Group Archimate standard)».
- ↑ Keeling, Michael. Design it! : from programmer to software architect. Raleigh, North Carolina. ISBN 978-1-68050-345-6. OCLC 1024312521.
- ↑ a b Brown, Simon. «The C4 model for visualising software architecture». c4model.com (Official site of the modelling technique). Consultado el 22 de agosto de 2020.
- ↑ Enríquez, René (2018). Software Architecture with Spring 5. 0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications.. Salazar, Alberto. Packt Publishing Ltd. pp. 41-44. ISBN 978-1-78899-673-0. OCLC 1053798657.
- ↑ «The Conflict Between Agile and Architecture: Myth or Reality?». resources.sei.cmu.edu (en inglés). Software Engineering Institute of Carnegie Mellon University. Consultado el 22 de agosto de 2020.