Documentación de la trazabilidad de requerimientos utilizando y relacionando Rational RequistePro y Rational Rose 2003 Master Maria Marta Sandoval Carvajal, PMP Universidad Nacional, Escuela de Informática, Costa Rica. [email protected] Master Maria Adilia García Vargas Universidad Nacional, Escuela de Informática, Costa Rica. [email protected] Resumen denominado “Automatización de la Trazabilidad en el proceso unificado de desarrollo de software utilizando RUP TM de IMB . Se presentan aspectos básicos sobre el concepto de ingeniería de requerimientos, tipos de requerimientos y trazabilidad, continuando con una muestra en forma práctica de los pasos para su documentación de en el Proceso Unificado de Desarrollo de Software (PU) a través del uso de dos herramientas del RUP: Rational RequisitePro y Rational Rose. Si bien el conocer las herramientas no es el factor de éxito en la gestión de la trazabilidad, puede servir de guía a aquellos usuarios y desarrolladores que deseen llevar a cabo cambios en su forma de trabajo, en la búsqueda de una mejora continua en los proyectos de desarrollo de sistemas. Finalmente se muestran algunas reflexiones finales que pueden complementar los aspectos aquí mostrados. Dentro de los aspectos más débiles que presenta el desarrollo de sistemas, es obtener la satisfacción del cliente, uno de las causas principales de esta situación, es la inadecuada definición y documentación de los requerimientos. Como parte del Plan de mejoramiento de la Escuela de Informática de la Universidad Nacional de Costa Rica, se han orientado los esfuerzos al aumento en las investigaciones que beneficien al desarrollo del plan de estudios y que además promuevan la vinculación externa con la sociedad costarricense. Este artículo resume una de las actividades iniciales del proyecto de investigación denominado “Automatización de la trazabilidad, utilizando el Rational Unified Process (RUP) aplicando el Proceso Unificado a través del desarrollo de un Sistema de Información Administrativo”.Esta actividad consiste en llevar a cabo un proceso de documentación de la trazabilidad utilizando dos de las herramientas del RUP: Rational Requisite Pro y Rational Rose 2003, las cuales permiten de manera automática definir las trazas entre los requerimientos, de forma que se facilite el proceso de administración de necesidades. Se muestran de manera ilustrada los pasos para lograr esta documentación, así como los documentos necesarios para sistematizar la trazabilidad, utilizando como metodología de desarrollo el Proceso Unificado de Desarrollo de Software (PU). 1. INTRODUCCIÓN Uno de los principales problemas asociados al desarrollo de aplicaciones, es el cumplimiento de los requisitos para satisfacer a los involucrados. La definición de los requerimientos, es un proceso de comunicación que requiere no solo de retroalimentación, sino de formalización y de administración del conocimiento. Conocer los requerimientos no es suficiente, el proceso de levantamiento, definición, validación de requerimientos une al menos dos mundos muy distintos, el del usuario en su campo de acción y el del Ingeniero de Sistemas, la trazabilidad podría minimizar la brecha existente entre estos mundos. Permite seguirle la pista a los requerimientos de manera que el proceso de cambio intrínsico en la ingeniería de requerimientos, facilite los análisis de impacto de manera que se converja en el logro de la satisfacción de los stakeholders y en beneficio de la organización. Este artículo, resume uno de las actividades del proyecto de investigación, llevado a cabo por las autoras en la Escuela de Informática de la Universidad Nacional de Costa Rica, 2. FUNDAMENTOS TEÓRICOS 2.1. Ingeniería de requerimientos Un requerimiento es una necesidad que un sistema debe de satisfacer. Las actividades relacionadas con su definición, análisis, validación, gestión y documentación se denominan Ingeniería de Requerimientos. El proceso relacionado con estas actividades es uno de los más débiles en los proyectos de desarrollo de software de la actualidad, implica no solo elementos técnicos, sino gerenciales y principalmente humanos. El levantamiento y validación de requerimientos no son en la mayoría de los proyectos llevados cabo de una manera sistemática y los resultados no son los esperados, demandando grandes desviaciones en los tiempos y presupuestos iniciales. La trazabilidad facilita el complejo proceso de los requerimientos. 2.2. Trazabilidad La trazabilidad define la relación que existe entre dos requerimientos. Esta relación se visualiza sin que se especifique, necesariamente en la misma relación el tipo de dependencia, como relación jerárquica o subordinación, descomposición, etc. En RUP se definen dos formas de mostrar la relación de trazabilidad: A Trace to B B Trace from A La diferencia principal entre ellas, es la forma en que lee la relación de A a B o de B desde A, el aspecto a enfatizar es que si un cambio sucede en A podría tener implicaciones en B, pero no necesariamente al revés. 2.3. Importancia de la trazabilidad Se ha demostrado que la trazabilidad de requerimientos es una técnica efectiva en el desarrollo de software, particularmente en aquellos sistemas en las que las fallas del software no son una opción. [1] La trazabilidad no solo facilita la administración de los requerimientos en las etapas de desarrollo sino que es útil durante la operación del sistema, donde es inminente el cambio de los requerimientos. La trazabilidad permite seguir la pista de los requerimientos desde su origen. Su documentación apoya el trabajo en equipo y facilita a través del uso de las herramientas, mejorar la forma en que se gestionan los requerimientos. Administración de los Requerimientos, desarrollando el plan de requerimientos, donde precisamente se definen, entre otras cosas, los lineamientos de la documentación que se describen mas adelante. Además deben de quedar claros los roles y las responsabilidades de los stakeholder y el equipo de desarrollo con relación al este proceso. 4. DOCUMENTACIÓN DE LA TRAZABILIDAD. Se resumen tres aspectos fundamentales: definir la estructura de documentación, documentar la visión del proyecto y especificar los requerimientos, y por último definir las relaciones de trazabilidad. 4.1. Definir la estructura de documentación En la Ilustración 1. Estructura de documentación de la trazabilidad, se muestra la distribución de documentación que se ha definido para este caso particular. Además es necesario una nomenclatura para nombrar los documentos y archivos. Ilustración 1. Estructura de documentación de la trazabilidad 2.4. Problemas para la aplicación de la trazabilidad Tradicionalmente durante el desarrollo de software, no se le ha dado la importancia debida a los procesos relacionados con los requerimientos, igualmente el esfuerzo que puede significar la documentación de la trazabilidad puede no considerarse una opción costo/beneficio adecuada para algunos proyectos. Además los beneficios del uso de la trazabilidad se muestran más en las etapas finales del desarrollo (pruebas) y provocan desatención por parte de los desarrolladores en las etapas tempranas de conceptualización y análisis. 2.5. Herramientas utilizadas A través de convenio realizado entre la Escuela de Informática y GBM de Costa Rica, se cuenta con un laboratorio equipado con 15 máquinas donde se encuentran instaladas herramientas del ambiente RUP de IBM, para este caso específico las herramientas utilizadas son: Rational RequistePro 2003: es una herramienta para la administración de los requerimientos, basada en RUP, entre otras cosas la herramienta promueve la motivación para el desarrollo de los procesos de sistematización de la gestión de requerimientos y facilita la comunicación entre los involucrados del proyecto. Utiliza el MS WORD como procesador de texto facilitando el proceso de documentación. Rational Rose 2003: es una herramienta que apoya principalmente las etapas de análisis y diseño de sistemas, como son desarrollo de modelos, objetos, clases, casos de uso, diagramas, etc. Además se vincula de manera automática con Rational RequistePro lo que mejora la gestión de los requerimientos, principalmente en la administración del cambio. 3. DEFINIR LA GESTIÓN DEL PROYECTO Como todo proyecto de desarrollo de software debe ser llevado a cabo de acuerdo a las mejores prácticas de Administración de Proyectos, aspectos a resaltar por la temática de este artículo es la definición de la 4.1.1. Definir tipos de requerimientos Los tipos de requerimientos definidos en este esquema, se muestran en la ilustración anterior y resumen la Tabla 1. Tipos de requerimientos y documentos .: 4.1.2. Documentos definidos en Rational RequisitePro: Visión y características: donde se documenta el alcance del proyecto, la definición del problema, ambiente y perfil de usuarios y stakeholder, las características funcionales y no funcionales de alto nivel. Especificación de casos de uso: donde se describe el caso de uso en forma breve, detallada, incorporando flujo principal y alternos, además de otros aspectos que se consideren necesarios. Glosario : Se definen los términos relevantes del proyecto, se considera un diccionario de datos del proyecto. Especificación de necesidades de stakeholder: donde se documenta el análisis realizado en torno a la necesidad como ambiente, supuestos, origen de la necesidad, entre otros, en un lenguaje de alto nivel. Especificación de requerimientos suplementarios: incluye necesidades de usabilidad, confiabilidad, rendimiento, soporte, interfase, implementación, aspectos legales, etc. Tabla 1. Tipos de requerimientos y documentos Tipo de Se documenta en requerimientos Forma Forma detallada general Necesidad de • Visión • Especificación Stakeholder de necesidades de (STRQ): se definen stakeholder como el requisito de alto nivel generalmente establecido por un stakeholder clave en el proyecto. Características del • Visión producto (FEAT): corresponden a los requisitos funcionales Requerimientos • Visión • Especificación Suplementarios de (SS) : se define como Requerimientos los requisitos no suplementarios. funcionales del sistema. Glosario: incluye los • Glosario términos significativos del proyecto Casos de uso (UC): Diagramas • Especificación descripción de de caso de de casos de uso requerimientos. uso Diagramas de secuencia y colaboración: donde se muestran los escenarios de casos de uso: los escenarios son instancias de un caso de uso, definen un flujo particular de eventos y son parte del proceso de análisis y diseño del sistema. 4.2. Documentar la visión del proyecto El documento Visión contiene los aspectos de alto nivel del producto, la definición del problema, las necesidades de los stakeholder, las características principales del sistema, requerimientos funcionales y no funcionales descritos a un alto nivel. Además especifica aspectos relacionados con el alcance del sistema, así como sus limitaciones y principales supuestos, es un documento que se empieza a desarrollar en la Fase de Inicio y se refina en las siguientes fases, quedando casi definido en la de Elaboración. 4.2.1. Especificar las necesidades de stakeholder (Stakeholder request) Las necesidades de stakeholders (STRQ) se especifican inicialmente y de una manera resumida, en la plantilla Visión Se muestra el explorador de RequisitesPro donde se visualizan estos documentos: 4.1.3. Documentos definidos en Rational Rose: Diagrama de casos de uso del sistema: donde se representan gráficamente los actores, los casos de uso y sus respectivas relaciones. Una vez definida y guardada la necesidad de stakeholder en el documento Visón, automáticamente se genera un requerimiento de tipo STRQ en el RequistePro y puede visualizarse desde el explorador del proyecto. Para crear un documento relacionado con este requerimiento se procede a través de la barra de herramientas de RequistePro en WORD: El documento se genera a partir de este requerimiento, donde se especifican sus propiedades a través del cuadro de diálogo correspondiente: Este documento se puede ubicar en el Explorador de RequisitePro y queda enlazado con su correspondiente requerimiento. 4.2.4. Definir y especificar casos de uso Los casos de uso se definen primeramente en Rational RequisitePro creando el documento correspondiente, luego en el documento se crea el caso de uso y se detallan aspectos como la descripción breve, el flujo principal del caso de uso, los flujos alternos y flujos de excepción, cada uno de ellos con su nombre respectivo, el cual se creará en el proyecto y se mostrará en explorador. 4.2.2. Especificar las características del sistema (Features) Igualmente que las necesidades de Stakeholder, las características se definen inicialmente en la plantilla Visión insertando el nuevo requerimiento tipo FEAT, el cual se creará automáticamente en el RequisitePro y es posible visualizarlo en el explorador del proyecto. La jerarquía de los casos de uso, para definir el flujo básico, flujos alternos y de excepción, se especifica a través de la pestaña correspondiente en el cuadro de diálogo de las propiedades del requerimiento. 4.2.3. Definir requerimientos suplementarios o no funcionales (SUPL) De la misma forma se definen los requisitos suplementarios en el documento visión del proyecto, y es posible crear también un documento donde se detalle la descripción de estos requerimientos. 4.2.5. Crear casos de uso en Rational Rose 4.3.3. Especificar la trazabilidad relacionando los elementos a través de las herramientas RequisitePro y Rose. A través del cuadro de diálogo Requirement, en RequisitePro, es posible asociar un requerimiento con un modelo en el Rational Rose 4.3. Definir las relaciones de trazabilidad 4.3.1. Especificar la trazabilidad a través de Matrices o vistas Una forma de especificar la trazabilidad es utilizando las vistas o tablas, que inclusive se pueden personalizar, la trazabilidad se representa gráficamente de la siguiente forma A (Trace to) (Trace from) B y A B En las matrices o vistas definidas, es posible especificar la trazabilidad visualizando las filas y columnas correspondientes y asignando la trazabilidad establecida. La relación se crea en el Rational Rose y es posible visualizarla en el explorador, además se muestra en el cuadro de dialogo de las propiedades del modelo o elemento correspondiente: 4.3.2. Especificar la trazabilidad en la caja de diálogo de propiedades del requerimiento Además en la especificación de cada requerimiento, puede definirse de manera individual, la relación de trazabilidad: Los pasos mostrados no necesariamente se realizan de manera secuencial, de acuerdo a lo planeado y las diferentes 5. REFLEXIONES FINALES • Considerando que el PU es un proceso iterativo incremental, el trabajo requerido para la realización de cambios a través de las iteraciones, se facilita con la utilización de herramientas como las presentadas en este artículo, las anotaciones, avisos e información histórica administrados de manera digital ofrecen posibilidades para la sistematización del proceso. • Cada herramienta muestra una forma de documentar la trazabilidad y además es posible realizar de manera automática las relaciones entre el RequisitePro y Rational Rose facilitando la trazabilidad en el desarrollo de las disciplinas de requerimientos, análisis y diseño • Aún cuando se cuente con herramientas que faciliten la documentación de la trazabilidad, debe existir una adecuada administración del proyecto, trabajo en equipo, una formalizada administración del los requerimientos, así como adecuados estándares de documentación. • La utilización de un procesador de texto junto con la herramienta facilita el uso de plantillas generales para el proyecto, así como el mantenimiento de las mismas. • El proceso de comunicación de cambios se centraliza a través del uso de los documentos respectivos. • El hecho de utilizar las herramientas no es por sí misma la solución a los problemas relacionados con los requerimientos y especialmente con la trazabilidad, sin embargo permiten documentar de manera sistemática la trazabilidad, así como los cambios realizados en los requerimientos y sus especificaciones. 6. BIBLIOGRAFÍA [1]. Leffingwell Dean. Widrig Don. “The Role of Requirements Traceability in System Development”, The Rational Edge, September 2002. [2]. Rational Software Corporation. Rational RequisitePro 2003. [3]. Rational Software Corporation. Rational Rose 2003. [4]. Reiber, L. ¿Why Requirement Traceability?. Software Requirement Inc. [5]. Spence, I.Probasco, L. Traceability Strategies for Managing Requirements with Use Cases. Rational .com. 2002. [6]. Stout. G. Requirements Traceability and the Effect on the SDLC. Departamento de Sistemas Informáticos y Computación. Universidad Politécnica de Valencia. 2001 [7]. Zielczynski, P. Traceability from Use Case to Test Case. Rational User Conference 2003