Ir al contenido

Arquitectura de Software

La arquitectura de software es el conjunto de decisiones difíciles de cambiar sobre un sistema: cómo se divide, cómo se comunican sus partes y qué atributos de calidad prioriza. No existe la arquitectura correcta en abstracto; existen arquitecturas adecuadas para un contexto, un equipo y unas restricciones concretas.

En esta materia aprendemos a reconocer esos compromisos, a elegir patrones con criterio y a comunicar y documentar las decisiones para que otros puedan entenderlas, cuestionarlas y mantenerlas.

  • Analizar un sistema en términos de atributos de calidad y restricciones.
  • Seleccionar y combinar patrones arquitectónicos de forma justificada.
  • Decidir entre monolito modular y microservicios con argumentos concretos.
  • Diseñar sistemas basados en eventos y mensajería con consistencia eventual.
  • Documentar arquitecturas con diagramas C4 y registros de decisión (ADR).
  1. Fundamentos de arquitectura

    Qué es la arquitectura de software, los atributos de calidad y el papel del arquitecto.

    Clases en preparación
  2. Patrones arquitectónicos

    Capas, hexagonal, cliente-servidor, pipes and filters y otros estilos clásicos.

    Clases en preparación
  3. Monolitos y microservicios

    Monolito, monolito modular y microservicios: cuándo conviene cada uno.

    Clases en preparación
  4. Arquitectura orientada a eventos

    Sistemas que reaccionan a hechos: eventos de dominio, brokers y consistencia eventual.

    Clases en preparación
  5. CQRS y mensajería

    Separar modelos de lectura y escritura y comunicar componentes mediante mensajes.

    Clases en preparación
  6. Escalabilidad y resiliencia

    Escalar horizontalmente y diseñar para fallos: cachés, réplicas, reintentos y circuit breakers.

    Clases en preparación
  7. Seguridad y multitenencia

    Seguridad desde el diseño y modelos de aislamiento para aplicaciones SaaS.

    Clases en preparación
  8. Diagramas y decisiones arquitectónicas

    Comunicar la arquitectura con el modelo C4 y documentar decisiones con ADR.

  9. Casos prácticos

    Análisis de sistemas reales y ejercicios integradores de diseño.

    Clases en preparación