Você está na página 1de 38

Anlisis de Requerimientos

Ing. Luis Zuloaga Rotta

Ing. Luis Zuloaga Rotta

Situacin de la Industria de Software


Mas del 30% de todos los proyectos de software son cancelados antes de su finalizacin. Mas del 70% de los proyectos restantes fallan al entregar y evaluar las caractersticas esperadas. Un proyecto promedio ejecuta 189% sobre el presupuesto aprobado y extiende sus actividades sobre el 222%.

Fuente : The Standish Group - 1996

Ing. Luis Zuloaga Rotta

Porqu los Proyectos de Software son exitosos ?


Involucra a Usuarios Soporte Administracin Clara definicin de Requerimientos Apropiado Planeamiento Expectativas Realistas Hitos no Extensos Staff Competente de profesionales Propietario

15.9% 13.9% 13.0% 9.6% 8.2% 7.7% 7.2% 5.3%

Fuente:

Quality Systems & Software - 1997

Ing. Luis Zuloaga Rotta

Porqu los Proyectos de Software fallan ?


Requerimientos Incompletos Falta de Requerimientos Falta de Recursos Expectativas no Realistas Cambio Requerimientos/Especificaciones Falta de Planeamiento No se especifico el tiempo adecuado

13.1% 12.4% 10.6% 9.9% 8.7% 8.1% 7.5%

Fuente : Quality Systems & Software - 1997

Ing. Luis Zuloaga Rotta

Qu es un Requerimiento ?
Un requerimiento es una condicin o capacidad a la que el sistema (siendo construido) debe conformar [ Rational Software Corp.]. Un requerimiento de software puede ser definido como :
Una capacidad del software necesaria por el usuario para resolver un problema o alcanzar un objetivo. Una capacidad del software que debe ser reunida o poseda por un sistema o componente del sistema para satisfacer un contrato, especificacin, estndar, u otra documentacin formal.
Ing. Luis Zuloaga Rotta

Interpretaciones acerca de los Requerimientos


El consultor Brian Lawrence sugiere que un requerimiento es cualquier cosa que impulsa un diseo de calidad. Muchos tipos de informacin caen en esta categora. El glosario estndar IEEE de Terminologa de Ingeniera de Software define un requerimiento como:
1. Una condicin o capacidad necesaria por un usuario para resolver un problema o lograr un objetivo. 2. Una condicin o capacidad que debe ser cumplida o poseda por un sistema o componente del sistema para satisfacer un contrato, estndar, especificacin u otros documentos formalmente impuestos. 3. Una representacin documentada de una condicin o capacidad como en las especificaciones 1 o 2.

Ing. Luis Zuloaga Rotta

La definicin +
Esta definicin debe ser acompaada por la visin del usuario acerca de los requerimientos (el comportamiento externo del sistema) y la visin de los desarrolladores (algunas caractersticas del sistema no evidentes).

Ing. Luis Zuloaga Rotta

Qu representan y muestran los Requerimientos ?


Los requerimientos de usuario representan el conjunto completo de resultados a ser obtenidos utilizando el sistema. Los requerimientos de sistemas deben mostrar todo lo que el sistema debe hacer mas todas las restricciones sobre la funcionalidad. Los requerimientos forman un modelo completo, representando el sistema total a algn nivel de abstraccin.
Ing. Luis Zuloaga Rotta

Ing. Luis Zuloaga Rotta

Rol de Requerimientos
Si un producto no es lo que el cliente o los usuarios quieren, entonces la calidad de la construccin es irrelevante. El rol clave de los requerimientos es mostrar a los desarrolladores y usuarios que se necesita de un sistema. Proveer los requerimientos forma parte de un lenguaje que todos comprenden, ya que todos estn involucrados, incluyendo los clientes. El primer y bsico rol de los requerimientos es por lo tanto la comunicacin.
Ing. Luis Zuloaga Rotta

Cmo identificamos los Requerimientos ?


