martes, 12 de marzo de 2013

UNIDAD 2 INGENIERÍA DE REQUISITOS





UNIDAD 2 INGENIERÍA DE REQUISITOS

2.1 TAREA DE LA INGENIERÍA DE REQUISITOS
La ingeniería de requisitos ayuda a los ingenieros de software a entender mejor el problema en cuya solución trabajaran. Incluye el conjunto de tareas que conducen comprender cuál será el impacto del software sobre el negocio, que es lo que el cliente quiere y como interactuaran los usuarios finales con el software.
Inicio
Al inicio del proyecto los ingenieros de software hacen una serie de preguntas libres de contexto. El objetivo es establecer una comprensión básica del problema, las personas que quieren una solución que se desea, y la efectividad de la comunicación preliminar entre el cliente y el desarrollador.
Obtención

En verdad parece muy simple preguntarle al cliente, a los usuarios y otros interesados cuáles son los objetivos para el sistema o producto, que es lo que se debe lograr, de que forma el producto satisface las necesidades del negocio y po
Ultimo como utilizara el sistema o producto día a día. 
Elaboración

La elaboración se conduce mediante la creación y el refinamiento de escenarios del usuario que describen la forma en que el usuario final (y otros actores) interactúan con el sistema. Cada escenario del usuario se analiza para obtener clases de análisis: entidades del dominio del negocio visibles para el usuario final. Se definen los atributos de cada clase de análisis y se identifican los servicios que requiere cada clase. Se identifican las relaciones y la colaboración entre las clases y se produce una variedad de diagramas de ULM complementarios.
Negociación

El ingeniero de requisitos debe conciliar estos conflictos por medio de un proceso de negociación. Se pide a los clientes, usuarios y otros interesados que ordenen sus requisitos y después discutan los conflictos relacionados con la prioridad. Se identifican y analizan los riesgos asociados con cada requisito.
Especificación

En el contexto de los sistemas basados en computadora (y en software), el termino especificación puede ser un documento escrito, un conjunto de modelos gráficos, un modelo matemático formal, una colección de escenarios de uso, un prototipo o cualquier combinación de estos
Validación

La validación de requisitos examina la especificación 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 estos han sido corregidos, y que los productos de trabajo cumplen con los estándares establecidos para el proceso, proyecto y producto.
Gestión de Requisitos

La gestión de requisitos comienza con la identificación. Cada requerimiento se asigna a un solo identificador. Una vez identificados los requisitos se desarrollan las tablas de rastreabilidad, la cual relaciona los requisitos con uno o más aspectos del sistema o de su ambiente.

2.2. Técnicas de la Ingeniería de Requisitos
Técnicas Principales

La ingeniería de requisitos puede ser un proceso largo y arduo para el que se requiere de habilidades psicológicas. Los nuevos sistemas cambian el entorno y las relaciones entre la gente, así que es importante identificar a todos los actores involucrados, considerar sus necesidades y asegurar que entienden las implicaciones de los nuevos sistemas. Los analistas pueden emplear varias técnicas para obtener los requisitos del cliente. Históricamente, esto ha incluido técnicas tales como las entrevistas, o talleres con grupos para crear listas de requisitos. Técnicas más modernas incluyen los prototipos, y utilizan casos de uso. Cuando sea necesario, el analista empleará una combinación de estos métodos para establecer los requisitos exactos de las personas implicadas, para producir un sistema que resuelva las necesidades del negocio.

Entrevistas
Las entrevistas son un método común. Por lo general no se entrevista a toda la gente que se relacionará con el sistema, sino a una selección de personas que represente a todos los sectores críticos de la organización, con el énfasis puesto en los sectores más afectados o que harán un uso más frecuente del nuevo sistema.
Talleres
Los requisitos tienen a menudo implicaciones cruzadas desconocidas para las personas implicadas individuales y que a menudo no se descubren en las entrevistas o quedan incompletamente definidas durante la misma. Estas implicaciones cruzadas pueden descubrirse realizando en un ambiente controlado, talleres facilitados por un analista del negocio, en donde las personas implicadas participan en discusiones para descubrir requisitos, analizan sus detalles y las implicaciones cruzadas. A menudo es útil la selección de un secretario dedicado a la documentación de la discusión, liberando al analista del negocio para centrarse en el proceso de la definición de los requisitos y para dirigir la discusión.

