lunes, 11 de marzo de 2013

2.1 Tareas de la ingeniería de requisitos


2.1.- Tareas de la ingeniería de requisitos
Se define como un conjunto de actividades en los cuales, utilizando tecnicas y herramientas, se analiza un problema y se concluye con la especificación de una solución. La ingeniería de requisitos es el proceso de desarrollar una especificación de software.
ÿ Inicio:
Tiene por objetivo identificar el ámbito del proyecto general. Comienza con una serie de conversaciones informales entre los participantes del mismo. Esta fase suele ser acompañada de los documentos de definición de la visión global y la visión del dominio del sistema. Se inicia muchas veces por: se descubre un nuevo mercado y se descubre un nuevo servicio.
ÿ Obtención:
Se sugiere a los ingenieros recopilar requisitos de manera organizada, preguntando a los usuarios y otros interesados cuales son os objetivos para el sistema o producto, que es lo que se debe lograr, de que forma el producto satisface las necesidades del negocio y como se utilizara el producto día d día. Se identifican una serie de problemas que ayudan a entender porque es difícil la obtención de requisitos:
1 Problema de ámbito
1 Problema de comprensión
1 Problemas de volatilidad
ÿ Elaboración:
Se crea un modelo de análisis con la información obtenida del cliente en las fases de inicio y obtención. La información conseguida con el cliente durante el inicio y obtención se expande y se refina durante la elaboración. Esta actividad se enfoca en el desarrollo de un modelo técnico refinado de las funciones, características y restricciones del software. La elaboración se conduce mediante la creación y refinamiento de escenarios del usuario que describan la forma en que el usuario final y otros actores interactúan con el sistema.
ÿ Negociación:
En esta etapa el ingeniero de requisitos debe negociar con el cliente los alcances y límites del sistema. De forma iterativa los requisitos se prioriza, modifican, combinan o eliminan buscando acuerdos que beneficien a todas las partes. Se identifican y analizan los riesgos asociados con cada requisito.
ÿ Especificación:
Es el producto final de la ingeniería de requisitos, y se convierte en la materia prima para las actividades posteriores en el proceso de desarrollo del sistema. Una 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:
Un equipo de validación toma el producto de la fase de especialización, lo revisa para detectar errores, conflictos u omisiones y los corrige con el fin de garantizar la consistencia de requisitos. La validación de requisitos examina la especificación para asegurar que todos los requisitos de software se han establecidos de manera precisa; que se han detectado las inconsistencias omisiones y errores y que estos han sido corregidos y que el producto de trabajo cumple con los estándares establecidos para el proceso, proyecto y producto.
ÿ Gestión de requisitos:
Ayuda a rastrear los requisitos según las características de los mismos, el código fuente relacionado, dependencia entre requisitos, subsistemas e interfaces internas y externas de forma que pueda identificarse con rapidez para entender como afectara una modificación diferentes aspectos del sistema a construir. Es un conjunto de actividades que ayudan al equipo de proyecto a identificar, controlar y rastrear los requisitos y los cambios a estos en cualquier momento mientras se desarrolla el proyecto.

2.2 Tecnicas de la ingeniria de requisitos


