Ingeniera de Requerimientos Estableciendo lo que el cliente requiere de un Sistema de Software. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 2 Objetivos Introduccin a la Nocin de Ingeniera de Requerimientos. Explicacin de los diferentes niveles de detalle de requerimientos que se necesiten. Describir como deben ser organizados los documentos de un Sistema de Requerimientos. Describir la validacin del Proceso de Requerimientos. Explicar porque los Requerimientos se involucran durante el tiempo de vida de un sistema. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 3 Tpicos El Proceso de Ingeniera de Requerimientos Los Documentos de Requerimientos de software Validacin de Requerimientos Evolucin de Requerimientos Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 4 Ingeniera de Requerimientos El proceso de establecer los servicios que el cliente requiere de un sistema y los limites bajo los cuales opera y se desarrolla. Los Requerimientos pueden ser Funcionales o No-Funcionales Los Requerimientos funcionales describen servicios o funciones Los Requerimientos No-funcionales son un lmite en el sistema o en el proceso de desarrollo. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 5 Qu es un Requerimiento? Es un rango de instrucciones abstractas de alto nivel de un servicio o de un sistema, limitado a detallar una especificacin funcional matemtica. As es inevitable como los Requerimientos pueden servir en una funcin dual Puede ser la base para una declaracin de un contrato, por lo tanto, deber estar abierto a interpretacin. Puede ser la base para el contrato en s, por lo tanto, debe ser definido en detalle. Ambas declaraciones sern llamadas Requerimientos. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 6 Requerimientos Definicin/Especificacin Definicin de Requerimientos Una declaracin en un Lenguaje Natural incluye los diagramas de los servicios del sistema y sus lmites operacionales. Escrito para clientes. Especificacin de Requerimientos Un documento estructurado con descripcin o detalle de los servicios del sistema. Escrito como un contrato entre el cliente y el contratista. Especificacin de Software Descripcin detallada de software, la cual, puede servir como una base para diseo o implementacin. Escrito para desarrolladodres. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 7 Definiciones y Especificaciones Definicin de Requerimientos 1. El Software proporciona significado de representacin y acceso a archivos externos creados por otras herramientas. Especificacin 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 especfico mostrado al usuario. 1.4 Las facilidades proporcionadas para la representacin del icono en un tipo de archivo externo ser definido por el usuario. 1.5 Cuando un usuario selecciona una representacin de icono de un archivo externo, el efecto de la seleccin es aplicar las herramientas asociadas con el tipo de archivo ex- terno al archivo representado por la seleccin del icono. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 8 Lectores de Requerimientos Gerencia de Cliente Usuarios Finales del Sistema Ingenieros de Clientes Gerencia de Contratistas Arquitectos del Sistema Definicin de Requerimientos Requerimientos Especificacin de Usuarios Finales del Sistema Ingenieros de Cliente Arquitectos del Sistema Desarrolladores de Software Especificacin de Software (Quiz) Ingenieros de Clientes Arquitectos del Sistema Desarrolladores de Software Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 9 Problemas Desagradables Sistemas de Software grandes con problemas de direccionamiento. Problemas de tal manera complejos que puede ser que nunca se comprendan completamente y donde los desarrolladores van comprendiendo el sistema durante su desarrollo Por lo tanto, los requerimientos son normalmente incompletos e inconsistentes. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 10 Razones de Inconsistencia Los sistemas de software grandes deben mejorar su actual situacin. Es difcil anticipar los efectos que el sistema tendr en la organizacin. Usuarios diferentes tienen requerimientos y prioridades diferentes. Hay constantemente compromiso de cambios en los requerimientos. Los usuarios finales del sistema y la organizacin que paga por el sistema tienen requerimientos diferentes. El prototipado es requerido para clarificar requerimientos Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 11 Proceso de Ingeniera de Requerimientos Estudio de Factibilidad Encuentran los usuarios actuales que sus necesidades son satisfechas dada la tecnologa y el presupuesto disponible? Anlisis de Requerimientos Encontrar que el sistema requiere del mantenimiento de intereses. Definicin de Requerimientos Definir los requerimientos en una forma comprensible para el cliente. Especificacin de Requerimientos Define los requerimientos en detalle. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 12 El Proceso de Ingeniera de Requerimientos Estudio de Factibilidad Anlisis de Requerimientos Definicin de Requerimientos Especificacin de Requerimientos Reporte de Factibilidad Modelos del Sistema Documento de Requerimientos Definicin de Requerimientos Especificacin de Requerimientos Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 13 Documento de Requerimientos Es la declaracin oficial de lo que es requerido para que el sistema sea desarrollado. Incluye la definicin y especificacin de requerimientos. No es un documento de diseo. Tanto como sea posible, es un conjunto de lo que es el sistema y como lo har. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 14 Requerimientos del Documento de Requerimientos Especificacin de la conducta externa del sistema. Especificar los lmites de la implementacin. Fcil de cambiar. Sirve como una herramienta de referencia para mantenimiento. Recuerda el ciclo de vida del sistema, esto es, predice cambios. Proporciona respuestas caractersticas a un evento no esperado. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 15 Estructura del Documento de Requerimientos Introduccin. Describe la necesidad de crear el sistema y cuales son sus objetivos. Glosario. Define los trminos tcnicos usados. Modelos del Sistema. Define los modelos que muestran los componentes del sistema y las relaciones entre ellos. Definicin de Requerimientos Funcionales. Define los servicios que sern proporcionados. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 16 Estructura del Documento de Requerimientos Definicin de Requerimientos No-funcionales. Definir las limitantes del sistema y el proceso de desarrollo. Evolucin del Sistema. Definir las suposiciones fundamentales en las cuales el sistema se basa y se anticipan los cambios. Especificacin de Requerimientos. Especificacin detallada de los requerimientos funcionales del sistema. Apndices. Descripcin de la plataforma de Hardware del Sistema. Requerimientos de la base de Datos (quiz como un modelo ER) Indice. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 17 Identificacin de Requisitos Preguntar al cliente, a los usuarios y a los que estn involucrados en los objetivos del sistema o producto y sean expertos, investigar como los sistemas o productos se ajustan a las necesidades del negocio, y finalmente, cmo el sistema o producto va a ser utilizado en el da a da. Una relacin de necesidades y caractersticas Un informe del alcance del sistema Una lista de clientes, usuarios y otros intervinientes Prototipos para definir mejor los requisitos Escenarios que permiten ver al sistema o producto bajo diferentes condiciones operativas. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 18 Identificacin de Requisitos La tcnica de obtencin de requisitos mas usada es llevar a cabo una reunin o entrevista preliminar.
Preguntas de contexto libre : Se enfocan sobre el cliente, los objetivos generales y los beneficios esperados.
Preguntas de identificacin de participantes y beneficios medibles.
Preguntas dirigidas a la eficacia de la reunin Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 19 Tcnicas para facilitar las especificaciones de la aplicacin Directrices bsicas : La reunin se celebra en un lugar neutral y acuden tanto los clientes como los desarrolladores. Se establecen normas de preparacin y de participacin Se sugiere una agenda lo suficientemente formal como para cubrir todos los puntos importantes, pero informal para el libre flujo de ideas Un coordinador que controle la reunin Mecanismos de definicin (carteles, pizarras, hojas de trabajo..) El objetivo es identificar el problema, proponer elementos de solucin, negociar diferentes enfoques y especificar un conjunto preliminar de requisitos. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 20 Despliegue de la funcin de calidad Es una tcnica de gestin de calidad que traduce las necesidades del cliente en requisitos tcnicos del software
Hace nfasis en entender lo que resulta valioso para el cliente y despus desplegar estos valores a lo largo del proceso de ingeniera.
Utiliza observaciones y entrevistas con el cliente, emplea encuestas y examina datos histricos. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 21 Despliegue de la funcin de calidad Requisitos Normales Se declaran objetivos y metas para un producto o sistema. Si los requisitos estn presentes, el cliente quedar satisfecho.
Requisitos Esperados Son implcitos al producto o sistema y son tan fundamentales que el cliente no los declara. Su ausencia sera motivo de una insatisfaccin significativa.
Requisitos Innovadores Van mas all de las espectativas del cliente y suelen ser muy satisfactorias Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 22 Anlisis y Negociacin de Requisitos Una vez recopilados, los requisitos se agrupan por categoras y se organizan en subconjuntos, se estudia cada requisito en relacin con el resto.
Utilizando un proceso iterativo, se irn eliminando requisitos, se irn combinando y/o modificando para conseguir satisfacer los objetivos planteados. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 23 Anlisis de requerimientos Mtodos de anlisis. Caractersticas comunes. Realizan una abstraccin de las caractersticas del sistema, es decir, consisten en desarrollar un modelo del mismo. Representan el sistema de forma jerrquica, basndose en mecanismos de particin del problema y estableciendo varios niveles de detalle. Definen cuidadosamente las interfaces del sistema, tanto las interfaces externas, que relacionan el sistema con su entorno, como de las internas, las que se establecen entre los distintos mdulos definidos. Sirven de base para las etapas posteriores de diseo y de implementacin. Distinguen entre requisitos esenciales y de implementacin. No prestan demasiada atencin a la representacin de las restricciones o de criterios de validacin (exceptuando los mtodos formales). Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 24 Validacin de Requerimientos Demostracin de que los requerimientos que definen el sistema son lo que el cliente realmente quiere. Los costos de errores en los requerimientos son altos, por lo cual, la validacin es muy importante. Fijar un error de requerimiento despus del desarrollo puede resultar en un costo 100 veces mayor que fijar un error en la implementacin. El Prototipado es una tcnica importante de la validacin de requerimientos. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 25 Chequeando Requerimientos Validacin. Provee al sistema las funciones que mejor soporten las necesidades del cliente? Consistencia. Existe cualquier conflicto en los requerimientos? Completo. Estn incluidas todas las funciones requeridas por el cliente? Realismo. Pueden los requerimientos ser implementados con la tecnologa y el presupuesto disponible? Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 26 Revisin de Requerimientos Una revisin regular puede ayudar mientras la definicin de requerimientos est siendo hecha. Tanto el cliente como el staff de contratistas deben estar involucrados en la revisin. La revisin debe ser formal (con los documentos completos) o informal. Una buena comunicacin entre desarrolladores, clientes y usuarios puede resolver problemas en las primeras etapas. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 27 Chequeo de la Revisin Verificabilidad. Es el Requerimiento realmente probable? Entendibilidad. Es el Requerimiento comprendido propiamente? Probabilidad. Es el origen de los requerimientos claramente establecido? Adaptabilidad. Puede el requerimiento ser cambiado sin causar un gran impacto en otros requerimientos? Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 28 Evolucin de Requerimientos Los requerimientos siempre involucran como comprender mejor el desarrollo de las necesidades de los usuarios y como los objetivos de la organizacin pueden cambiar. Es esencial planear posibles cambios en los requerimientos cuando el sistema sea desarrollado y utilizado. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 29 Evolucin de Requerimientos Comprensin Inicial del Problema Comprensin de los Cambios del Problema Requerimientos Iniciales Cambios en los Requerimientos Tiempo Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 30 Clases de Requerimientos Requerimientos Durables. Establecer requerimientos derivados de las actividades de la organizacin del cliente. Por ejemplo, un hospital siempre tendr doctores, enfermeras, etc. Puede ser derivado de modelos de dominio. Requerimientos Voltiles. Los requerimientos cambian durante el desarrollo o cuando el sistema est en uso. En un hospital, los requerimientos se derivan de las polticas salud-cuidados. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 31 Clasificacin de Requerimientos Requerimientos Cambiantes. Los requerimientos que cambian por el ambiente del sistema. Surgimiento de los Requerimientos. Requerimientos que surgen como una comprensin del desarrollo del sistema. Requerimientos en Consecuencial. Requerimientos que resultan de la introduccin del sistema a la computadora. Requerimientos Compatibles. Requerimientos que dependen de otros sistemas o de otros procesos de la organizacin. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 32 Cambios en el Documento de Requerimientos El documento de requerimientos debe ser organizado, de tal forma que los cambios en los requerimientos puedan ser hechos sin tener que re-escribir demasiado. Las referencias externas deben ser minimizadas y las secciones del documento deben ser tan modulares como sea posible. Los cambios son fciles cuando se trata de un documento electrnico. Sin embargo, la falta de estndares para documentos electrnicos lo hace difcil. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 33 Evolucin Controlada Documento VI de Requerimientos Implementacin V1 del Sistema Implementacin V2 del Sistema Documento V1 de Requerimientos Documento V2 De Requerimientos Implementacin V1 del Sistema Implementacin V2 del Sistema Cambio en los Requerimientos Cambio en los Requerimientos Inconsistencia de los Requerimientos y del Sistema Consistencia de los Requerimientos y del Sistema Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 34 Resumen Es muy difcil formular una especificacin de requerimientos completa y consistente. Una definicin de requerimientos, una especificacin de requerimientos y una especificacin de Software son una manera de especificar el Software para diferentes tipos de lectores. El Documento de Requerimientos es una descripcin para clientes y desarrolladores. Ian Sommerville 1995 Ingeniera de Software, 5a. edicin Capitulo 4 Diapositiva 35 Resumen Los errores en los requerimientos son usualmente muy caros de corregir una vez desarrollado el sistema. La revisin debe involucrar al cliente y al staff de contratistas para validar los requerimientos del sistema. El establecer requerimientos est relacionado con las actividades del cliente para el Software. Los requerimientos voltiles dependen del contexto en que se use el sistema.