Programa de la materia

Unidad I
Diseño de software
  1. El diseño como etapa del proceso de producción de software
  2. Diseño vs. modelo funcional
  3. Diseño basado en ocultación de información
  4. Diseño basado en tipos abstractos de datos
  5. Diseño orientado a objetos
  6. Documentación de un diseño
Unidad II
Patrones de diseño
  1. Vocabulario, conceptos y problemas
  2. Un caso de estudio para la aplicación de patrones de diseño
  3. Patrón de diseño: Composite
  4. Patrón de diseño: Abstract Factory
  5. Patrón de diseño: Bridge
  6. Patrón de diseño: Strategy
  7. Patrón de diseño: Visitor
  8. Patrón de diseño: Iterator
  9. Patrón de diseño: Command
  10. Patrón de diseño: Decorator (Wrapper)
Unidad III
Arquitecturas de software
  1. Vocabulario, conceptos y problemas
  2. Estilos arquitectónicos: llamada a procedimiento no es suficiente
  3. Invocación implícita
  4. Tubos y filtros
  5. Sistemas Estratificados
  6. Control de procesos
  7. Blackboard systems
  8. Sistemas de información
  9. Aplicación de patrones de diseño a los estilos arquitectónicos
Unidad IV
Testing de software
  1. El testing y su relación con el ciclo de vida de un sistema
  2. Terminología y definiciones básicas
  3. Testing estructural: criterios de cobertura de flujo de control
  4. Testing funcional y especificaciones formales: estrategias de cobertura y oráculos