Forma de contrato
En lugar de una entrevista, se pueden llenar formularios o contratos indicando los requisitos. En sistemas muy complejos éstos pueden tener centenares de páginas.
Objetivos medibles
Los requisitos formulados por los usuarios se toman como objetivos generales, a largo plazo, y en cambio se los debe analizar una y otra vez desde el punto de vista del sistema hasta determinar los objetivos críticos del funcionamiento interno que luego darán forma a los comportamientos apreciables por el usuario. Luego, se establecen formas de medir el progreso en la construcción, para evaluar en cualquier momento qué tan avanzado se encuentra el proyecto.

Prototipos
Un prototipo es una pequeña muestra, de funcionalidad limitada, de cómo sería el producto final una vez terminado. Ayudan a conocer la opinión de los usuarios y rectificar algunos aspectos antes de llegar al producto.



2.3 MODELOS DE REQUISITOS

 El propósito del Modelo de Requisitos es capturar precisa y fielmente las principales características del sistema software que se desea construir.
El propósito del Modelo de Requisitos es capturar precisa y fielmente las principales características del sistema software que se desea construir. Este modelo permite representar los requisitos del sistema de manera que cualquiera de sus potenciales usuarios pueda revisarlo y comprenderlo, sin que para esto necesite un entrenamiento especial. No obstante, la notación utilizada en tal representación es lo suficientemente precisa para que pueda servir de base a la fase de modelado conceptual.   En este modelo los conceptos de actor y caso de uso desempeñan roles de mucha importancia. Ambos conceptos fundamentan el Modelo de Casos de Uso propuesto por Jacobson en su Método OOSE . Es reconocida la efectividad de este modelo para manejar la complejidad de los requisitos. Su simplicidad, derivada del uso del lenguaje natural para describir la funcionalidad observada en el espacio del problema, posibilita la participación activa de usuarios finales y clientes en el modelado de los requisitos. Sin embargo, el Modelo de Casos de Uso tiene dos desventajas importantes que dificultan frecuentemente la puesta en práctica de las técnicas de Ingeniería de Requisitos: la dificultad de determinar el nivel de abstracción correcto para especificar los casos de uso y la inexistencia de un proceso para analizar esta especificación y traducirla a un modelo conceptual .
 Modelo de Casos de Uso  
El modelado de requisitos utiliza los elementos del Modelo de Casos de Uso propuesto por Jacobson, bajo el esquema conceptual y notacional definido en UML]. De esta forma, la especificación de actores y casos de uso así como el establecimiento de las relaciones entre éstos, constituye el objetivo fundamental del Modelo de Casos de Uso. El principal insumo requerido para el desarrollo de este modelo son las funciones elementales identificadas como nodos hoja en el Árbol de Refinamiento Funcional del sistema. Cada una de estas funciones elementales es considerada en el modelo como un caso de uso . Luego de identificar sus actores, la especificación de los casos de uso describe en lenguaje natural la secuencia completa y ordenada de las acciones que el sistema debe ejecutar, incluyendo todas sus posibles variantes, al interactuar con los actores para la satisfacción de los requisitos.  


2.4. Herramientas CASE para la Ingeniería de requisitos.

USO DE PROTOTIPOS. 
Un proceso interactivo del desarrollo de sistemas en el cual los requerimientos son convertidos en un sistema que trabaja, y que es continuamente revisado a través de un trabajo conjunto entre un analista y los usuarios.

JOINT APPLICATION DESIGN (JAD). 
Un proceso estructurado en el cual los usuarios, gerentes y analistas, trabajan juntos varios días en una serie de reuniones intensivas para especificar o revisar requerimientos de sistemas.

HERRAMIENTAS CASE (COMPUTER-AIDED SOFTWARE ENGINEERING).
Uso de herramientas para la ingeniería de software asistida por computadora para aumentar la productividad, comunicarse más efectivamente con los usuarios e integrar el trabajo que realizan los analistas en el sistema, desde el principio hasta el fin del ciclo de vida.
GROUPWARE. Software que está diseñado para ser usado en una red y servir a un grupo de usuarios que trabajan en un proyecto relacionado.
Estas herramientas ayudan a los especialistas en sistemas a documentar un sistema existente, ya sea manual o automatizado. También sirve para determinar los requerimientos de una nueva aplicación.