Story Transcript
Requerimientos de Software
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Ingeniería de Requerimientos • Se define como el “proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar y ser desarrollado”. Sommerville. • Es una de las etapas mas criticas del proceso de software, determina que se va realizar. • Mas del 30% de los proyectos de software que fracasan lo realizan por causa de los requerimientos.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Tipos de Especificación • Requerimientos de Usuarios: Están definidos en lenguaje natural que esbozan los servicios y restricciones del sistema, Escrito para consumidores. • Requerimientos del Sistema: Están definidos de una manera estructurada, y además de los servicios y restricciones del sistema, da nociones concisas de como debería ser implementado.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Lectores de Requerimientos • Requerimientos de Usuarios – Administradores Clientes. – Usuarios Finales del Sistema. – Administradores Contratistas • Requerimientos de Sistema – Arquitectos del sistema. – Desarrolladores del Software. – Usuarios Finales del sistema
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Tipos de Requerimientos • Requerimientos Funcionales: Definición de los servicios que el un sistema de proveer, su comportamientos a las diferentes entradas y situaciones. • Requerimientos No Funcionales: Restricciones aplicadas sobre las funcionalidades del sistema como: restricciones de tiempo, sobre el proceso de desarrollo, recursos, dominio del negocio.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos Funcionales • Describe las funcionalidades y servicios del sistema. Ejemplos • El sistema deberá almacenar la información personal de los pacientes. • El sistema deberá poder desplegar la historia clínica en cualquiera de los nodos de acceso. • El sistema deberá registrar cualquier acceso o modificación sobre una historia clínica
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos Ambiguos • Muchos problemas relacionados con requerimientos están asociados a la diferentes interpretación que se le pueden dar a los mismos. • Las ambigüedad puede ser usada para sacar partido de las diversas situaciones – Un desarrollador pude tomar la interpretación mas simple (Por presión de tiempo). – Un cliente puede tomar la interpretación mas compleja (Para obtener más por su inversión).
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Caracteristicas Deseadas • Para evitar problemas, se espera que una especificación de requerimientos de tener las siguientes características: (IEEE830) – Correcto:Lo que se especifica es lo que se quiere – Completo: Todas las necesidades deben estar reflejadas. – Consistente: No debe existir contradicción entre requerimientos. – Comprobable: Se debe poder determinar si se cumple o no.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos No Funcionales • Definen las propiedades y restricciones del sistema a construir o sobre el proceso que lo construirá • Los requerimientos no funcionales, suelen ser mas críticos que los funcionales, dado que su incumplimiento puede hacer inútil el sistema. • Estos están clasificados según el tipo de restricción que se quiera implementar.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Clasificación • R equerimientos del Producto: R equerimientos que especifican que el productos deba comportarse de una determinada manera. • R equerimientos Org anizacionales : R equerimientos que surgen de políticas y procedimientos del organización (C readora o Usuaria). • R equerimientos Externos : R equerimientos surgidos por factores externos al proyecto de des arrollo como tal.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Clasificación
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Factores claves de la comunicación • Tamaño del G rupo: E ntre mas grande sea el grupo, se dificultara mas la comunicación. (R ecomendado 4 a 7 P ersonas). • Es tructura del G rupo: Los grupos informales facilitan la comunicación. • C ompos ición del g rupo: Las comunicación es mejor en un grupo diverso. • Es pacio Fís ico: Una correcta organización del espacio pude beneficiar la comunicación. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Ejemplos • Requerimientos del producto: – La interfaz debe ser implementada en HTML puro (Sin applets, Javascript, o frames). • Requerimientos Organizacionales: – El proceso de desarrollo debe estar conforme con el SGC de la corporación. • Requerimientos Externos: – La información medica de un paciente, no debe estar al alcance del publico general.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Medición de Requerimientos • Algunos requerimientos son difíciles de verificar, principalmente los no funcionales. • Se debe determinar en los posible crear métricas que permitan verificar el requerimiento Ejemplo • La interfaz debe ser de fácil uso (Poco Verificable) • La interfaz debe estar diseñada para que pueda ser usada después de dos horas de capacitación, después de lo cual la media de errores no excederá de dos por día
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Medidas de Requerimientos • Rapidez: Transacciones procesadas por minuto, Tiempo de respuesta al usuario y a eventos, tiempo de actualización de la pantalla • Tamaño: Cantidad de Memoria o Disco duro requerido. • Facilidad de Uso: Tiempo de Formación requerido, Cantidad de mensajes y documentación de ayuda, efectividad de los usuarios.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Medidas de Requerimientos • Fiabilidad: Tiempo medio entre fallos, Porcentaje de disponibilidad. • Robustez: Tiempo de reinicio después de fallo, numero de eventos que producen fallos, Probabilidad de corrupción de datos después de fallos
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Interacción entre requerimientos • En sistema complejos es común encontrar conflictos entre requerimientos no funcionales Ejemplo: – El sistema debe maximizar la cantidad de usuario que pueden acceder al sistema. – El sistema minimizar los recursos requeridos para su funcionamiento. • No se puede cumplir a cabalidad con los requerimientos, Cual es mas critico?
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos del Dominio • Estos requerimientos (funcionales o no funcionales) están relacionados con el dominio de negocio que se empresa dominio. Problemas • Estos requerimientos generalmente se expresa en un vocablo propio del dominio de negocio. • Los especialistas del dominio no siempre detectan la necesidad de expresar explícitamente estos requerimientos.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos de Usuario • Los requerimientos se especifican en un lenguaje entendible por los usuarios del sistema que no tienen conocimientos técnicos • Generalmente se expresan usando lenguaje natural, tablas y diagramas que todos puedan entender. • Son suficientes para que los usuarios entiendan o sepan que esperar del sistema en desarrollo.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Problemas de los requerimientos de usuario • Para hacer un documento fácil de leer, se eliminan detalles que deterioran el detalle y la precisión de los requerimientos. • No hay una completa división entre requerimientos funcionales y no funcionales. • Muchos requerimientos tienen de ser expresados juntos.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Tips para requerimientos de usuario • Construir un formato estándar para expresar todos los requerimientos. • Use el lenguaje de una manera consistente, que permitan diferenciar claramente entre requerimientos obligatorios y requerimientos deseables. • Resaltar aspectos importante del requerimientos (Con negrilla, subrayado, etc). • Evitar en lo posible la jerga informática.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos del Sistema • Para que se pueda diseñar el sistema de la manera se debe proveer de mas información al arquitecto. • Los requerimientos del sistema proveen una definición mucho mas completa y detallada, de tal manera que sirva como un esbozo inicial de la aplicación. • No se limita a especificar que debe hacer el sistema, sino que además debe especificar como lo debe hacer.
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Requerimientos del Sistema •
Debe de especificarse en un lenguaje mas formal que el natural.
Alternativas •
Lenguaje Estructurado: Hace uso de formulario o plantillas.
•
Lenguajes de Especificación Formales: Lenguajes especiales similares a los de programación
•
Notaciones Gráficas: Representación del requerimiento por medio de gráficas
•
Notaciones matemáticas: Lenguajes basados en abstracciones matemáticas (Autómatas, Álgebra de Procesos, etc)
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Datos básicos de un Requerimiento de Sistema • • • • • •
Función Descripción Entradas Fuente de la Entradas Salidas Destino de las Salidas
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Datos básicos de un Requerimiento de Sistema • • • •
Acción Requisito Precondición, Postcondición Efectos Colaterales
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Notaciones Gráficas
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Documento de Requerimientos • Es el documento formal en el cual se especifican los requerimientos del sistema. • Debe contener los requerimientos de usuario y del sistema. • Este documento es una especificación de que debe cumplir el sistema, y no contiene ningún aspecto de diseño
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Usuarios del Documento de Requerimientos
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Contenido del Documento • Según la Norma IEEE 830-1998
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Lecturas Recomendadas • Ingeniería de Software, Ian Sommerville. 7th Edición. (Capitulo 6). • Norma IEEE-830/1998 (Disponible en el campus virtual).
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008