Los Requerimientos toman vida desde que realizamos nuestro primer encuentro de interlocucin con usuarios o clientes. Este puede desarrollarse utilizando cualquiera de una variedad de tcnicas como entrevistas para intercambiar opiniones, brainstorming, prototipeo, cuestionarios, etc. Cuando los requerimientos se logran redactar a un significativo nivel de detalle, tendremos listo el documento denominado Especificacin de Requerimientos.
Ing. Luis Zuloaga Rotta

Necesidades y requerimientos
Los usuarios o clientes manifiestan necesidades, las cuales pueden ser de todo tipo. Estas necesidades se convierten para los responsables de atenderlas en requerimientos. En otras palabras los requerimientos son las necesidades de otros que hay que atender.

Ing. Luis Zuloaga Rotta

Buena Especificacin de Requerimientos


Un resultado primario de esta administracin es la Especificacin de Requerimientos, la cual define y documenta en forma completa el comportamiento externo del sistema a ser construido. Caracterizndose por :
Definidos sin ambiguedad Son completos Tienen consistencia Especifica el origen Evita detalles de diseo Estn enumerados
Ing. Luis Zuloaga Rotta

Beneficios de una Buena Administracin de Requerimientos


Mejor control de proyectos complejos. Mejora en la calidad del software y en la satisfaccin del cliente. Reduccin en los retrasos y en los costos del proyecto. Mejora en la comunicacin del equipo. Facilita la conformidad con estndares y regulaciones.

Ing. Luis Zuloaga Rotta

Los Problemas de la Administracin de Requerimientos


No son siempre obvios y tienen muchas fuentes. No son siempre fciles de expresar en palabras. Hay muchos tipos diferentes a distintos niveles de detalle. El nmero puede llegar a ser inmanejable. Estn relacionados a otros en una variedad de formas. Hay muchos interesados y partes responsables. Cambian. Pueden ser sensibles al tiempo.

Ing. Luis Zuloaga Rotta

El Alto Costo de Errores en los Requerimientos


Hay fuertes evidencias que una efectiva administracin de requerimientos conducen los ahorros del proyecto integral. Las tres razones primarias para esto son :
Costos de reparar errores en los requerimientos superan en mas de 10 veces a otros errores. Errores de requerimientos comprenden encima del 40% de todos los errores de un proyecto de software. Pequeos reducciones en el nmero de errores de requerimientos rinden grandes dividendos al evitar costos de re-trabajo y das de retraso.
Ing. Luis Zuloaga Rotta

Procesos de Ingeniera Software


Requerimientos de usuarios Nuevo o cambiado

Procesos de

Sistema

Ingeniera de Software Nuevo o cambiado

Un proceso es el conjunto total de actividades de ingeniera necesarias para transformar dentro de software los requerimientos de usuarios
Managing the Process, Humphrey, 1989

Ing. Luis Zuloaga Rotta

NIVELES DE LOS REQUERIMIENTOS

Los valos representan tipos de requerimientos de informacin y los rectngulos indican contenedores o recipientes (documentos, diagramas o bases de datos) en la cual almacenamos esta informacin.
Ing. Luis Zuloaga Rotta

Requerimientos del Dominio


Se derivan del dominio del sistema ms que de las necesidades especficas de los usuarios. Pueden ser requerimientos funcionales nuevos, restricciones a los existentes o la definicin de cmo se deben ejecutar clculos particulares. Los requerimientos del dominio son importantes debido a que a menudo reflejan los fundamentos del dominio de aplicacin. Si estos requerimientos no se satisfacen, es imposible hacer que el sistema trabaje de forma satisfactoria.
Ing. Luis Zuloaga Rotta

Requerimientos de Usuario
Describen las metas del usuario o las tareas que los usuarios deben ser capaces de ejecutar con el producto. Formas valiosas para representar los requerimientos de usuario incluyen a los casos de uso, descripciones de escenarios, y tablas de respuesta a eventos. Los requerimientos de usuario sin embargo describen lo que el usuario ser capaz de hacer con el sistema.
Ing. Luis Zuloaga Rotta

Requerimientos del Sistema


