Requerimientos de Software
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.
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.
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
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.
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
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).
Caracteristicas Deseadas Para evitar problemas, se espera que una especificación de requerimientos de tener las siguientes características: (IEEE- 830) 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.
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.
Clasificación Requerimientos del Producto: R equerimientos que especifican que el productos deba comportarse de una determinada manera. Requerimientos Organizacionales: R equerimientos que surgen de políticas y procedimientos del organización (C readora o Usuaria). Requerimientos Externos: R equerimientos surgidos por factores externos al proyecto de desarrollo como tal.
Clasificación
Factores claves de la comunicación Tamaño del Grupo: E ntre mas grande sea el grupo, se dificultara mas la comunicación. (R ecomendado 4 a 7 Personas). Es tructura del Grupo: Los grupos informales facilitan la comunicación. Composición del grupo: Las comunicación es mejor en un grupo diverso. Es pacio Físico: Una correcta organización del espacio pude beneficiar la comunicación.
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.
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
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.
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
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?
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.
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.
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.
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.
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.
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)
Datos básicos de un Requerimiento de Sistema Función Descripción Entradas Fuente de la Entradas Salidas Destino de las Salidas
Datos básicos de un Requerimiento de Sistema Acción Requisito Precondición, Postcondición Efectos Colaterales
Notaciones Gráficas
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
Usuarios del Documento de Requerimientos
Contenido del Documento Según la Norma IEEE 830-1998
Lecturas Recomendadas Ingeniería de Software, Ian Sommerville. 7 th Edición. (Capitulo 6). Norma IEEE-830/1998 (Disponible en el campus virtual).