viernes, 10 de octubre de 2014

2.1 TAREAS DE INGENIERIA DE REQUERIMIENTOS

En el proceso de la ingeniería de requisitos se ejecutan las tareas de inicio, obtención, elaboración, negociación, especificación, validación y gestión.  Dichas funciones deben adaptarse a las necesidades y particularidades de cada proyecto.
─ Inicio: 
Tiene por objetivo identificar el ámbito general del proyecto.  Comienza con una serie de conversaciones informales entre los participantes del mismo (cliente, usuarios, grupo de desarrollo).
Esta fase suele estar acompañada de los documentos de definición de la visión global y la visión de dominio del sistema.
─ Obtención: 
Sugiere a los ingenieros actividades de recopilación de requisitos de manera organizada.
─ Elaboración: 
Los ingenieros de software crean un modelo de análisis con la información obtenida del cliente en las fases de inicio y obtención.   El modelo de análisis define el dominio de la información, las funciones y el compartimiento del problema 
─ Negociación: 
Durante esta etapa el ingeniero de requisitos debe negociar con el cliente los alcances y limites del sistema.  De forma iterativa los requisitos se priorizan, modifican, combinan o eliminan buscando acuerdos que beneficien a todas las partes.
─ 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.  La formalidad y especificación varían dependiendo de la complejidad del proyecto.
─ 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 los requisitos. 

─ Gestión de requisitos: 
Ayuda al equipo de proyecto 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 cómo afectará una modificación diferentes aspectos del sistema a construir. 

Bibliografia
http://e-archivo.uc3m.es/bitstream/handle/10016/14998/PFC-Adelaida_Ramirez_Fernandez.pdf?sequence=1


2.2 TÉCNICAS DE LA INGENIERÍA DE REQUISITOS

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 terminado.

Casos de uso
Un caso de uso es una técnica para documentar posibles requisitos, graficando la relación del sistema con los usuarios u otros sistemas. Dado que el propio sistema aparece como una caja negra, y sólo se representa su interacción con entidades externas, permite omitir dichos aspectos y determinar los que realmente corresponden a las entidades externas. El objetivo de esta práctica es mejorar la comunicación entre los usuarios y los desarrolladores, mediante la prueba temprana de prototipos para minimizar cambios hacia el final del proyecto y reducir los costes finales. Esta técnica se enfrenta a los siguientes peligros potenciales.

  •   A los directivos, una vez que ven un prototipo, les cuesta comprender que queda mucho trabajo por hacer para completar el diseño final.
  •  Los diseñadores tienden a reutilizar el código de los prototipos por temor a “perder el tiempo” al comenzar otra vez.
  •  Los prototipos ayudan principalmente a las decisiones del diseño y de la interfaz de usuario. Sin embargo, no proporcionan explícitamente cuáles son los requisitos.
  • Los diseñadores y los usuarios finales pueden centrarse demasiado en el diseño de la interfaz de usuario y demasiado poco en producir un sistema que sirva el proceso del negocio.

Los prototipos pueden ser: diagramas, aplicaciones operativas con funcionalidades sintetizadas. Los diagramas, en los casos donde se espera que el software final tenga diseño gráfico, se realizan en una variedad de documentos de diseño gráficos y a menudo elimina todo el color del diseño del software (es decir utilizar una gama de grises). Esto ayuda a prevenir la confusión sobre la apariencia final de la aplicación.


Bibliografia:

2.3 MODELADO DE REQUISITOS

El modelado de requisitos nos sirve y tiene como propósito comprender completamente el problema y todo lo que éste implica y conlleva. Su objetivo principal es delimitar el sistema y capturar la funcionalidad que debe ofrecer desde la perspectiva del usuario.

Además el modelo de requisitos captura las principales características del sistema de software que se desea construir. Por medio de él representamos los requisitos del sistema de forma sencilla, para que de esta manera cualquier usuario pueda revisarlo y además entenderlo, sin necesidad de tener conocimientos previos al modelo e información. Intervienen en el los modelos de caso de uso, que desempeñan un papel importante de gran relevancia.

Un requisito es una condición o capacidad que necesita el usuario para resolver un problema o conseguir un objetivo determinado. Puede verse como una declaración abstracta de alto nivel de un servicio que el sistema debe proporcionar.

Los requisitos funcionales: son la característica requerida del sistema que expresa una capacidad de acción del mismo, una funcionalidad; generalmente expresada en una declaración en forma verbal. No todo lo que necesitaremos en nuestro sistema es funcionalidad pura; por el contrario a veces se necesitan otras cualidades, si se quieren generalidades, que no son objeto de codificación si bien es cierto que pueden llegar a afectar a esta. Pueden ser frases muy generales sobre lo que el sistema debería hacer. Se suelen expresar como objetivos del sistema. Deben describir los servicios que hay que proporcionar con todo detalle (casos de uso).