Establecen con detalle los servicios y restricciones del sistema. El documento de requerimientos del sistema, algunas veces denominado especificacin funcional, debe ser preciso. ste sirve como parte del contrato entre el negocio y el desarrollador de software.

Ing. Luis Zuloaga Rotta

Ej. Definicin de Requerimientos de Usuario


1.El software debe proveer un medio para representar y acceder a archivos externos creados por otras herramientas.

Ing. Luis Zuloaga Rotta

Ej. Especificacin de los

requisitos para un Requerimiento del sistema

1.1 Al usuario se le proveer con los recursos para definir el tipo de archivos externos. 1.2 Cada tipo de archivo externo tendr una herramienta asociada que ser aplicada al archivo. 1.3 Cada tipo de archivo externo se representar como un icono especifico sobre la pantalla del usuario. 1.4 Se proveern recursos para que el usuario defina el icono que representa un tipo de archivo externo. 1.5 Cuando un usuario selecciona un icono que representa un archivo externo, el efecto de esa seleccin es aplicar la herramienta asociada con este tipo de archivo al archivo representado por el icono seleccionado.
Ing. Luis Zuloaga Rotta

Requerimientos Funcionales (RFN)


Describen la funcionalidad o los servicios que se espera proveer el sistema. Estos dependen del tipo de software y del sistema que se desarrolle y de los posibles usuarios del software. Cuando se expresan como requerimientos del usuario, habitualmente se describen de forma general mientras que los requerimientos funcionales del sistema describen con detalle la funcin de ste, sus entradas y salidas, excepciones, etc.
Ing. Luis Zuloaga Rotta

Ej. Sistema de Biblioteca


1. El usuario deber tener la posibilidad de buscar referencias bibliogrficas en el conjunto inicial de la base de datos o seleccionar un sub conjunto de ella. 2. El sistema deber proveer visores adecuados para que el usuario lea documentos en el almacn de documentos. 3. A cada pedido se le deber asignar un identificador nico que el usuario podr copiar al rea de almacenamiento permanente de la cuenta.
Ing. Luis Zuloaga Rotta

Anlisis de la especificacin de Requerimientos


El sistema de biblioteca puede almacenar documentos en diferentes formatos y la intencin de este requerimiento es que los visores para todos estos formatos estn disponibles. Sin embargo, el requerimiento es ambiguo puesto que no clarifica que los visores para cada formato deban ser provistos. Un desarrollador bajo la presin del tiempo sencillamente podra proporcionar un visor de texto y afirmar que se ha cumplido el requerimiento.
Ing. Luis Zuloaga Rotta

Requerimientos No Funcionales (RNF)


Son aquellos requerimientos que no se refieren directamente a las funciones especficas que entrega el sistema, sino a las propiedades emergentes de ste como la fiabilidad, la respuesta en el tiempo y la capacidad de almacenamiento. De forma alternativa, definen las restricciones del sistema, como la capacidad de los dispositivos de entrada/salida y la representacin de datos que se utiliza en las interfaces del sistema. Sin embargo, estos requerimientos no siempre se refieren al sistema de software a desarrollar.

Ing. Luis Zuloaga Rotta

Requerimientos No Funcionales

Requerimientos del Producto

Requerimientos Organizacionales

Requerimientos Externos

Requerimientos de Eficiencia

Requerimientos de Fiabilidad

Requerimientos de Portabilidad

Requerimientos de Interoperabilidad

Requerimientos ticos

Requerimientos de Usabilidad

Requerimientos de Entrega

Requerimientos de Implementacin

Requerimientos de Estndares

Requerimientos Legales

Requerimientos de Desempeo

Requerimientos de Espacio

Requerimientos de Privacidad

Requerimientos de Seguridad

Ing. Luis Zuloaga Rotta

RNF : Requisitos del Producto


stos especifican el comportamiento del producto. Algunos ejemplos son los requisitos de desempeo en la rapidez de ejecucin del sistema y cunta memoria se requiere; los de fiabilidad que fijan la tasa de fallas para que el sistema sea aceptable; los de portabilidad y los de usabilidad.

