1. Proceso de ingeniería del software
1.1. Distinción de las fases del proceso de ingeniería del software: especificación, diseño, construcción y pruebas unitarias, validación, implantación y mantenimiento
1.2. Análisis de los modelos del proceso de ingeniería: modelo en cascada, desarrollo evolutivo, modelos formales, etc
1.2.1. Modelo en cascada
1.2.2. Modelos de proceso incremental
1.2.3. Modelos de proceso evolutivo
1.2.4. Modelos de proceso especializado
1.3. Identificación de requisitos: concepto, evolución y trazabilidad
1.3.1. Concepto de requisito
1.3.2. Evolución de los requisitos
1.3.3. Trazabilidad de los requisitos
1.4. Análisis de metodologías de desarrollo orientadas a objetos
1.4.1. El Proceso Unificado de Rational (RUP)
1.4.2. Modelos de desarrollo ágil
1.5. Resolución de un caso práctico de metodología de desarrollo que utiliza UML
1.5.1. Captura de requisitos
1.5.2. Análisis
1.5.3. Diseño
1.5.4. Programación
1.5.5. Pruebas
1.6. Definición del concepto de herramientas CASE
1.6.1. Herramientas de ingeniería del software
1.6.2. Entornos de desarrollo
1.6.3. Herramientas de pruebas
1.6.4. Herramientas de gestión de la configuración
1.6.5. Herramientas para métricas
2. Planificación y seguimiento
2.1. Realización de estimaciones
2.1.1. Modelo COCOMO II
2.2. Planificación: modelos de diagramado. Diagrama de Gantt
2.2.1. Diagrama de descomposición del trabajo (WBS)
2.2.2. Diagramas de Gantt
2.2.3. Diagramas PERT
2.3. Análisis del proceso de seguimiento: reuniones e informes
Ejercicios resueltos
Ejercicios propuestos
3. Diagramado
3.1. Identificación de los principios básicos de UML
3.2. Empleo de diagramas de uso
3.3. Diagramas de clases
3.4. Diagramas de interacción
Ejercicios resueltos
Ejercicios propuestos
4. Desarrollo de la GUI
4.1. Análisis del modelo de componentes y eventos
4.2. Identificación de elementos de la GUI
4.3. Presentación del diseño orientado al usuario. Nociones de usabilidad
4.4. Empleo de herramientas de interfaz gráfica
5. Calidad en el desarrollo del software
5.1. Enumeración de criterios de calidad
5.2. Análisis de métricas y estándares de calidad
5.2.1. Métricas para la tarea de análisis
5.2.2. Métricas para la tarea de diseño
5.2.3. Métricas para la tarea de programación
5.2.4. Métricas para la tarea de pruebas
5.2.5. Métricas para la tarea de mantenimiento
5.2.6. Estándares de calidad
6. Pruebas
6.1. Identificación de tipos de pruebas
6.1.1. Prueba de unidad
6.1.2. Prueba de integración
6.1.3. Prueba del sistema
6.1.4. Prueba de validación
6.2. Análisis de pruebas de defectos: pruebas de caja negra, pruebas estructurales, pruebas de trayectorias, pruebas de integración, pruebas de interfaces
6.2.1. Pruebas de caja negra
6.2.2. Pruebas de caja blanca
6.2.3. Pruebas de integración
6.2.4. Pruebas de interfaces
6.3. Proceso de prueba
6.3.1. Preparación de los datos de prueba
6.3.2. Casos de prueba
6.3.3. Codificar las pruebas
6.3.4. Definir procesos de prueba
6.3.5. Ejecución de pruebas
6.3.6. Generación de informes de las pruebas
Ejercicios resueltos
Ejercicios propuestos
7. Excepciones
7.1. Definición. Fuentes de excepciones. Tratamiento de excepciones. Prevención de fallos. Excepciones definidas y lanzadas por el programador
7.2. Uso de las excepciones tratadas como objetos
8. Documentación
8.1. Cómo producir un documento
8.2. Estructura del documento
8.3. Generación automática de documentación
Bibliografía