Está en la página 1de 30
Requerimientos de Software Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero

Requerimientos de Software

Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008

Ingeniería de Requerimientos

Ingeniería de Requerimientos • Se define como el “proceso de establecer los servicios que el consumidor

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

Tipos de Especificación • Requerimientos de Usuarios: Están definidos en lenguaje natural que esbozan los servicios

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

Lectores de Requerimientos • Requerimientos de Usuarios – Administradores Clientes. – Usuarios Finales del

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

Tipos de Requerimientos • Requerimientos Funcionales: Definición de los servicios que el un sistema de proveer,

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

Requerimientos Funcionales • Describe las funcionalidades y servicios del sistema. Ejemplos • El sistema deberá

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

Requerimientos Ambiguos • Muchos problemas relacionados con requerimientos están asociados a la diferentes

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

Caracteristicas Deseadas • Para evitar problemas, se espera que una especificación de requerimientos de tener las

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.

Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008

Requerimientos No Funcionales

Requerimientos No Funcionales • Definen las propiedades y restricciones del sistema a construir o sobre el

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

Clasificación • Requerimientos del Producto: Requerimientos que especifican que el productos deba comportarse de una

Requerimientos del Producto: Requerimientos que especifican que el productos deba comportarse de una determinada manera.

Requerimientos Organizacionales: Requerimientos 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 desarrollo como tal.

Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008

Clasificación

Clasificación 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

Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008

Factores claves de la comunicación

Factores claves de la comunicación • Tamaño del Grupo: Entre mas grande sea el grupo, se

Tamaño del Grupo: Entre mas grande sea el grupo, se dificultara mas la comunicación. (Recomendado 4 a 7 Personas).

Estructura del Grupo: Los grupos informales facilitan la comunicación.

C ompos ición del g rupo: Las comunicación es mejor en un grupo diverso.

Espacio Físico: 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

Ejemplos • Requerimientos del producto: – La interfaz debe ser implementada en HTML puro (Sin applets,

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

Medición de Requerimientos • Algunos requerimientos son difíciles de verificar, principalmente los no funcionales.

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

Medidas de Requerimientos • Rapidez: Transacciones procesadas por minuto, Tiempo de respuesta al usuario y a

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

Medidas de Requerimientos • Fiabilidad: Tiempo medio entre fallos, Porcentaje de disponibilidad. • Robustez:

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

Interacción entre requerimientos • En sistema complejos es común encontrar conflictos entre requerimientos no

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

Requerimientos del Dominio • Estos requerimientos (funcionales o no funcionales) están relacionados con el dominio de

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

Requerimientos de Usuario • Los requerimientos se especifican en un lenguaje entendible por los usuarios del

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

Problemas de los requerimientos de usuario • Para hacer un documento fácil de leer, se eliminan

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

Tips para requerimientos de usuario • Construir un formato estándar para expresar todos los requerimientos. •

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

Requerimientos del Sistema • Para que se pueda diseñar el sistema de la manera se debe

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

Requerimientos del Sistema • Debe de especificarse en un lenguaje mas formal que el natural. Alternativas

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

Datos básicos de un Requerimiento de Sistema • Función • Descripción • Entradas • Fuente de

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

Datos básicos de un Requerimiento de Sistema • Acción • Requisito • Precondición, Postcondición • Efectos

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

Notaciones Gráficas Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio
Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Febrero – Junio 2008

Documento de Requerimientos

Documento de Requerimientos • Es el documento formal en el cual se especifican los requerimientos del

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

Usuarios del Documento de Requerimientos Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II
Usuarios del Documento de Requerimientos Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II

Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008

Contenido del Documento

Contenido del Documento • Según la Norma IEEE 830-1998 Escuela de Ingeniería de Sistemas y Computación

Según la Norma IEEE 830-1998

Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008
Escuela de Ingeniería de Sistemas y Computación
Desarrollo de Software II
Febrero – Junio 2008

Lecturas Recomendadas

Lecturas Recomendadas • Ingeniería de Software, Ian Sommerville. 7 t h Edición. (Capitulo 6). • Norma

Ingeniería de Software, Ian Sommerville. 7 th 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