Ing. Luis Zuloaga Rotta

RNF: Requerimientos Organizacionales


Se derivan de las polticas y procedimientos existentes en la organizacin del cliente y en la del desarrollador. Algunos ejemplos son los estndares en los procesos que deben utilizarse; los requerimientos de implementacin como los lenguajes de programacin o el mtodo de diseo a utilizar, y los requerimientos de entrega que especifican cundo se entregar el producto y su documentacin.
Ing. Luis Zuloaga Rotta

RNF: Requerimientos Externos


Este gran apartado cubre todos los requerimientos que se derivan de los factores externos al sistema y de su proceso de desarrollo. stos incluyen los requerimientos de interoperabilidad que definen la manera en que el sistema interacta con los otros sistemas de la organizacin; los requerimientos legales que deben cumplirse para operar dentro del marco de la Ley, y los requerimientos ticos que permitan asegurar que ser aceptado por el usuario y por el pblico en general.
Ing. Luis Zuloaga Rotta

Ejemplos RNF
Requerimiento relacionados al Producto
El tiempo de respuesta que debe ofrecer el sistema para una transaccin en el mdulo X debe oscilar entre los 3 y 6 seg.

Requerimiento Organizacional
El proceso de desarrollo del sistema y los documentos a entregar debern apegarse al proceso y a los productos a entregar definidos en la norma N abc-2002.

Requerimiento Externo
El sistema no deber revelar a sus operadores alguna informacin personal de los clientes excepto su nombre y nmero de referencia.

Ing. Luis Zuloaga Rotta

MTRICAS PARA ESPECIFICAR REQUERIMIENTOS NO FUNCIONALES

PROPIEDAD
Rapidez Tamao Facilidad de uso

MEDIDA
Transacciones procesadas por segundo Tiempo de respuesta al usuario y a eventos Tiempo de actualizacin de la pantalla KBs Tamao de RAM Tiempo de capacitacin Nmero de ventanas de ayuda Tiempo promedio entre fallas Probabilidad de no disponibilidad Tasa de ocurrencia de las fallas Disponibilidad Tiempo de reinicio despus de fallas Porcentaje de eventos que provocan las fallas Probabilidad de corrupcin de los datos despus de las fallas Porcentaje de declaraciones dependientes del objetivo Nmero de sistemas objetivo Ing. Luis Zuloaga Rotta

Fiabilidad

Robustez Portabilidad

Identificacin de Requerimientos y Reglas del Negocio


Para identificar los requerimientos correctos del negocio primero debemos de comprender como funciona, es decir cuales son las reglas del negocio. Mientras ms complejo es el sistema una mayor cantidad de vistas del mismo son necesarias para comprender su funcionamiento. Las distintas vistas del negocio pueden conseguirse a travs de un mapeo de la situacin actual (AS-IS) utilizando a un alto nivel:
El Diagrama de descomposicin funcional o mapeo de procesos.

Ing. Luis Zuloaga Rotta

Descomposicin Funcional IDEF0

Ing. Luis Zuloaga Rotta

Requerimientos
Elicitacin y anlisis de Requerimientos Definicin y especificacin de Requerimientos

Anlisis del problema

Descripcin del problema

Prototipado y testeo

Documentacin y validlidacin

Hemos capturado todas las necesidades del usuario?

Estamos usando las vistas y tcnicas correctas?

Es sta funcinalidad factible de attender?

Hemos capturado y especificado las expectativas de los usuarios?

Ing. Luis Zuloaga Rotta

Reglas y requisitos
Regla: condicin lgica que debe cumplir o satisfacer o la que debe responder el producto o servicio a brindar o requerimiento a implementar. Requisito: caractersticas que deben cumplir los productos o servicios a desarrollar, mantener o comprar. Un requisito podra ser satisfacer una determinada regla.

Ing. Luis Zuloaga Rotta

Preguntas ?

Ing. Luis Zuloaga Rotta

Você também pode gostar