Está en la página 1de 20

Ingeniera de Requisitos de Software

Universidad de Caldas Ingeniera del Software 1 Rubn Daro Garca Guzmn

Introduccin
` Resolver un problema depende en gran medida, de entender dicho problema. ` Es el cliente quien sabe cual es el problema. ` El cliente no sabe lo que se requiere? ` los usuarios finales no deberan entender bien las caractersticas y funciones que les proporcionarn un beneficio? ` Muchas veces, la respuesta a estas preguntas es no. ` Los clientes y usuarios finales son explcitos en sus necesidades, los requisitos pueden cambiar durante el proceso.

En que etapa del proceso est la Ingeniera de Requisitos?


` Los constructores de software les atrae ms la construccin (y diseo) que otras fases del proceso ` "Las cosas se aclararn mientras se construye ` "Los interesados en el software sern capaces de entender mejor las necesidades solo despus de examinar las primeras iteraciones del software ` "Las cosas cambian rpido y la ingeniera de requisitos es una prdida de tiempo ` "La lnea base produce un programa que funciona y lo dems es secundario ` La ingeniera de requisitos, debe adaptarse a las necesidades del proyecto, el producto y las personas que realizan el trabajo.

En que etapa del proceso est la Ingeniera de Requisitos?


` La Ingeniera de Requisitos (IR) es una accin de la ingeniera del software que comienza durante la actividad de comunicacin y contina en la actividad de modelado. ` Es esencial que el equipo del software haga un esfuerzo real por entender los requisitos de un problema ANTES de intentar resolverlo. ` La ingeniera de requisitos es un puente hacia el diseo y la construccin ` Puede partir desde los participantes del proyecto ` Puede partir en un plan de proyecto del software o en un plan estratgico de sistemas de la empresa ` Se describen necesidades del negocio, escenarios de los usuarios, caractersticas y funciones, se identifican restricciones del proyecto.

Tareas de la Ingeniera de Requisitos


` La Ingeniera de requisitos proporciona el mecanismo adecuado para entender lo que el cliente quiere, analizar las necesidades, evaluar la factibilidad, negociar una solucin razonable, especificar una solucin sin ambigegades, validar la especificacin y administrar los requisitos conforme stos se transforman en un sistema. ` La ingeniera de requisitos se lleva a cabo a travs de siete distintas funciones: inicio, obtencin, elaboracin, negociacin, especificacin, validacin y gestin. ` Algunas de estas funciones ocurren en paralelo y todas deben adaptarse a las necesidades del proyecto. ` Todas estn dirigidas a definir lo que el cliente quiere, y todas sirven para establecer una base slida respecto del diseo y la construccin de lo que obtendr el cliente.

Tareas de la Ingeniera de Requisitos


Inicio ` Cmo se inicia un proyecto de software? Es un evento aislado que se convierte en catalizador para un nuevo sistema o producto de computador? O la necesidad evoluciona con el tiempo? ` El proceso puede iniciar a veces con una conversacin formal, tambin inician cuando se identifica una necesidad de negocio o se descubre un nuevo mercado o servicio potencial. ` Los participantes definen un caso de negocio para la idea, tratan de identificar amplitud y profundidad del mercado, hacen un anlisis preliminar de factibilidad, e identifican una descripcin funcional del mbito del proyecto. ` Al inicio del proyecto, los ingenieros de software hace una serie de preguntas libres de contexto, para establecer una comprensin bsica del problema, las personas que quieren una solucin, la naturaleza de la solucin que se desea, y la efectividad de la comunicacin preliminar entre el cliente y el desarrollador.

Tareas de la Ingeniera de Requisitos