Requisitos no funcionales: característica requerida del sistema, del proceso de desarrollo, del servicio prestado o de cualquier otro aspecto del desarrollo, que señala una restricción del mismo. Son todas las exigencias de cualidades que se imponen al proyecto: exigencias de usar un cierto lenguaje de programación o plataforma tecnológica, por ejemplo, Un requisito no funcionales una característica ya sea del sistema, del proyecto o del servicio de soporte, que nos es requerida junto con la especificación del sistema pero que como ya dije, no se satisface añadiendo código, sino cumpliendo con esta como si de una restricción se tratara.

Los requisitos no funcionales pueden clasificarse en:
Requisitos del producto: especifican el comportamiento del producto obtenido.
Requisitos organizacionales: son una consecuencia de las políticas y procedimientos existentes en la organización.
Requisitos externos: presentan factores externos al sistema y a su proceso de desarrollo. Además, existen los requisitos de usuarios, que nos dice que el sistema debe permitir representar y acceder a archivos externos creados por otras herramientas. Los requisitos del sistema asociado nos dice que el usuario deberá poder definir el tipo de un nuevo archivo externo, el usuario deberá poder definir el icono que representa un tipo de archivo externo.

Encontramos así mismo los requisitos verificables, los requisitos no funcionales suelen ser muy difíciles de expresar con exactitud, ya que los requisitos imprecisos pueden ser difíciles de verificar, como por ejemplo: un deseo general del usuario es la facilidad de uso. Un requisito no funcional verificable, una frase que incluye alguna medida que puede ser objetivamente probada. Derivado de esto aparecen problemas cuando los requisitos no se precisan con exactitud, por ejemplo, los requisitos expresados de forma ambigua se pueden interpretar de manera diferente por los desarrolladores y por los usuarios. El proceso de análisis de requisitos, considera los aspectos relativos al análisis de las funcionalidades y la traducción al modelo conceptual.

Existen tres técnicas que nos permiten generar el modelo de requisitos:
 Misión del sistema: describe cual es el propósito del sistema, sus responsabilidades y el alcance que tendrá. A través de él podemos determinar, en términos generales, que hará y que no hará el sistema. Aunque es una técnica sencilla es de vital importancia para el desarrollo del sistema.

Árbol de refinamiento de funciones: descompone el sistema en interacciones externas, de acuerdo a algún criterio preestablecido. Cabe mencionar que las interacciones externas son organizadas en funciones que forman una jerarquía a manera de árbol, en cuyo nivel más alto (raíz) se ubica la misión del sistema. Esta Misión del Sistema es refinada hasta obtener otras funciones elementales representadas en la jerarquía a través de los nodos hoja. Este proceso descendente de refinamiento funcional puede generar distintos niveles de nodos.
Aquellos que están entre la raíz y los nodos hoja son denominados nodos intermedios. Un nodo intermedio es un sumario de funciones elementales. En general, una rama completa de nodos con origen en la raíz del árbol, representa toda la funcionalidad relativa a un área o actividad de la organización, según el criterio de descomposición utilizado.

 Modelo de casos de uso: El modelado de requisitos utiliza los elementos del Modelo de Casos de Uso. 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.

Un escenario es una secuencia específica de las acciones que describe un caso de uso. Así, un caso de uso puede ser considerado como la compilación de múltiples escenarios algunos de los cuales, los primarios, describen su trayectoria normal mientras que otros, los secundarios, se refieren a sus trayectorias alternas.

Los diagramas de secuencia permiten describir patrones de interacción entre objetos o clases. A través de estos diagramas se muestra la secuencia ordenada en el tiempo de los mensajes que envían y reciben genéricamente los objetos durante la ejecución de un escenario. Un estímulo es una comunicación entre dos objetos que se transmiten información con la finalidad de que se ejecute una actividad. Un mensaje específica los roles que deben cumplir tanto el objeto emisor (el cliente) como el objeto receptor del estímulo (el servidor) así como la acción que será ejecutada. De esta forma, a través de los mensajes se expresan las responsabilidades que cumplirán los objetos en el sistema.

En el Proceso de Análisis de Requisitos, es posible utilizar dos tipos de diagramas de secuencia, que va a depender del momento y estrategia de desarrollo seguida así como también del nivel de detalle deseado.

1)    OO-Method: hace énfasis en la interacción, en términos de los actores y el sistema, mostrando el flujo de eventos que ocurren en el dominio del problema. Este tipo de diagrama de secuencia muestra las responsabilidades pero no los objetos clientes ni los objetos servidores (dada una especificación de Casos de Uso con sus pasos se obtiene automáticamente donde cada paso se convierte en un auto-mensaje).

