Presiones en los tiempos de ejecución de un proyecto, ausencia de métodos controlados para cumplir con los objetivos planteados, continuos cambios en las funcionalidades requeridas, documentación pobre o inexistente, falta de interlocutores válidos. Estos son solo algunos de los problemas que enfrenta hoy día el desarrollo de software. En la última década la Arquitectura de Software ha surgido como disciplina que intenta contrarrestar estos efectos negativos, ocupando cada vez más un rol significativo en la estrategia de negocio de una organización que basa su operativa en el software.
Esto se debe a que hacer foco en la Arquitectura de Software permite flexibilidad y adaptabilidad en mercados cambiantes, ofrece una herramienta de venta y comercialización, ayuda a reducir los costos de mantenimiento, amortiza los costos de desarrollo, ofrece una guía clara para el desarrollo favoreciendo el control de los proyectos, establece un vocabulario común entre los participantes, entre tantos otros aspectos de interés.
Este curso introduce los conceptos esenciales de la Arquitectura de Software haciendo énfasis en la importancia del negocio (o misión) en cuyo contexto son desarrollados los sistemas de software.
Introducir al estudiante en el área de Arquitectura de Software, presentando los principales conceptos del área y transmitiendo su importancia para el desarrollo de software. Fortalecer la capacidad del estudiante para comprender, documentar, definir, evaluar y evolucionar una Arquitectura de Software.
- Introducción
Arquitectura de Software y su importancia. Niveles de arquitectura (p. ej. aplicación, sistema). Ejemplos actuales de arquitecturas de software. Rol del arquitecto de software en los distintos niveles.
- Proceso de Definición de una Arquitectura
Elementos que guían la definición de una arquitectura (p. ej. principios claves de arquitectura, requerimientos funcionales, atributos de calidad, escenarios). Decisiones arquitectónicas y su impacto. Evaluación de arquitectura y retroalimentación.
- Documentación de una Arquitectura
Importancia de la representación y documentación de una arquitectura. Enfoque basado en vistas para documentar los diferentes aspectos de la arquitectura. Documento de Arquitectura de Software (Software Architecture Document, SAD).
- Estilos y Patrones de Arquitectura
Principales estilos y patrones de arquitectura (p. ej. capas, arquitectura orientada a servicios, microservicios, pipes and filters, bus de servicios). Arquitecturas de referencia para sistemas de información actuales (p. ej. web, mobile, servicios, procesos).
- Plataformas Tecnológicas y Arquitectura
Plataformas de desarrollo (p. ej. Java EE). Plataformas de integración (p. ej. ESB, iPaaS). Plataformas de despliegue (p. ej. cloud, contenedores).
-
Evaluación de Arquitecturas
Mecanismos de evaluación de arquitecturas de software.
- Problemáticas y Tendencias actuales en Arquitectura de Software.
La evaluación se realizará en base a:
- Participación en clase y ejercicios prácticos (20%)
- Trabajo grupal (50%)
- Evaluación escrita final individual (30%)
El curso se aprueba con el 60% de los puntos.