Obtencin ` Parece muy simple preguntarle al cliente, usuarios cules son los objetivos para el sistema o producto, qu es lo qu se debe lograr, de qu forma el producto satisface las necesidades del negocio y cmo se utilizar el sistema o producto da a da?. No es simple, es muy difcil. ` Existen una serie de problemas que ayudan a entender por qu es difcil la obtencin: ` Problemas de mbito: El lmite del sistema est mal definido o los clientes/usuarios especifican detalles tcnicos innecesarios que pueden confundir, en lugar de clarificar, los objetivos generales del sistema. ` Problemas de comprensin: Los clientes/usuarios no estn seguros por completo de qu es lo que se necesita, comprenden poco acerca de las capacidades y limitaciones de su ambiente de cmputo, no comprenden del todo el dominio del problema, tienen dificultades al comunicar necesidades al ingeniero de sistemas, omiten informacin que consideran "obvia", especifican requisitos que chocan con las necesidades de otros clientes/usuarios, o especifican requisitos ambigos o inestables. ` Problemas de volatilidad: Los problemas cambian conforme transcurre el tiempo.

Tareas de la Ingeniera de Requisitos


Elaboracin: ` La informacin conseguida con el cliente durante el inicio y la obtencin se expande y se refina durante la elaboracin. ` Esta actividad se enfoca en el desarrollo de un modelo tcnico refinado de las funciones, caractersticas y restricciones del software. ` La elaboracin es una accin del modelado del anlisis y se compone de una serie de tareas de modelado y refinamiento. ` Se conduce mediante la creacin y el refinamiento de escenarios del usuario que describen la forma en que cada usuario final interactan con el sistema. ` Cada escenario del usuario se analiza para obtener clases del anlisis, atributos de cada clase, se identifican servicios que requiere cada clase, se identifican relaciones y colaboraciones entre clases, todo esto, utilizando una gran variedad de diagramas UML. ` El resultado final, es un modelo de anlisis que define el dominio de la informacin, las funciones y el comportamiento del problema.

Tareas de la Ingeniera de Requisitos


Negociacin ` Normalmente los recursos del negocio son limitados, por tanto, sucede que los clientes y usuarios piden ms de lo que se puede lograr. ` Los clientes y usuarios proponen requisitos que entran en conflicto entre s. ` El ingeniero de requisitos debe conciliar conflictos por medio de un proceso de negociacin. ` Se pide a los clientes, usuarios y otros interesados que ordenen sus requisitos y despus discutan los conflictos relacionados con la prioridad. ` Se identifican y analizan los riesgos asociados con cada requisito, se hacen "estimaciones" preliminares del esfuerzo requerido para su desarrollo y despus se utilizan para evaluar el impacto de cada requisito en el costo del proyecto y en el tiempo de entrega. ` Los requisitos se eliminan, combinan o modifican de forma que cada parte alcance algn grado de satisfaccin.

Tareas de la Ingeniera de Requisitos


Especificacin ` La especificacin puede ser un documento escrito o un conjunto de modelos grficos o un modelo matemtico formal, tambin puede ser una coleccin de escenarios de uso, un prototipo o cualquier combinacin de los anteriores. ` Aunque algunos autores definen la necesidad de una "plantilla estndar" para especificaciones, a veces, es necesario ser flexible mientras se desarrolla una especificacin. ` Respecto a sistemas grandes, el mejor enfoque podra ser un documento escrito que combine descripciones en lenguaje natural y modelos grficos. ` Para sistemas pequeos, pueden necesitarse escenarios de uso por ejemplo. ` La especificacin es el producto de trabajo final que genera la ingeniera de requisitos. Sirve como base de actividades de ingeniera del software subsecuentes. Describe la funcin y el desempeo de un sistema basado en computador y las restricciones que regirn el desarrollo.

Tareas de la Ingeniera de Requisitos


