Read in English · Lire en français · Auf Deutsch lesen
Capítulo 4 de 12 · Intermedio
Documentar y comunicar la arquitectura
Este capítulo muestra cómo describir y comunicar una arquitectura de software para que las personas adecuadas la entiendan y la descripción siga siendo fiel a la realidad. Trata de para quién es la documentación y cuánto escribir, las vistas y los puntos de vista de ISO/IEC/IEEE 42010, el 4+1 y Rozanski y Woods, el modelo C4, los diagramas UML que los arquitectos todavía usan, los registros de decisiones de arquitectura (ADR), arc42, los diagramas como código y la presentación de la arquitectura a distintos públicos. Es práctico de principio a fin, usa una plataforma de reparto de comida como ejemplo recurrente y está escrito para desarrolladores, arquitectos y líderes técnicos.
Introducción en video al capítulo 4
6 min · narrado en inglés, con subtítulosSolo escuchar (audio)
Leer la transcripción
Te damos la bienvenida al Capítulo 4: Documentar y comunicar la arquitectura. Este capítulo muestra cómo describir una arquitectura de software para que las personas adecuadas la entiendan y para que la descripción siga siendo fiel a la realidad. Es práctico de principio a fin y usa una plataforma de reparto de comida como ejemplo recurrente, para que puedas comparar cada técnica sobre el mismo sistema.
Una arquitectura que solo existe en la cabeza de unas pocas personas es frágil. Nadie fuera de la sala puede revisarla, el próximo ingeniero que se incorpore no puede aprenderla, un auditor no puede comprobarla, y se va con las personas que la conocen. Es fácil equivocarse con la documentación en cualquiera de las dos direcciones. Los equipos que escriben demasiado poco pierden las razones de su estructura y repiten una y otra vez las mismas discusiones. Los equipos que escriben demasiado producen wikis en las que nadie confía. Así que el principio rector del capítulo es sencillo: escribe para el lector. Decide quién usará cada pieza de documentación y qué necesita de ella, escribe eso de forma breve y precisa, y no escribas nada más.
El capítulo está escrito para desarrolladores, arquitectos y líderes técnicos. Se basa en los capítulos 1 a 3: las decisiones y las estructuras que ahora hay que describir. Las secciones uno punto cinco, sobre las partes interesadas y las inquietudes, y uno punto seis, sobre las decisiones y los compromisos, son un contexto especialmente útil. Y lleva al Capítulo 5, que inicia el catálogo de estilos arquitectónicos, descritos con las herramientas que aprendes aquí.
El capítulo tiene ocho secciones. La sección cuatro punto uno se pregunta para quién es la documentación y cómo decidir qué merece ponerse por escrito. La respuesta corta: escribe a mano lo que el código no puede decirte y genera lo que el código ya expresa. La sección cuatro punto dos presenta la idea central de que un solo diagrama nunca basta. Una arquitectura se describe mediante varias vistas, cada una de las cuales responde a las inquietudes de determinadas partes interesadas. La sección cuatro punto tres convierte eso en el enfoque práctico más utilizado, el modelo C4 de Simon Brown, con cuatro niveles de zoom y un breve conjunto de reglas de notación que hacen que los diagramas se expliquen solos. La sección cuatro punto cuatro trata de las partes del Lenguaje Unificado de Modelado, o UML, que los arquitectos todavía usan, como los diagramas de secuencia y de máquina de estados, y de cuándo su precisión compensa el esfuerzo.
Este diagrama de la sección cuatro punto uno te ayuda a decidir cómo documentar cualquier información. El eje vertical pregunta si puede recuperarse a partir del código. El eje inferior pregunta con qué frecuencia cambia. Arriba a la izquierda: lo que el código no puede decirte y que cambia poco. El contexto y el alcance, los objetivos de calidad y las decisiones con sus razones. Escríbelos a mano y consérvalos. Arriba a la derecha: lo que cambia con más frecuencia, como las vistas de contenedores y de despliegue. Mantenlas junto al código y revísalas con cada cambio. Abajo a la derecha: lo que el código ya expresa y cambia a menudo, como los diagramas de clases y las referencias de la API. Genéralos en el pipeline. No los escribas nunca a mano. Y abajo a la izquierda: lo que puedes leer en el código y que cambia poco, como la pila tecnológica o los comandos de compilación. Basta con una breve referencia en un archivo README.
Este es el primer nivel del modelo C4 de la sección cuatro punto tres: un diagrama de contexto del sistema para la plataforma de reparto de comida. Arriba están los tres tipos de personas que la usan: clientes, personal de restaurantes y repartidores. Cada flecha está etiquetada con lo que hacen. En el centro está la propia plataforma, representada como una sola caja. Recibe pedidos, cobra los pagos, asigna repartidores y mantiene informado a todo el mundo. Debajo están los sistemas externos de los que depende: un proveedor de pagos, un servicio de mapas y los servicios push. En este nivel no hay tecnologías ni protocolos. Esos llegan en el siguiente nivel de zoom, el de los contenedores. Y fíjate en la leyenda. Todo diagrama C4 tiene un título y una leyenda, para que se explique solo.
Los diagramas muestran la estructura, pero rara vez muestran el porqué. La sección cuatro punto cinco trata de los registros de decisiones de arquitectura, o ADR: registros breves y fechados de una decisión cada uno, con un registro práctico completo para la plataforma de reparto. La sección cuatro punto seis muestra cómo una plantilla como arc cuarenta y dos da a toda la descripción una organización estándar, para que quienes escriben sepan qué cubrir y quienes leen sepan dónde buscar. La sección cuatro punto siete aborda el problema que derrota a la mayor parte de la documentación: quedarse obsoleta. Trata de escribir diagramas como texto, de publicar la documentación desde el pipeline de compilación y de los hábitos de propiedad que la mantienen fiel a la realidad. La sección cuatro punto ocho pasa de los documentos a las personas: adaptar el mensaje a directivos, desarrolladores, operaciones, personal de seguridad y auditores, explicar los compromisos y construir consenso cuando las personas discrepan.
Todas las técnicas de este capítulo sirven a un único objetivo: un entendimiento compartido y preciso del sistema entre las personas que lo construyen, lo operan, lo pagan y dependen de él. Una documentación pequeña, actual y con propietario, que vive junto al código, es mejor que un documento exhaustivo en el que nadie confía. Así que, si recuerdas una sola pregunta de este capítulo, que sea esta: ¿quién va a leer esto y qué hará con ello?
Puedes leer las secciones en orden o ir directamente a la técnica que necesitas hoy. Leer todo el capítulo lleva unas tres horas. Mientras avanzas, compara cómo cada técnica describe la misma plataforma de reparto de comida: como diagrama de contexto, diagrama de contenedores, diagramas de secuencia y de estados, registro de decisiones y resumen de una página. Cada sección termina con unas cuantas preguntas de autoevaluación. Respóndelas mentalmente antes de mirar. Cuando estés listo, haz la prueba opcional del capítulo: veinte preguntas de opción múltiple y dos respuestas escritas, en unos cuarenta y cinco minutos. La nota de aprobado es el ochenta por ciento.
Ese es el mapa del Capítulo 4. Empieza por la sección cuatro punto uno, donde vemos para quién es la documentación y cuánta merece la pena escribir. Nos vemos allí.
De un vistazo
Aprenderás a
- Explicar quién lee la documentación de arquitectura, qué necesita cada lector y cómo decidir qué merece la pena dejar por escrito.
- Distinguir las partes interesadas, las inquietudes, los puntos de vista, las vistas y los tipos de modelo tal como los define ISO/IEC/IEEE 42010:2022.
- Comparar el modelo de vistas 4+1, los puntos de vista y las perspectivas de Rozanski y Woods, y las tres categorías de vistas del SEI.
- Dibujar diagramas de contexto del sistema, de contenedores y de componentes que sigan las reglas de notación de C4.
- Leer y dibujar los diagramas UML de secuencia, de máquina de estados, de componentes, de despliegue, de actividades y de clases que usan los arquitectos.
- Escribir registros de decisiones de arquitectura y gestionar su ciclo de vida en una bitácora de decisiones.
- Aplicar arc42 y las prácticas de diagramas como código para que la documentación siga siendo útil y esté al día.
- Adaptar una explicación de la arquitectura a directivos, desarrolladores, operaciones, personal de seguridad y auditores.
Antes de empezar
Capítulos 1 a 3, especialmente las partes interesadas y las inquietudes (Sección 1.5) y las decisiones y los compromisos (Sección 1.6).
Tiempo
Unas 3 horas de lectura; 45 minutos para la prueba.
Términos clave
Descripción de arquitectura · Vista · Punto de vista · Inquietud · Modelo de vistas 4+1 · Modelo C4 · Contenedor (C4) · UML · Diagrama de secuencia · Diagrama de máquina de estados · Registro de decisiones de arquitectura · arc42 · Diagramas como código · Documentación como código (docs as code)
Por qué documentar la arquitectura forma parte del trabajo
Una arquitectura que solo existe en la cabeza de unas pocas personas es frágil. Nadie fuera de la sala puede revisarla, el próximo ingeniero que se incorpore no puede aprenderla, un auditor no puede comprobarla, y se va con las personas que la conocen. El Capítulo 1 separó una arquitectura (lo que el sistema es realmente) de una descripción de arquitectura (los documentos, diagramas y registros mediante los cuales las personas la comparten). Este capítulo trata de la segunda: cómo producir descripciones que la gente realmente lea, que sigan siendo fieles a medida que el sistema cambia y que ayuden a tomar decisiones.
Es más una habilidad práctica que teórica, y es fácil equivocarse en cualquiera de las dos direcciones. Los equipos que escriben demasiado poco pierden las razones de su estructura y repiten una y otra vez las mismas discusiones. Los equipos que escriben demasiado producen wikis en las que nadie confía. El principio rector del capítulo procede de Documenting Software Architectures: Views and Beyond, del SEI: escribe para el lector. Decide quién usará cada pieza de documentación y qué necesita de ella, escribe eso de forma breve y precisa, y no escribas nada más.
Un mismo ejemplo recorre todo el capítulo: una plataforma de reparto de comida con una app de clientes, una app de restaurantes y una app de repartidores, servicios de pedidos, de despacho de repartidores y de notificaciones, y pagos con tarjeta a través de un proveedor externo. La verás como diagrama de contexto, diagrama de contenedores, diagrama de componentes, diagramas UML de secuencia y de estados, registro de decisiones y resumen arc42 de una página, para que puedas comparar cada técnica sobre el mismo sistema.
Describir y dibujar: secciones 4.1 a 4.4
Las cuatro primeras secciones tratan de qué describir y cómo dibujarlo. La Sección 4.1 se pregunta para quién es la documentación, qué dice y qué no dice el Manifiesto Ágil sobre ella, cómo decidir qué merece ponerse por escrito y qué antipatrones evitar. La respuesta corta es escribir a mano lo que el código no puede decirte (el contexto, los objetivos de calidad, las decisiones y sus razones) y generar lo que el código ya expresa.
La Sección 4.2 presenta la idea central de que un solo diagrama nunca basta. Una arquitectura se describe mediante varias vistas, cada una de las cuales responde a las inquietudes de determinadas partes interesadas y se construye según un punto de vista. La sección trata del modelo conceptual de ISO/IEC/IEEE 42010:2022, el modelo de vistas 4+1 de Kruchten, los puntos de vista y las perspectivas de Rozanski y Woods, y las categorías de módulos, de componentes y conectores y de asignación del SEI, y muestra cómo elegir el conjunto mínimo de vistas que necesita un sistema.
La Sección 4.3 convierte esa teoría en el enfoque práctico más utilizado, el modelo C4 de Simon Brown: cuatro niveles de zoom (contexto del sistema, contenedor, componente, código), unos pocos diagramas complementarios y un breve conjunto de reglas de notación que hacen que los diagramas se expliquen solos. La Sección 4.4 trata de las partes de UML que los arquitectos todavía usan, sobre todo los diagramas de secuencia, de máquina de estados, de componentes, de despliegue, de actividades y los diagramas de clases pequeños, y de cuándo la precisión de UML compensa el esfuerzo.
Decisiones, plantillas, herramientas y personas: secciones 4.5 a 4.8
Los diagramas muestran la estructura; rara vez muestran el porqué. La Sección 4.5 trata de los registros de decisiones de arquitectura: el formato de Michael Nygard de 2011, alternativas como MADR y las declaraciones Y, el ciclo de vida de un registro desde propuesto hasta sustituido, y un registro práctico completo para la plataforma de reparto. La Sección 4.6 muestra cómo una plantilla como arc42 da a toda la descripción una organización estándar, para que quienes escriben sepan qué cubrir y quienes leen sepan dónde buscar, y cómo usarla de forma ligera en un sistema pequeño.
La Sección 4.7 aborda el problema que derrota a la mayor parte de la documentación: la obsolescencia. Trata de escribir diagramas como texto con PlantUML, Mermaid, Structurizr DSL y D2, la diferencia entre las herramientas de dibujo y las de modelado, la publicación de la documentación desde el pipeline de compilación y los hábitos de propiedad y revisión que mantienen la documentación fiel a la realidad. La Sección 4.8 amplía el foco de los documentos a las personas: adaptar el mensaje a directivos, desarrolladores, personal de operaciones, equipos de seguridad y auditores, explicar los compromisos, seguir una solicitud a través de un sistema, los documentos de diseño y los procesos de RFC, presentar en una revisión y construir consenso cuando las personas discrepan.
La idea que debes llevarte
Todas las técnicas de este capítulo sirven a un único objetivo: un entendimiento compartido y preciso del sistema entre las personas que lo construyen, lo operan, lo pagan y dependen de él. Un diagrama, un registro de decisiones o una plantilla solo merecen producirse si un lector real los necesita, y solo mientras alguien los mantenga fieles a la realidad. Una documentación pequeña, actual y con propietario, que vive junto al código, es mejor que un documento exhaustivo en el que nadie confía. Si recuerdas una sola pregunta de este capítulo, que sea esta: ¿quién va a leer esto y qué hará con ello?
Las 8 secciones
Prueba del capítulo
Comprueba lo que has entendido del capítulo 4
Opcional: 20 preguntas de opción múltiple y 2 respuestas escritas breves, elegidas de nuevo cada vez de un banco de 72 preguntas. Nota de aprobado: 80%. Superar todas las pruebas de capítulo y después la evaluación final da derecho al Certificado de Finalización Be Wise.
Haz la prueba del capítulo 4 en la appLecturas recomendadas
- Documenting Software Architectures: Views and Beyond, 2nd edition, Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord and Judith Stafford (2010), Addison-Wesley. El tratamiento más completo de la documentación de arquitectura: vistas, estilos, las siete reglas para una documentación sólida y una plantilla de documentación.
- Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, 2nd edition, Nick Rozanski and Eóin Woods (2012), Addison-Wesley. Un catálogo práctico de siete puntos de vista y de perspectivas como la seguridad y el rendimiento, orientado a grandes sistemas de información.
- Architectural Blueprints: The "4+1" View Model of Software Architecture, Philippe Kruchten (1995), IEEE Software 12(6). El breve artículo que popularizó la descripción de arquitectura con múltiples vistas y la validación basada en escenarios.
- ISO/IEC/IEEE 42010:2022 Software, systems and enterprise: Architecture description, ISO/IEC JTC 1/SC 7 and IEEE (2022), ISO. La norma internacional que define las partes interesadas, las inquietudes, los puntos de vista, las vistas y los tipos de modelo.
- The C4 Model: Visualizing Software Architecture, Simon Brown (2026), O'Reilly Media. El relato del propio creador sobre las abstracciones, los diagramas y la notación de C4; el sitio web cubre lo esencial de forma gratuita.
- UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edition, Martin Fowler (2003), Addison-Wesley. Una guía breve y práctica de las partes de UML que vale la pena conocer, y el origen de la distinción entre boceto, plano y lenguaje de programación.
- Living Documentation: Continuous Knowledge Sharing by Design, Cyrille Martraire (2019), Addison-Wesley. Cómo derivar la documentación del propio sistema y limitar el material escrito a mano a lo que solo las personas pueden aportar.