Ingeniería de Sistemas Requerimientos basado en el capítulo 6 “ISW” Ian Sommerville Profesora Dra. Yulia Ledeneva MCC, UAP Tianguistenco, UAEM
Objetivos Introducir los conceptos de usuario y requerimientos del sistema Describir los requerimientos funcionales y no funcionales Explicar dos técnicas para describir los requerimientos de un sistema Explicar como los requerimientos de software pueden ser organizados en un documento de requerimientos
Tópicos cubiertos Requerimientos funcionales y no funcionales Requerimientos del usuario Requerimientos del sistema El documento de requerimientos del software
Requerimientos Los requerimientos para un sistema son la descripción de los servicios proporcionados por el sistema y sus restricciones operativas. Los requerimientos reflejan las necesidades de los clientes de un sistema que ayude a resolver algún problema
Ingeniería de requerimientos El proceso de descubrir, analizar, documentar y verificar estos servicios y restricciones
Abstracción de requerimientos (Davis, 1993) “Si una compañía desea establecer un contrato para un proyecto de desarrollo de software grande, debe de definir sus necesidades de una forma suficientemente abstracta para establecer a partir de ella una solución. Los requerimientos deben redactarse de tal forma que varios contratistas pueden licitar el contrato, ofreciendo, quizás, formas diferentes de cumplir con necesidades de los clientes en la organización. Una vez que el contrato se asigna, el contratista debe redactar una definición del sistema para el cliente más detalladamente de forma que éste comprenda y pueda validar lo que dará el software. Ambos documentos se pueden denominar documento de requerimientos para el sistema.”
Tipos de requerimientos Requerimientos del usuario Declaraciones en lenguaje natural e en diagramas, de los servicios que se espera que el sistema proporcione y de las restricciones bajo las cuales debe de funcionar Requerimientos del sistema Documento estructurado que establece una descripción detallada de los servicios y restricciones operativas del sistema Especificación del Software Una descripción detallada del software que es una base para el diseño e implementación. Esta orientada para ser leída por los desarrolladores
Definiciones y especificaciones Definición de Requerimientos 1. El Software proporciona significado de representación y acceso a archivos externos creados por otras herramientas. Especificación de Requerimientos 1.1 El usuario debe proporcionar facilidades para definir el tipo de archivos externos. 1.2 Cada tipo de archivo externo puede tener una herramienta asociada. La cual, será aplicada para el archivo. 1.3 Cada tipo de archivo externo será representado como un icono específico mostrado al usuario. 1.4 Las facilidades proporcionadas para la representación del icono en un tipo de archivo externo será definido por el usuario. 1.5 Cuando un usuario selecciona una representación de icono de un archivo externo, el efecto de la selección es aplicar las herramientas asociadas con el tipo de archivo externo al archivo representado por la selección del icono.
Lectores de requerimientos Definición de Requerimientos Gerencia de Cliente Usuarios Finales del Sistema Ingenieros de Clientes Gerencia de Contratistas Arquitectos del Sistema Requerimientos de especificación Ingenieros de Cliente Desarrolladores de Software Especificación de Software (Quizá) Ingenieros de Clientes
Requerimientos funcionales Describen la funcionalidad o los servicios del sistema Dependen del tipo de software y del sistema que se desarrolle y de los posibles usuarios del software Los requerimientos funcionales para el usuario son declaraciones de alto nivel, los describen en forma general. Sin embargo, los requerimientos funcionales del sistema describen los servicios del sistema en detalle
Requerimientos NO funcionales Definen propiedades y restricciones del sistema, por ejemplo, fiabilidad, respuesta en el tiempo y la capacidad de almacenamiento. Describen restricciones como las capacidades de los dispositivos de E/S, representaciones del sistema, etc. El proceso de requerimientos puede especificarse a través de sistema particular de CASE, lenguaje de programación o método desarrollado
Clasificación de requerimientos NO funcionales Requerimientos del producto Éstos especifican el comportamiento del producto, por ejemplo, rapidez de ejecución, fiabilidad, etc. Requerimientos organizacionales Estos requerimientos son una consecuencia de las políticas y procedimientos de la organización, por ejemplo, estándares usados en los procesos, los requerimientos de implementación, etc. Requerimientos externos Son requerimientos que se originan por factores externos al sistema y de su proceso de desarrollo, por ejemplo, requerimientos legales, éticos, etc.
Ejemplos de requerimientos NO funcionales Requerimientos del producto 8.1 La interfaz de usuario del LIBSYS se implementará como HTML simple sin marcos o applets Java Requerimientos organizacionales 9.3.2 El proceso de desarrollo del sistema y los documentos a entregar deberán ajustarse a proceso y a los productos e entregar definidos en XYDR-STRE-99 Requerimientos externos 10.6 El sistema no deberá revelar al personal de la biblioteca que lo utilice ninguna información de los usuarios del sistema aparte de su nombre y número de referencia de la biblioteca.
Tipos de requerimientos NO funcionales
Metas
Métricas para los requerimientos no funcionales Propiedad Medida Rapidez Transacciones procesadas por segundo Tiempo de respuesta al usuario y a eventos Tiempo de actualización de la pantalla Tamaño KB Número de chips de RAM Facilidad de uso Tiempo de capacitación Número de cuadros de ayuda Fiabilidad Tiempo promedio entre fallas Probabilidad de no disponibilidad Tasa de ocurrencias de las fallas Disponibilidad Robustez Tiempo de reinicio después de fallas Porcentaje de eventos que provocan fallas Probabilidad de corrupción de los datos después de las fallas Portabilidad Porcentajes de declaraciones dependientes del objetivo Número de sistemas objetivo
Documento de requerimientos (ver ejemplo) Introducción Glosario Definición de requerimientos del usuario Arquitectura del sistema Especificación de los requerimientos del sistema Modelos del sistema Evolución del sistema Apéndice
ejercicios a continuación …
Incluir el documento del requerimientos del software Actividades de la ingeniería de requerimientos: Ver ejemplo
Fechas de entrega Presentación de Avances de la Ingeniería de Requerimientos: 4 de noviembre (Tarea 4) Presentación de Avances: 11 de noviembre Entrega de documentación final: 18 de noviembre
Capítulo 7 completar el documento general con Estudio de viabilidad Obtención y análisis de requerimientos Validación de requerimientos Gestión de requerimientos