Validacin ` La calidad de los productos del trabajo de la ingeniera de requisitos se analiza en un paso de validacin. ` Esta examina la especificacin para asegurar que todos los requisitos de software se han establecido de manera precisa, que se han detectado las inconsistencias, omisiones y errores y que stos han sido corregidos, y que los productos de trabajo cumplen con los estndares establecidos en el proceso, proyecto y producto. ` Se utiliza como principal herramienta de validacin, la Revisin Tcnica Formal. ` El equipo que valida estos requisitos incluye ingenieros de software, clientes, usuarios y otros interesados. ` Estos revisan la especificacin y buscan errores en el contenido o la interpretacin, reas que tal vez requieran una clarificacin, informacin faltante, inconsistencias, conflictos entre requisitos o requisitos irreales.

Gestin de Requisitos
` La gestin de requisitos es un conjunto de actividades que ayudan al equipo de proyecto a identificar, controlar y rastrear los requisitos y los cambios a stos en cualquier momento mientras se desarrolla el proyecto. ` La gestin de requisitos comienza con la identificacin. Cada requerimiento se asigna a un solo identificador. ` Una vez identificados los requisitos, se desarrollan tablas de rastreabilidad (matriz de rastreabilidad), stas relacionan los requisitos con uno o ms aspectos del sistema o de su ambiente. ` Entre las muchas tablas de rastreabilidad posibles estn: ` Tabla de rastreabilidad de las caractersticas: Muestra la manera en que los requisitos se relacionan con las caractersticas del sistema/producto observables para el cliente. ` Tabla de rastreabilidad de la fuente: Identifica la fuente de cada requisito. ` Tabla de rastreabilidad de dependencia: Indica la forma en que los requisitos estn relacionados entre s. ` Tabla de rastreabilidad de la interfaz: Muestra la forma en que los requisitos se relacionan con las interfaces internas y externas del sistema.

Proceso de Ingeniera de Requisitos


Inicio del proceso ` Identificacin de los interesados ` Reconocimiento de mltiples puntos de vista ` Trabajo con respecto a la colaboracin ` Formulacin de las primeras preguntas
Quin est detrs de la solicitud de este trabajo? Quin usar la solucin? Cul ser el beneficio econmico de una solucin exitosa? Existe otra fuente para la solucin requerida?

` Otro tipo de preguntas


Cmo podra caracterizarse un buen resultado generado por una solucin exitosa? Cules problemas debera atacar esta solucin? Podra usted describir o mostrar el ambiente de negocios en el que se utilizar la solucin? Los aspectos especiales del desempeo o las restricciones afectarn la forma en que se busque la solucin?

` La serie final de preguntas


Es usted la persona adecuada para contestar esta pregunta? sus respuestas son oficiales? Mis preguntas son relevantes para su problema? Estoy haciendo demasiadas preguntas? Alguien ms puede proporcionar informacin adicional? Debera preguntarle alguna otra cosa?

Proceso de Ingeniera de Requisitos


Obtencin de Requisitos ` Recopilacin conjunta de requisitos
Las reuniones las dirige alguno de los asistentes, ya sea un ingeniero o un cliente. Se establecen reglas para la preparacin y la participacin Se sugiere una agenda que sea tan formal como para cubrir todo los puntos importantes, pero tan informal como para estimular el flujo de ideas. Un moderador controla la reunin. Se utiliza un "mecanismo de definicin" (Hojas, graficos, tablero, etc) La meta es identificar el problema, proponer elementos de solucin, negociar diferentes enfoques y especificar un conjunto de requisitos de solucin preliminar en una atmsfera que conduzca al cumplimiento de la meta.

` Una tcnica para la recopilacin conjunta de aplicaciones es JAD (Join Application Development)www.carolla.com/wpjad.htm

Proceso de Ingeniera de Requisitos


Obtencin de Requisitos ` Despliegue de la funcin de calidad ` Escenarios de usuario ` Productos de trabajo de la obtencin
Un enunciado de necesidad y factibilidad Un enunciado limitado al mbito del sistema o producto Una lista de clientes, usuarios y otros interesados que participan en la obtencin de requisitos Una descripcin del ambiente tcnico del sistema Una lista de requisitos y las restricciones del dominio aplicables a cada uno. Un conjunto de escenarios de uso que proporcionen un discernimiento de la utilizacin del sistema o producto en diferentes condiciones de operacin. Prototipos desarrollados para definir mejor la forma de los requisitos.

Proceso de Ingeniera de Requisitos