2)    La evolución del primero: representa de manera precisa y detallada las interacciones entre los actores y el sistema pero, esta vez, indicando el intercambio de mensajes entre las clases de objetos participantes. Se muestran las responsabilidades y también las clases de objetos clientes y servidores. El Proceso de Análisis de Requisitos consiste, básicamente, en la construcción de los diagramas de secuencia OO-Method a partir del Modelo de Requisitos del sistema.

Los diagramas de secuencia, además de expresar en detalle los resultados del
Proceso de Análisis de Requisitos, constituyen un recurso de mucha importancia para la construcción del Modelo de Objetos. Con esta finalidad, se ha incorporado en estos diagramas cierta información que resulta de interés para identificar elementos de este modelo. Esta información se expresa estereotipando los mensajes del diagrama de secuencia con el propósito de distinguirlos según la clasificación.
El modelo de trazabilidad es utilizado para relacionar los distintos elementos del Enfoque de Ingeniería de Requisitos con los elementos del Modelo Conceptual, se caracteriza por ser estructural y estar basado en referencias cruzadas. Esto significa, que la relación establecida entre estos elementos es estructural. En segundo lugar, se establecen explícitamente referencias entre los elementos a diferentes niveles de abstracción.
Por otra parte, la trazabilidad en el enfoque de Ingeniería de Requisitos puede ser estudiada desde dos perspectivas:

Internamente.- la trazabilidad es establecida entre los elementos de las distintas técnicas del Modelo de Requisitos y entre estos y los que pertenecen al Proceso de Análisis de Requisitos.

La gestión de los requisitos es el proceso de manejar los requisitos que cambian durante el desarrollo del sistema. Los requisitos pueden ser inevitablemente inconsistentes e incompletos.

Dentro de las aplicaciones del modelado de requisitos encontramos: los procesos de negocio de la organización se identifican partiendo de sus propios objetivos, y se describen mediante flujos de actividades que se representan mediante diagramas de actividades UML. De este modo, los casos de uso del sistema se obtienen a partir de las actividades de los procesos del negocio, se organizan jerárquicamente y se facilita su desarrollo iterativo e incremental.

Las clases del modelo conceptual se obtienen a partir de los objetos de información que fluyen entre las actividades. A la vez que se realiza el modelado del negocio y de los requisitos, las reglas del negocio de la organización se recogen en un glosario, en forma de especificación de las actividades y de los casos de uso asociados, así como de los objetos de información y de las clases que los implementan. Esto permite mantener las correspondientes relaciones de trazabilidad entre los diferentes artefactos del modelado.

Además, el hecho de que los requisitos surjan de la descripción de los procesos del negocio, y que éstos sean el resultado del análisis de los objetivos de la organización, posibilita que los requisitos del sistema sean validados y verificados contra los objetivos del negocio.

Además también encontramos su utilización en aplicaciones web. Los sitios Web, por lo general, son complejos y enormemente dinámicos. Requieren fases de desarrollo cortas con la finalidad de tener listo el producto y ejecutarlo rápidamente. Con frecuencia, los desarrolladores van directo hacia la fase de codificación sin comprender que están tratando de construir o como quieren construirlo. La codificación respecto del servidor con frecuencia se hace ad hoc, las tablas de bases de datos se agregan conforme se necesitan y la arquitectura evoluciona en una forma a veces no intencional. El análisis de requisitos para las WebApps abarca tres grandes tareas:

Formulación, recopilación de requisitos, y modelado de análisis.
 Durante la formulación se identifica la motivación (metas) y los objetivos básicos para la WebApp, y también se define las categorías de usuario. Los requisitos de contenido y funcionales se enlistan y se desarrollan los escenarios de interacción (casos de uso) descritos desde el punto de vista del usuario final.

La jerarquía de usuario.
Las categorías de usuario finales que interactuarán con la WebApp se identifican como parte de las tareas de formulación y de recopilación de requisitos. En la mayoría de los casos las categorías de usuario son relativamente limitadas y no necesitan de representación UML.

Desarrollo de casos de uso

Los casos de uso se desarrollan par cada categoría de usuario descrita en la jerarquía de usuario. En el contexto de ingeniería Web, el caso de uso en sí mismo es relativamente informal: un párrafo narrativo que describe una interacción específica entre un usuario y la WebApp.

Bibliografia:

lunes, 6 de octubre de 2014

2.4.- HERRAMIENTA CASE PARA LA INGENIERIA DE REQUISITOS

  •  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.

  • 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.

  • 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).
  •  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.

  •  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.

  •  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.


Bibliografia
http://webcache.googleusercontent.com/search?q=cache:ZkHRIWOY46gJ:www.revistasjdc.com/main/index.php/ccient/article/download/37/36+&cd=2&hl=es-419&ct=clnk&gl=mx