Programa de la asignatura
- Calidad del Software y Modularidad
- Introducción
- Ciclo de vida y calidad del software.
- Factores internos y externos de calidad.
- Fiabilidad y corrección.
- Documentación
- Modularidad
- Aspectos de la calidad de un diseño modular:
Cohesión y Acoplamiento.
- Modularidad y Orientación a Objetos
- Introducción a la OO
- La estructura estática: Clases.
- El papel de las clases en orientación a objetos.
- Un sistema de tipos uniforme.
- El estilo de programación orientado a objetos.
- Ocultación de la información.
- La estructura dinámica: Objetos.
- Objetos y referencias.
- Procedimientos de creación.
- Operaciones sobre referencias.
- Objetos compuestos y tipos expandidos.
- Un ejemplo especial: la clase STRING.
- Ligadura por referencia y por valor.
- Trabajando con referencias, ventajas e inconvenientes.
- La gestión de la memoria.
- Genericidad y Herencia
- Generalización horizontal y vertical.
- La necesidad de parametrización de tipos.
- Clases genéricas y mecanismo de herencia.
- Programación bajo contrato
- Prueba de programas.
- Principios de prueba.
- Pruebas indirectas.
- Pruebas directas: estrategias de caja blanca y caja negra.
- Pruebas de nivel superior.
- Depuración.
- Verificación de algoritmos.
- Reglas de verificación.
- Corrección parcial de un algoritmo.
- Corrección total.
- Contratos software
- Aserciones: Pre y postcondiciones.
- Invariantes de clase.