- 1

Transición de programador empírico a arquitecto de software
02:46 - 2

Análisis de licitaciones con inteligencia artificial
08:48 - 3

Monorepositorios como herramienta de gestión de código fuente
13:00 - 4

Reglas de control de versiones en monorepositorio con trunk-based
05:58 - 5

Behavior Driven Development para alinear equipos técnicos y de negocio
09:25 - 6

Notación estándar C4 para diagramas de arquitectura
08:00 - 7

Generadores de sitios estáticos para documentación de proyectos
04:58 - 8

Uso de herramientas de IA para mejorar arquitectura de software
05:05 quiz de Creando Entornos de Software Saludables
Estructura del archivo Architecture.md para proyectos de software
Clase 9 de 29 • Curso de Arquitectura de Software Aplicada
Contenido del curso
- 9

Estructura del archivo Architecture.md para proyectos de software
12:00 - 10

Domain-driven design para sistemas de comercio exterior
06:50 - 11

Técnicas pre-mortem y cinco why para prevenir fallos en sistemas
03:58 - 12

Técnicas de conversación e intervención directa en arquitectura
02:49 quiz de Siguiendo una Arquitectura Limpia
- 19

Diferencias entre mensajes y eventos en arquitectura de servicios
03:36 - 20

Patrón productor consumidor vs fan-in y fan-out en microservicios
03:11 - 21

Manejo de excepciones en el patrón productor-consumidor
02:48 - 22

Patrón comparing consumers para procesamiento en tiempo real
02:28 - 23

Patrón Process Manager para integrar actividades humanas y sistemas
02:33 quiz de Patrones de integración
- 24

Patrones de persistencia: durable state vs event sourcing
08:15 - 25

Máquinas de estado finito en la capa de presentación de software
04:52 - 26

Técnicas SAST, DAST y pen testing para seguridad en software
01:36 - 27

Funciones fitness para evaluar arquitecturas de software
04:20 - 28

Observabilidad en sistemas con OpenTelemetry e ingeniería del caos
04:45
En proyectos de software, el primer entregable esencial para un arquitecto no es el código ni los diagramas, sino un archivo de texto claro y concreto que explica cómo se comprende el problema desde el inicio. Este documento suele llamarse Architecture.md y representa el fundamento sobre el cual se construirá la solución.
¿Por qué es importante un archivo Architecture.md en proyectos de software?
El propósito principal de este archivo es resumir el contexto del problema y delimitar sus principales restricciones y consideraciones. Ofrece una visión estructurada que ayuda a comprender el reto y a comunicarlo eficazmente al equipo, basando toda decisión técnica en una base común.
¿Cuáles son los puntos clave del contexto y las restricciones de un proyecto?
El ejemplo presentado corresponde a un proyecto para el Banco Interamericano de Desarrollo referente al modelo de factura electrónica de comercio exterior. Al analizar el problema, el archivo detalla:
- Una descripción general apoyada inicialmente por un LLM que recopila documentación relevante, aunque enfatiza la necesidad de sumergirse más allá de este resumen automático.
- Uso de diagramas de secuencia para entender los flujos principales del sistema, diferenciando los casos grandes de exportación e importación y sus interacciones.
- Lectura de requerimientos y cronogramas para identificar posibles entregables separados y restricciones fundamentales como la extensibilidad, flexibilidad y versatilidad.
- Una mención decidida a la importancia de estándares globales, por ejemplo, la tecnología blockchain para la seguridad y modelos de referencia como el OMA, pero sin estar estrictamente atados a ellos.
¿Qué requisitos no funcionales y desafíos técnicos se deben considerar?
El documento destaca la relevancia de identificar requisitos no funcionales desde el inicio:
- Extensibilidad: La solución debe permitir personalización por entidades externas, como aduanas y tributos de diferentes países.
- Flexibilidad: El sistema requiere ser desplegable en infraestructuras tecnológicas variadas.
- Versatilidad y compliance: Adaptabilidad a múltiples tipos de transacciones, documentos y regulaciones legales.
- Seguridad basada en blockchain y W3C: Garantizando seguridad y trazabilidad mediante estándares modernos.
- Eficiencia y armonización: Minimizar redundancias y buscar armonización de datos si es posible, considerando la alternativa de simplificación para reducir la complejidad.
- Otros aspectos críticos como criptografía, privacidad, transferencia de datos en tiempo real, independencia tecnológica y observabilidad.
¿Qué técnicas facilitan la comprensión profunda del problema?
Para una adecuada identificación de necesidades y actores, el arquitecto debe aplicar diversas técnicas de análisis:
- Lectura detallada de los requisitos y términos de referencia.
- Elaboración de diagramas de secuencia y técnicas de event storming para mapear eventos y actores.
- Enumeración de casos de uso, historias de usuario y diálogo continuo con expertos en el dominio (subject matter experts).
- Registro ordenado de datos adquiridos en cada iteración para transformarlos en conocimiento accionable.
¿Cómo influye la identificación de casos de uso y actores en la arquitectura?
El análisis del Banco Interamericano arroja dos grandes conjuntos de casos de uso, especialmente en exportación de bienes, identificando actores clave como personas exportadoras, compañías y administraciones tributarias diversificadas. El descubrimiento iterativo permite ajustar y validar actores y dependencias, adaptando la solución a las necesidades reales y a la evolución del proyecto.
¿Cómo elegir el estilo arquitectónico adecuado en la fase de prototipo?
La solución prototipo, orientada por las restricciones y el contexto, podría tomar forma como monolito modular, event driven o con microservicios, dependiendo de:
- Tamaño del equipo y experiencia.
- Comunicación con stakeholders no técnicos.
- Estados y eventos del modelo de dominio.
- Extensibilidad e integración con sistemas externos.
- Línea de tiempo y complejidad esperada.
Todos los estilos son válidos si el equipo entiende los trade off de cada uno y puede evolucionar la arquitectura conforme cambian los requisitos. ¿Cuáles han sido tus experiencias previas al estructurar entregables de arquitectura? Puedes compartir tus dudas o enfoques aplicados en proyectos similares.