Instituto Tecnológico de Costa Rica Escuela de ingeniería en Computación IC-5821-Requerimientos de Software Roberto Hernández Robles 201243031 Validación de requerimientos de software Definiciones Validación: Es establecer la meta o el valor de un producto de software para su futura misión operativa. Verificación: Es establecer que tanto corresponden los requerimientos del software con el producto de software. Usualmente se pueden diferenciar ambos términos en el ambiente de trabajo mediante las siguientes preguntas: Verificación: "¿Estoy construyendo correctamente el producto?" Validación: "¿Estoy construyendo el producto correcto?" En el resto del documento se hará referencia a Validación y Verificación como V&V. Contexto de los procesos de V&V en el ciclo de vida del software Por definición, la verificación implica la comparación entre la línea de base y los requerimientos de los refinamientos sucesivos que descienden de él (el diseño de productos, diseño detallado, código, bases de datos, y documentación) a fin de mantener estos refinamientos en consonancia con los requerimientos del usuario. Por lo tanto, las actividades de verificación comienzan en la fase diseño de producto y concluyen con la aceptación del mismo. Estas actividades no conducen a cambios en los requerimientos iniciales; sólo a los cambios en la refinamientos que descienden de él. Por otro lado, la validación identifica los problemas que deben resolverse por un cambio de la especificación de requerimientos. Por lo tanto, hay actividades de validación que se producen a lo largo del ciclo de vida del software, incluyendo la fase de desarrollo. Por ejemplo, una simulación del diseño del producto puede mostrar no sólo que el diseño no puede cumplir con los requerimientos de rendimiento iniciales (verificación), sino también que los requerimientos de rendimiento son demasiado estrictos para los diseños de productos rentables, y por lo tanto necesitan ser cambiadas (validación). Criterios de V&V Los cuatro criterios básicos de V&V para los requerimientos y especificaciones de diseño son completitud, consistencia, viabilidad, y la capacidad de prueba. A continuación de definen cada uno de ellos. Completitud: Una especificación es completa en la medida en que todas sus partes están presentes y cada parte está completamente desarrollada. Consistencia: Una especificación es consistente en la medida en que sus disposiciones no entren en conflicto entre sí o con las demás especificaciones y objetivos. Viabilidad: Una especificación es viable en la medida en que los beneficios del ciclo de vida del sistema especificado superarán los costes del ciclo de vida. Por lo tanto, la viabilidad implica algo más que la verificación de que un sistema puede ser desarrollado satisfaciendo los requisitos funcionales y de rendimiento. También implica validar que el sistema especificado será suficientemente mantenible, confiable y bien diseñado para el uso de los humanos de manera que sea factible para mantener el balance del ciclo de vida del sistema positivo. Capacidad de prueba: Una especificación es testeable en la medida en que uno puede identificar una técnica económicamente viable para determinar si el software desarrollado satisface la especificación. Con el fin de ser testeable, las especificaciones deben ser específicas, sin ambigüedades, y cuantitativas siempre que sea posible. Técnicas para V&V Existen varias técnicas para llevar a cabo el proceso de validación y verificación de requerimientos de software por parte del desarrollador; en esta sección solamente se mencionaran algunas de las que se suelen utilizar en el proceso del desarrollo de software, queda a criterio del lector la investigación más profunda de las mismas por sus medios o bien en el artículo principal en el cuál está basado este. Algunas de las técnicas que se utilizan para la realización de los procesos de V&V son: • • • • Técnica de manuales simples Técnica automatizada simple Técnica de manuales detallados Técnica automatizada detallada