Metodología y Tecnología de la Programación Tema 4: Ingeniería del Software • Introducción • Ciclo de vida del software • Modelos del proceso de desarrollo – Modelo en cascada – Modelo iterativo – Prototipos • Técnicas de prueba Escuela Superior de Informática. UCLM Tema 4: 1 Metodología y Tecnología de la Programación El Proceso de desarrollo de software Introducción • La calidad del software que creamos es un resultado directo del proceso que seguimos para desarrollarlo • Aquí nos centraremos en: – el ciclo de vida del software – modelos de desarrollo – prototipos Escuela Superior de Informática. UCLM Tema 4: 2 Metodología y Tecnología de la Programación El ciclo de vida de un programa • El ciclo de vida total de un programa incluye su uso y mantenimiento: Desarrollo Uso Mantenimiento Escuela Superior de Informática. UCLM Tema 4: 3 Metodología y Tecnología de la Programación Mantenimiento • Las tareas de mantenimiento incluyen todas las modificaciones a un programa existente • Esto incluye eliminación de defectos y mejoras • Las características de un programa que lo hacen fácil de desarrollar lo hacen también fácil de mantener • En el software actual el esfuerzo de mantenimiento sobrepasa el esfuerzo de desarrollo • Pequeños incrementos en esfuerzo en la etapa de desarrollo reduce grandemente las labores de mantenimiento Escuela Superior de Informática. UCLM Tema 4: 4 Metodología y Tecnología de la Programación Desarrollo frente a Mantenimiento Desarrollo Uso y Mantenimiento Escuela Superior de Informática. UCLM Tema 4: 5 Metodología y Tecnología de la Programación Esfuerzo de Desarrollo y Mantenimiento Desarrollo Mantenimiento Desarrollo Mantenimiento Escuela Superior de Informática. UCLM Tema 4: 6 Metodología y Tecnología de la Programación Modelos del Proceso de Desarrollo • Demasiados programadores siguen una aproximación artesanal, de hacer y corregir • Escriben un programa y lo modifican hasta que es funcional sin considerar el diseño del sistema • Los errores se corrigen improvisadamente según se van descubriendo • No es realmente un modelo de desarrollo Escuela Superior de Informática. UCLM Tema 4: 7 Metodología y Tecnología de la Programación La aproximación Artesanal Escribir programa Escuela Superior de Informática. UCLM Modificar programa Tema 4: 8 Metodología y Tecnología de la Programación El modelo en Cascada • Desarrollado en la mitad de los años 1970 • Las actividades que deben ser específicamente consideradas durante el desarrollo incluyen: – – – – Establecer clara y concretamente los requisitos Crear un diseño claro a partir de los requisitos Implementar el diseño Probar la implementación • Originalmente se propuso como un modelo lineal, con poca o ninguna retroalimentación • En la práctica el modelo no es realista Escuela Superior de Informática. UCLM Tema 4: 9 Metodología y Tecnología de la Programación El Modelo en Cascada Establecer requisitos Generar diseño Implementar código Probar el sistema Escuela Superior de Informática. UCLM Tema 4: 10 Metodología y Tecnología de la Programación Un proceso iterativo • Permite al desarrollador iterar a través de los diferentes etapas de desarrollo • Esencialmente es retroalimenteación el modelo en cascada con • La retroalimentación no debe intentar usarse como una ayuda continua • Se debe usar como una técnica de la que el desarrollador dispone para tratar con problemas inesperados que vayan apareciendo Escuela Superior de Informática. UCLM Tema 4: 11 Metodología y Tecnología de la Programación Un Proceso Iterativo de Desarrollo Establecer requisitos Crear diseño Escuela Superior de Informática. UCLM Implementar código Probar el sistema Tema 4: 12 Metodología y Tecnología de la Programación Prototipo • Un programa creado para explorar un concepto determinado • Más útil y más efectivo en tiempo y esfuerzo que meramente actuar sobre una suposición que puede fallar posteriormente • Se crea, normalmente, para comunicarse con el cliente: – una tarea particular – la factibilidad de un requisito – una interfase de usuario • Una forma de validar requisitos Escuela Superior de Informática. UCLM Tema 4: 13 Metodología y Tecnología de la Programación Un Proceso Iterativo Mejorado Prototipo Prototipo Prototipo Prototipo Establecer requisitos Crear diseño Implementar código Probar el sistema Evaluar Evaluar Evaluar Evaluar Escuela Superior de Informática. UCLM Tema 4: 14 Metodología y Tecnología de la Programación Evaluación • Los resultados de cada etapa deben evaluarse cuidadosamente antes de pasar a la etapa siguiente • Por ejemplo, antes de pasar al diseño los requisitos deben evaluarse para asegurar su completitud, consistencia y claridad • La evaluación del diseño debe asegurar que cada requisito está adecuadamente tenido en cuenta • Antes de las pruebas, la implementación debe pasar un proceso de revisión del código (code walkthrough) Escuela Superior de Informática. UCLM Tema 4: 15 Metodología y Tecnología de la Programación Técnicas de Pruebas • Objetivo: Encontrar errores • Se denomina prueba de defectos (defect testing) • Un buen caso de prueba debe descubrir problemas en un programa • Un caso de prueba incluye – un conjunto de entradas – acciones del usuario u otras condiciones iniciales – salida esperada • No es posible considerar todos los casos posibles Escuela Superior de Informática. UCLM Tema 4: 16 Metodología y Tecnología de la Programación Pruebas de Caja Negra • Se establece una correspondencia entre un conjunto de entradas con sus salidas esperadas • Una clase de equivalencia es una colección de conjuntos de entrada • Dos entradas pertenecen a la misma clase de equivalencia si no hay razón para considerar que si una funciona, la otra no. • Por lo tanto, probar una esencialmente la clase entera Escuela Superior de Informática. UCLM entrada prueba Tema 4: 17 Metodología y Tecnología de la Programación Pruebas de Caja Blanca • Se centra en la lógica interna tal como la implementación de un método • El cubrimiento de las sentencias garantiza que todas las sentencias en un método se han ejecutado • El cubrimiento de las condiciones garantiza que cubrimos todos los caminos a través de un método Escuela Superior de Informática. UCLM Tema 4: 18