Cómo documentar arquitectura que no se erosione
Clase 41 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
Una documentación de arquitectura clara convierte ideas en decisiones prácticas y compartidas. Aquí se explica cómo usar modelos y vistas para comunicar con precisión, fijar restricciones de diseño, negociar requerimientos funcionales y no funcionales, y mantener la documentación siempre alineada con la implementación. Como señala George Box: todo modelo es incorrecto, pero útil.
¿Para qué sirve la documentación de arquitectura?
La documentación organiza el conocimiento técnico en un modelo que guía y describe el sistema. Cumple dos funciones clave: restringir decisiones de diseño pendientes y describir el estado actual cuando ya existe implementación. Además, facilita la comunicación entre roles, la estimación de recursos y la medición de calidad.
¿Qué diferencia hay entre arquitectura restrictiva y descriptiva?
- Arquitectura restrictiva: define límites y opciones para futuras decisiones de diseño.
- Arquitectura descriptiva: refleja el estado actual del sistema ya implementado.
- Conexión necesaria: documentar cómo las restricciones del pasado se materializaron en la implementación.
- Valor práctico: reduce incertidumbre y acelera decisiones del equipo.
¿Cómo evitar la erosión de la arquitectura?
- Mantener la documentación sincronizada con la implementación final.
- Actualizar modelos y vistas ante cada cambio relevante.
- Usar la documentación como contrato vivo para alinear equipos.
- Apoyarse en métricas de calidad para detectar desvíos.
¿Quién usa el modelo y cómo aporta valor?
La documentación sirve a múltiples roles, cada uno con objetivos distintos. Bien redactada, evita malentendidos y reduce retrabajo. En metodologías ágiles, el propio equipo genera y mantiene el modelo; en enfoques tradicionales, puede percibirse como restricción, pero orienta el desarrollo hacia el objetivo común.
¿Cómo negocian arquitecto y analista los requerimientos?
- Identificar trade-offs entre necesidades funcionales y no funcionales.
- Registrar decisiones y argumentos en el modelo.
- Priorizar lo que permite cumplir garantías y plazos.
¿Qué necesita operaciones para estimar costos?
- Detalle de recursos: servidores, licencias, almacenamiento y redes.
- Requisitos de despliegue: publicación en app store y registro asociado.
- Capacidad de crecimiento: entender consumos previstos y picos.
¿Qué obtiene el equipo de desarrollo?
- Restricciones claras y libertades explícitas para implementar.
- En ágil: el equipo se autoimpone límites desde el modelo.
- En tradicional: las restricciones orientan sin microgestionar el cómo.
¿Cómo se coordinan equipos y calidad con la documentación?
Cuando hay productos externos o múltiples equipos, la documentación asegura interoperabilidad, define contratos y evita sorpresas. También permite a calidad medir lo prometido: disponibilidad, seguridad y conformidad con la arquitectura prescripta.
¿Cómo asegurar interoperabilidad con productos externos?
- Comunicar interfaces y dependencias entre equipos.
- Acordar si consumirán nuestros servicios y si requieren una REST API.
- Definir cómo consumiremos servicios de terceros.
- Mantener sincronización para no perder compatibilidad.
¿Cómo planifica el gestor de proyecto con el modelo?
- Identificar módulos y etapas del diseño.
- Alinear prioridades operativas y arquitectónicas.
- Dimensionar equipos según hitos.
- Anticipar habilitación de servidores y trámites necesarios.
¿Qué mide el equipo de calidad o QA?
- Criterios de disponibilidad y seguridad con métricas aplicables.
- Verificación de conformidad del sistema con la arquitectura prescripta.
- Evaluación del artefacto de ejecución y del proceso de desarrollo.
- En ágil: testers y QA dentro del equipo monitorean métricas y arquitectura.
¿Tienes experiencias, métricas o prácticas que te hayan funcionado para mantener la documentación sincronizada con la implementación? Compártelas en los comentarios y enriquezcamos las mejores prácticas del equipo.