2.2 Técnicas de la ingeniería de requisitos
Se conocen varias técnicas para la ingeniería de requisitos, estas pueden ser aplicables a las distintas fases del proceso de la IR. Las técnicas más utilizadas son:
ÿ Entrevistas y cuestionarios:
Estos se emplean para reunir la información proveniente de personas o de grupos. El analista conversa con el encuestado y realiza preguntas relacionadas con varios aspectos de un sistema. Lo más común, los encuestados son usuarios de los sistemas existentes. El éxito que se tenga depende de la habilidad del entrevistador y de su preparación de la misma.
ÿ Sistemas existentes:
Consiste en analizar distintos sistemas ya desarrollados que estén relacionados con el sistema a ser construido, podemos analizar las interfaces de usuario observando el tipo de información que se maneja y como es manejada.
ÿ Lluvia de ideas:
Este modelo se usa para generar ideas. La intención en su aplicación es la de generar la máxima cantidad posible de requerimientos para el sistema, la principal intención es generar muchas ideas, posteriormente se irán eliminando en base a distintos criterios como, “caro”, “impracticable”, “imposible” etc.
ÿ Prototipos:
Para validar los requerimientos hallados, se construyen prototipos. Los prototipos son simulaciones del posible producto, que luego son utilizados por el usuario final, permitiéndonos conseguir una importante retroalimentación en cuanto a si el sistema diseñado con base a los requerimientos recolectados le permite al usuario realizar su trabajo de manera eficiente y efectiva.
ÿ Casos de uso:
Son una técnica para especificar el comportamiento de un sistema. Los casos de uso permiten describir la posible secuencia de interacciones entre el sistema y uno o más actores. Los casos de uso es una técnica que se basa en escenarios para la obtención de requerimientos, se ha convertido en una característica fundamental de la notación UML que es utilizado para describir modelos de sistemas orientada a objetos.
ÿ Herramientas automatizadas para la administración de requerimientos:
Las herramientas case (ingeniería del software asistida por computadora) se le conoce a todo aquel software que es usado para ayudar a las actividades del proceso de desarrollo del software. Estas herramientas se concentran en capturar requerimientos, administrarlos y producir una especificación de requisitos. Entre otras cosas estas herramientas permiten un control mayor en proyectos complejos, reducir costos y retrasos en los proyectos, ayudan a determinar la complejidad y los esfuerzos necesarios.
ÿ RequisitePro:
Es la herramienta tener un mayor control sobre los requerimientos planteados por el usuario y todos aquellos requerimientos técnicos o nuevos requerimientos planteados por el usuario y todos aquellos requerimientos técnicos o nuevos requerimientos de usuario que surjan durante el ciclo de vida del proyecto. Esta herramienta se integra con aplicaciones para la administración de cambios, herramientas de modelado de sistemas y con herramientas de pruebas. Esta integración asegura que los diseñadores conocen los requerimientos del usuario, del sistema y del software en el momento de su desarrollo. 

2.3 Modelado de requisitos


2.3.- modelado de requisitos
El modelo de requisitos tiene como objetivo delimitar al sistema y capturar la funcionalidad que debe ofrecer desde la perspectiva del usuario. Este modelo puede funcionar como un contrato entre el desarrollador y el cliente o usuario del sistema, y por lo tanto proyecta lo que el cliente desea según la percepción del desarrollador. Es el primer modelo a desarrollarse, sirviendo de base para la formación de todos los demás modelos en el desarrollo de software. Como propósito también tiene el de capturar precisa y finalmente las principales características del sistema de software que se desea construir. Este modelo permite representar los requisitos del sistema de manera que cualquiera de sus potenciales de usuario pueda revisarlo y comprenderlo sin que para eso necesite un entrenamiento especial. No obstante la notación utilizada en tal representación es lo suficientemente preciso para que pueda servir de base a la fase de modelado conceptual.
Las tecnicas propuestas para el desarrollo del modelo de requisitos intentan superar estos problemas la determinación del propósito del sistema y la descomposición de sus interacciones externas en funciones (árbol de refinamiento de funciones, Conjuntamente con un estructurado especificación de las funcionalidades modelo de casos de usos). Constituyen la clave para el establecimiento del nivel de abstracción adecuado de los modelos de uso.

2.4 Herramientas case para la ingeniería de requisitos


2.4.- herramientas case para la ingeniería de requisitos
1 Borland caliber analyst:
Se trata de un producto que está compuesto por dos aplicaciones desarrolladas por la compañía borland. Por un lado están el caliber define(la última de las herramientas en cuanto a fecha de lanzamiento) que permite definir los requisitos del sistema así como a capturar las diferentes herramientas visuales, es necesario señalar que este software es compatible con gran número de herramientas existentes en el mercado.
1 Case espec:
Esta herramienta está desarrollada por la empresa coda software.
Características:
Especificación, seguimiento de los requisitos, capacidad de rastres, importar y exportar archivos.
1 IRQA4:
Herramienta desarrollado por visure y que tiene la meta de servir como aplicación para proporcionar un soporte integral en la ingeniería de requisitos de un proyecto de la informática aparte de incluir las tareas más básicas de la ingeniería de requisitos(captura, análisis, modelado, organización y seguimiento).
1 Tiger pro:
Herramienta shoreware desarrollado para facilitar al usuario la tarea de redactar los requerimientos de un proyecto. Este aplicativo es capaz de solucionar algunos de los aspectos.
1 IBM rational requisite pro:
Esta herramienta desarrollada por una de las compañías más importantes dentro del campo de la informática, se considera una de las herramienta más completas y potentes dentro del análisis y la gestión de requisitos: una de las grandes ventajas que aporta este producto es la compatibilidad y algunos programas más usados.
1 Rambután:
Esta herramienta está basada en XML, realmente consta de un conjunto de aplicación para usuario final ayudando a los analistas de sistemas en la recopilación y categorización de hechos en un documento de especificación de requisitos ofrece las ventajas de aplicación para pal (PDA clases), portabilidad entre plataformas independientemente metodología, herramienta de distribución libre.