Estrategias y Patrones de Diseño de Software

Descripción del Curso

La industria del software tiene el reto de desarrollar soluciones que respondan a las necesidades del mercado, satisfagan las necesidades de los clientes y cumplan con requerimientos no funcionales. Para apoyar este objetivo, a lo largo de los años se han desarrollado en la ingeniería de software diferentes estrategias y patrones que guían un adecuado diseño. En este curso se presentan tanto los principales patrones de diseño de software como los antipatrones que deben evitarse en el diseño y la elaboración de software. Así mismo, se analizan diferentes estrategias de reutilización y se presenta qué son los frameworks, cuáles son sus características y qué tipos de frameworks existen. Finalmente, se analizan algunos frameworks para el desarrollo de software empresarial.

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:

  • Identificar los patrones de diseño y el contexto de su aplicación
  • Reconocer la importancia del diseño de interfaces de usuario en el desarrollo de software.
  • Recolectar, analizar y modelar los requerimientos de un producto de software mediano.
  • Diseñar un producto de software haciendo uso de los conceptos y buenas prácticas trabajadas en el curso.
  • Conocer y utilizar frameworks en proyectos de desarrollo de software.

Metodología

El curso contará con clases expositivas para explicar los diferentes conceptos propuestos en el curso. El Estudiante pondrá en práctica los conceptos por medio de diferentes tareas y proyectos que se asignarán a lo largo del semestre.

Contenido

  1. Patrones de diseño
    1. Patrones orientados a la creación
    2. Patrones orientados a la estructura
    3. Patrones orientados al comportamiento
    4. Patrones orientados a la interacción
      1. Diseño de interfaces de usuario (User Experience – UX)
  2. Antipatrones
    1. Antipatrones de diseño
    2. Antipatrones de codificación
    3. Antipatrones generales
  3. Estrategias de re uso de software
    1. Desarrollo orientado a componentes
    2. Líneas de productos de software
    3. Desarrollo con librerías
  4. Frameworks para el desarrollo de software
    1. Características de los frameworks
    2. Frameworks de caja negra
    3. Frameworks de caja blanca
    4. Frameworks para el desarrollo de aplicaciones empresariales
      1. .NET framework
      2. JEE framework

Evaluación

Porcentaje
Tareas y quices 20%
Trabajos en Clase 20%
Proyecto 1 30%
Proyecto 2 30%

Bibliografía

  1. Patterns and Antipatterns. Andrew Koenig
  2. Patterns of Enterprise Application Architecture. Martin Fowler)
  3. Analysis Patterns: Reusable Object Models. Martin Fowler. Addison-Wesley.
  4. Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma
  5. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. William J. Brown et al. John Wiley & Sons, Inc. 1998
  6. Patterns and Anti-Patterns in Object-Oriented Analysis. E. Steegmans. Katholieke Universiteit Leuven.