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
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
El ciclo de vida de un programa El ciclo de vida total de un programa incluye su uso y mantenimiento: Uso Desarrollo Mantenimiento Escuela Superior de Informática. UCLM
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
Desarrollo frente a Mantenimiento Uso y Mantenimiento Escuela Superior de Informática. UCLM
Esfuerzo de Desarrollo y Mantenimiento Desarrollo Mantenimiento Desarrollo Mantenimiento Escuela Superior de Informática. UCLM
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
La aproximación Artesanal Escribir programa Modificar Escuela Superior de Informática. UCLM
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
El Modelo en Cascada Establecer requisitos Generar diseño Implementar código Probar el sistema Escuela Superior de Informática. UCLM
Un proceso iterativo Permite al desarrollador iterar a través de los diferentes etapas de desarrollo Esencialmente es el modelo en cascada con retroalimenteación 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
Un Proceso Iterativo de Desarrollo Establecer requisitos Crear diseño Implementar código Probar el sistema Escuela Superior de Informática. UCLM
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
Un Proceso Iterativo Mejorado Establecer requisitos Crear diseño Implementar código Probar el sistema Prototipo Evaluar Escuela Superior de Informática. UCLM
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
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
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 entrada prueba esencialmente la clase entera Escuela Superior de Informática. UCLM
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