Arquitectura de Software

Descripción del Curso

La arquitectura de software es uno de los elementos fundamentales del proceso de construcción de soluciones de software, pues permite definir la estructura de los elementos más relevantes de un sistema, con el fin de tener una perspectiva clara del sistema completo. En ese marco en el curso se tratan aspectos relacionados con el diseño, la implementación y la evaluación de arquitecturas de software. Adicionalmente, se presentan soluciones arquitectónicas relacionadas con diferentes tipos de problemas tecnológicos.

Información Básica

  • Profesor:
  • Créditos: 4
  • Horas de Clase: 3/semana
  • Horas de trabajo independiente: 9 / semana
  • Prerequisitos: Ninguno

Objetivos

Al finalizar el curso los participantes podrán:

  • Familiarizar a los participantes con los conceptos y principios de la arquitectura de software.
  • Presentar a los participantes la importancia y el papel de las arquitecturas de software y su impacto en la organización.
  • Proporcionar a los participantes ejemplos de arquitecturas de software en la práctica a través de estudios de casos.

Metodología

Con el fin de lograr las metas de formación, la metodología definida establece un componente teórico soportado en los conceptos de la Arquitectura de Software, y un componente práctico, donde se aplicaran los conceptos de manera guiada mediante talleres, casos de estudio y proyectos semestrales. Se buscará, utilizar casos de estudios propios de las empresas donde están vinculados los estudiantes. En cualquier caso se privilegiara la utilización de casos, problemas y situaciones traídas desde las organizaciones sobre casos de estudio académicos.

El desarrollo del componente práctico se realizará mediante trabajo autónomo de los estudiantes, y la guía y acompañamiento del docente en las sesiones presenciales.

Contenido

  1. Introducción a la arquitectura de software
    1. Que es la arquitectura de software
    2. Objetivos de la arquitectura de software
    3. Características de un arquitectura de software
    4. El rol del arquitecto de software
  2. Atributos de calidad
    1. Descripción
    2. Escenarios de calidad
    3. Tácticas de arquitectura
  3. Estilos arquitectónicos – viewtypes y vistas
    1. Estilo de módulos
      1. Descomposición
      2. Usos
      3. Generalización
      4. Capas
    2. Estilo de componentes y conectores ( C&C)
      1. Estilos de flujos de datos: lotes, pipe &filters
      2. Estilos de llamada- retorno: CLiente servidor, Peer to Peer, SOA
      3. Estilos basados en eventos: MVC, publisher subscriber
      4. Estilo de repositorio: Blackboard, repository
    3. Estilo de asignación
      1. Despliegue
      2. Asignación de trabajo
      3. Instalación
    4. Casos de Estudio
  4. Documentación de las arquitecturas de software.
    1. Elementos a considerar dentro de la documentación de la arquitectura
    2. Modelo de 4 + 1
    3. Diagramas de contexto
    4. Mejores prácticas diagramas UML
  5. Métodos de evaluación de arquitecturas de software
    1. ATAM
    2. CBAM
    3. ARID
  6. Arquitecturas para la solución de problemas
    1. Arquitectura orientada a servicios.
    2. Arquitectura para la nube.
    3. Arquitectura para aplicaciones móviles.

Evaluación

Porcentaje
Lecturas y talleres en clase 15%
Talleres externos 20%
Exposiciones 10%
Examen parcial 25%
Proyecto grupal 30%

Bibliografía

  1. Hanmer Roger. Pattern oriented sofware architecture for Dummies. 1ra Edición
  2. Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R., Ivers, J., & Little, R. (2002). Documenting software architectures: views and beyond. Pearson Education.
  3. Len Bass, Paul C. Clements, Rick Kazman (2012). Software Architecture in Practice. Pearson Education.
  4. Rozanski, N., & Woods, E. (2012). Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison-Wesley
  5. Hongyu Pei Breivold, Ivica Crnkovic, Magnus Larsson, A systematic review of software architecture evolution research, Information and Software Technology, Volume 54, Issue 1, January 2012, Pages 16-40]] , ISSN 0950-584
  6. Mary Shaw and David Garlan (1996). Software Architecture perspectives on an emerging discipline. Prentice-Hall, Inc.