Pasar al contenido principal

Arquitectura de Software

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.

Objetivos

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.

Público objetivo
Profesionales y estudiantes interesados en Ingeniería de Software, en particular que trabajen en desarrollo de software.
Temario
  • 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.
Conocimientos exigidos
Conocimientos en desarrollo de Software y Sistemas de Información.
Conocimientos deseables
Experiencia o conocimientos en procesos de desarrollo e ingeniería de software, así como en modelado con UML
Metodología de evaluación

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. 

Detalles
Créditos
7
Arancel
33600
Inicio de curso
Fin de curso
Horario
lunes, martes y jueves de 18:30 a 21:30 hs
Docentes
Laura González, Raquel Sosa, Guzmán Llambias, Bruno Rienzi, Sebastián Vergara, Andrés Nebel