Desarrollo de casos de uso ` Un caso de uso captura un contrato, describe el comportamiento del sistema en diferentes condiciones mientras responde a las peticiones de un usuario. ` Un caso de uso cuenta una historia estilizada de la manera en que un usuario final interacta con el sistema en un conjunto especfico de circunstancias. ` Primero se definen los actores, es decir, quienes estn involucrados en la historia, estos pueden ser personas o productos. ` Despus de identificarse los actores, se desarrollan los casos de uso, estableciendo actores primarios, metas del actor, condiciones previas, tareas o funciones principales del actor, excepciones que pueden considerarse mientras sucede la historia, variaciones posibles en la interaccin del actor, informacin del sistema que el actor adquirir, producir o cambiar, cambios en el medio externo, informacin que el actor desea del sistema, cambios inesperados que deben ser informados al actor. ` Una herramienta utilizada en este proceso es el diagrama de casos de usos de UML.

Proceso de Ingeniera de Requisitos


Construccin del modelo de anlisis ` El objetivo del modelo de anlisis es describir los dominios requeridos de informacin, funcionamiento y comportamiento de un sistema. ` El modelo cambia a medida que los ingenieros del software aprenden ms del sistema y los interesados entienden mejor lo que necesitan. Esto implica que los modelos no pueden ser nicos, son cambiantes y se van refinando en el tiempo. ` Elementos del modelo de anlisis ` Elementos basados en escenarios ` Elementos basados en clases ` Elementos de comportamiento ` Elementos orientados al flujo

Proceso de Ingeniera de Requisitos


Negociacin de Requisitos ` En un contexto ideal de la ingeniera de requisitos, las tareas de inicio, obtencin y elaboracin determinan los requisitos con el suficiente detalle como para entender los pasos subsecuentes de la ingeniera del software. ` Pero esto sucede muy rara vez, en realidad, el cliente y el desarrollador entran en un proceso de negociacin, en el cual se le debe pedir al cliente un balance de la funcionalidad, el rendimiento y otras caractersticas del sistema o producto frente al costo y utilidad de ste. ` El objetivo es desarrollar un plan de proyecto que satisfaga las necesidades del cliente al mismo tiempo que refleja las restricciones del mundo real a las que est sometido el equipo del software.

Proceso de Ingeniera de Requisitos


Negociacin de Requisitos ` Las mejores negociaciones son las del tipo "gana-gana", es decir, el cliente gana al obtener el sistema o producto que satisface la mayora de sus necesidades, y el equipo de software gana al trabajar con presupuestos y lmites de tiempo realistas y alcanzables. ` Un conjunto de actividades de negociacin que se pueden hacer al principio de cada iteracin pueden ser: ` Identificacin de los interesados clave en el sistema o subsistema. ` Determinacin de las "condiciones ganadoras" de los interesados. ` Negociacin de las condiciones ganadoras de los interesados para reconciliarlas en conjunto de condiciones de tipo ganarganar para todos los involucrados.

Proceso de Ingeniera de Requisitos


Validacin de Requisitos Una revisin del modelo de anlisis se enfoca en las siguientes preguntas:
Cada requisito es consistente con el objetivo general del sistema/producto? Todos los requisitos han sido especificados con el grado apropiado de abstraccin? esto es, algunos requisitos proporcionan un grado de detalle tcnico que sea inapropiado en esta etapa? El requisito es necesario en realidad o representa una caracterstica agregada irrelevante para el objetivo del sistema? Cada requisito est limitado y no es ambigo? Cada requisito tiene una atribucin? esto es, existe una fuente (por lo general especfica, individual) determinada para cada requisito? Algunos requisitos entran en conflicto con otros? Cada requisito es alcanzable en el ambiente tcnico que recibir al sistema o producto? Cada requisito se puede probar una vez que ste haya sido implementado? El modelo de requisitos refleja de manera apropiada la informacin, la funcin y el comportamiento del sistema que ser construido? El modelo de requisitos se ha sometido "particin" para que exponga en forma progresiva informacin ms detallada acerca del sistema?