Temario
1. Estructura del software
   Definición y evolución
   Programación estructurada
   Estructura modular
   Arquitecturas de software
   Estilos de software
   Patrones de diseño
Bibliografía. [PRESMAN]
Competencias: G1 G2 G3 T8 T11 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

2. Descomposición modular
   Modularidad
   Tipos de módulos
   Interfaz e implementación
   Cohesión y dependencia
   Jerarquía de control
Bibliografía. [PRESMAN] [CRAIG]
Competencias: G1 G2 G3 T8 T11 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

3. Dependencias
   Malos diseños
   Inyección de dependencias
   Inversión de dependencias
   Inversion del control
Bibliografía. [PRESMAN][CRAIG]
Competencias: G1 G2 G3 T8 T11 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

4. Responsabilidades
   Reglas de diseño
   Responsabilidad única
   Principio abierto-cerrado
Bibliografía. [PRESMAN][CRAIG]
Competencias: G1 G2 G3 T8 T11 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

5. Abstracción
   Formación de conceptos
   Generalización
   Sustituibilidad
   Principio de sustitución de Liskov
   Diseño por contrato
Bibliografía. [PRESMAN][CRAIG]
Competencias: G1 G2 G3 T8 T11 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

6. Patrones de diseño
   Patrones creacionales
   Patrones de estructura
   Patrones de comportamiento
Bibliografía. [GAMMA]
Competencias: G1 G2 G3 T8 T11 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05


Práctico (presencial)
1. Gestión de versiones del código
Competencias: N2 N3 T2 T4 T5 CII02 CII16 IS01 IS04

2. Desarrollo del modelo
Competencias: N1 N2 N3 T1 T2 T3 T4 T5 T10 CII01 CII02 CII16 CII17 IS01 IS03 IS04

3. Arquitectura Controlador, Vista, Modelo
Competencias: N1 N2 N3 T1 T2 T3 T4 T5 T10 CII01 CII02 CII16 CII17 IS01 IS03 IS04

4. Principios y patrones de diseño
Competencias: N1 N2 N3 N4 T1 T2 T3 T4 T5 T10 CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

5. Arquitectura Presenter
Competencias: N1 N2 N3 N4 T1 T2 T3 T4 T5 T10 CII01 CII02 CII16 CII17 IS01 IS03 IS04

Trabajo (no presencial)
1. Diseño de una aplicación con la arquitectura MVC
Competencias: CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05

2. Diseño de una aplicación software con la arquitectura MVP
Competencias: CII01 CII02 CII16 CII17 IS01 IS03 IS04 IS05