El anlisis de requerimientos es la tarea que plantea la asignacin de software a nivel de
sistema y el diseo de programas. El anlisis de requerimientos facilita al ingeniero de sistemas especificar la funcin y comportamiento de los programas, indicar la interfaz con otros elementos del sistema y establecer las ligaduras de diseo que debe cumplir el programa. El analista de requerimientos permite al ingeniero, refinar la asignacin de software y representar el dominio de la informacin que ser tratada por el programa. El anlisis de requerimientos da al diseador la representacin de la informacin y las funciones que pueden ser traducidas en datos, arquitectura y diseo procedimental. Finalmente, la especificacin de requerimientos suministra al tcnico y al cliente, los medios para valorar la calidad de los programas, una vez que se haya construido.
Tareas del anlisis
El anlisis de requerimientos puede dividirse en cuatro reas:
Inicialmente, el analista estudia la Especificacin del Sistema (si existe) y el Plan del Proyecto. Es importante comprender el contexto del sistema y revisar el mbito de los programas que se us para generar las estimaciones de la planificacin. A continuacin, debe establecerse la comunicacin necesaria para el anlisis, de forma que se asegure el reconocimiento del problema.
1)Reconocimiento del problema
3) Especificacin 2) Evaluacin y sntesis
4)Revisin
Las formas de comunicacin requerida para el anlisis se ilustran en la siguiente figura.
El analista debe establecer contacto con el equipo tcnico y de gestin del usuario/cliente y con la empresa que vaya a desarrollar el software. El gestor del programa puede servir como coordinador para facilitar el establecimiento de los caminos de comunicacin. El objetivo del analista es reconocer los elementos bsicos del programa tal como lo percibe el usuario/cliente.
La evaluacin del problema y la sntesis de la solucin es la siguiente rea principal de trabajo del anlisis. El analista debe evaluar el flujo y estructura de la informacin, refinar en detalle todas las funciones del programa en detalle, establecer las caractersticas de la interface del sistema y descubrir las ligaduras del diseo. Cada una de las tareas sirven para describir el problema de forma que pueda sintetizarse un enfoque o solucin global.
El analista encuentra que los problemas con el sistema manual actual incluyen:
2) Dos o tres das de tiempo medio para actualizar un archivo de tarjetas
1) Imposibilidad de obtener rpidamente el estado de una componente
3)Mltiples reordenes del mismo vendedor debido a que no hay forma de asociar vendedores con componentes, etc.
Una vez que se han identificado los problemas, el analista determina qu informacin va a ser producida por el nuevo sistema y qu datos se le suministrarn al sistema. Por ejemplo, el cliente desea un informe diario que indique los elementos que se han tomado del inventario y cuantos elementos similares permanecen. El cliente indica que los empleados del inventado registrarn el nmero de identificacin de cada pieza cuando dejen el rea de inventario.
Hasta la evaluacin de los problemas actuales y de la informacin deseada (entrada y salida), el analista comienza por sintetizar una o ms soluciones. Un sistema basado en un terminal en lnea resolver varios problemas, pero fallar en el mbito perfilado en el Plan de Software? Parece que se va a necesitar un sistema de gestin de base de datos, pero est justificada la necesidad de asociatividad del usuario/cliente? El proceso de evaluacin y sntesis contina hasta que el analista y el cliente creen que el software puede ser especificado adecuadamente para la fase de desarrollo.
El cliente puede no estar seguro de precisar bien lo que quiere. El que desarrolla el software puede no estar seguro de que un enfoque concreto sea apropiado para realizar la funcin y comportamiento deseado. Por stas y muchas otras razones, puede presentarse un enfoque alternativo, llamado construccin de prototipos, para el anlisis de requerimientos.
Las tareas asociadas con el anlisis y especificacin existen para dar una representacin del programa que pueda ser revisada y aprobada por el cliente. En un mundo ideal el cliente desarrolla una Especificacin de Requerimientos del Software completamente por s mismo. Esto se presenta raramente en el mundo real. En el caso mejor, la especificacin se desarrolla conjuntamente entre el cliente y el tcnico.
Una vez que se hayan descrito las funciones bsicas, comportamiento, interfase e informacin, se especifican los criterios de validacin para demostrar una comprensin de una correcta implementacin de los programas. Estos criterios sirven corno base para hacer la prueba durante el desarrollo de los programas. Para definir las caractersticas y atributos del software se escribe una especificacin de requerimientos formal. Adems, para los casos en los que se desarrolle un prototipo se realiza un Manual de Usuario Preliminar.
Puede parecer innecesario desarrollar un manual de usuario en una etapa tan temprana del proceso de desarrollo. Pero de hecho, este borrador del manual de usuario fuerza al analista a tomar el punto de vista del usuario del software (particularmente importante en los sistemas interactivos). El manual permite al usuario/cliente revisar el software desde una perspectiva de ingeniera humana y frecuentemente produce el comentario: La idea es correcta, pero esta no es la forma en que pens que se podra hacer esto. Es mejor descubrir tales comentarios lo ms tempranamente posible en el proceso.
El analista
Se han escrito libros enteros dedicados al papel y obligaciones del analista. Atwood [ATW77] da una descripcin prctica del trabajo: ...Se espera que el analista de sistema analice y disee sistemas con un rendimiento ptimo. Esto es, el analista debe producir... una salida que cumpla completamente con los objetivos de gestin.... Al analista se le conoce con distintos nombres: analista de sistema, ingeniero de sistema, diseador jefe de sistema, programador analista, etc. Independientemente del ttulo de su trabajo, el analista debe exhibir los siguientes rasgos de carcter:
El papel del analista se dibuja en la sig. Figura. El analista ejecuta o coordina cada una de las tareas asociadas con el anlisis de los requerimientos de software. Durante las tareas de reconocimiento, se comunica con el equipo del usuario/cliente para establecer las
Habilidad para comprender conceptos abstractos, reorganizarlos en divisiones lgicas y sintetizar soluciones basadas en cada divisin.
Habilidad para comunicarse bien en forma escrita y verbal.
Habilidad para aplicar elementos hardware y/o software a entornos de usuario/cliente.
Habilidad para comprender entornos de usuario/cliente.
Habilidad para entresacar hechos importantes de fuentes conflictivas o confusas.
Habilidad para evitar que los rboles no nos dejen ver el bosque.
A continuacin se muestran algunas bolsa de trabajo para el analista de requerimientos: