Universidad Tecnológica Nacional, Facultad Regional Córdoba
Abstract a la obtención (elicitation en inglés) y
El presente trabajo resume el esfuerzo de gestión de cambios de requerimientos [2], investigación desarrollado en la primera etapa dentro del marco de la tesis de maestría “Modelo que no han podido ser abordados por los Adaptable de Trazabilidad de Requerimientos de procesos de desarrollo tradicionales, surgen Software en Entornos Ágiles de gran escala”, el las metodologías ágiles dando lugar a la cual tiene por objetivo revisar las prácticas de creatividad y sensibilidad frente a ingeniería de software para el desarrollo de condiciones cambiantes enfatizando la requerimientos, con foco en el proceso de especificación de los mismos. Se plantea como participación del cliente y la rápida reacción objetivo determinar los principales atributos y a los cambios de requerimientos y entregas características que debe cumplir un requerimiento, continuas del producto [3]. revisando la bibliografía existente sobre técnicas de especificación de requerimientos de software en Las metodologías ágiles se basan en la Scrum e identificando las características de un buen requerimiento según IEEE. Por último, se analiza el premisa de que en las fases iniciales de un uso y la importancia de la trazabilidad de los proyecto, los requerimientos deben requerimientos en proyectos de desarrollo de explorarse en un alto nivel de abstracción software que adoptan métodos ágiles, para evaluar [4]. El objetivo de esta primera etapa si la implementación de dicho criterio de calidad es consiste en comprender el alcance del útil o no. En particular se concluye que las historias de usuario son requerimientos de software, ya que proyecto, identificar los objetivos, construir expresan el problema que el sistema o producto una visión de desarrollo común y software debe resolver y se descubre que el modelo determinar los requerimientos iniciales [5]. INVEST para la definición de historias de usuario Los dueños del producto mantienen una no contempla algunos de los atributos de calidad lista de requerimientos de software planteados por la IEEE, más precisamente los criterios de completitud y trazabilidad. priorizada de acuerdo al valor de negocio que cada una de ellas provee. De esta lista Palabras Clave: trazabilidad, requerimientos, se toman los principales ítems para el agiles, historias de usuarios, Scrum, Modelo desarrollo de cada iteración. Los INVEST, IEEE requerimientos son analizados con mayor detalle a medida que van siendo 1. Introducción implementados en las iteraciones [4]. Por mucho tiempo se ha pensado que la captura de los requerimientos es una fase Para lograr verificar que dichos temprana de los proyectos de desarrollo de requerimientos son realmente software, que una vez completada sienta las implementados surge como un atributo de bases a partir de las cuales se lleva a cabo el calidad [6] la trazabilidad de los desarrollo del mismo [1]. La realidad ha requerimientos de software. Trazabilidad se demostrado que los clientes rara vez refiere a la habilidad de poder describir y conocen sus propias necesidades con seguir la vida de un requerimiento en ambas suficiente profundidad como para definirlas direcciones, es decir, desde su origen y a priori, ya que durante la vida del proyecto, especificación, hasta su implementación y las necesidades y prioridades de los clientes uso, como así también durante su constante cambian [1]. En este marco y en respuesta a refinamiento [7]. Permite determinar que los desafíos presentados por el desarrollo de todos los requerimientos han sido productos de software modernos en relación completamente desarrollados, abarca la relación con otros artefactos de trabajo. Es atributos y características de un buen utilizada fundamentalmente cuando es requerimiento y 2) Explorar y obtener preciso evaluar el impacto de los cambios conocimiento teórico sobre buenas prácticas en las actividades del proyecto o en los de gestión de requerimientos desde modelos artefactos de trabajo [8]. más tradicionales a modelos más “ágiles”. En este contexto la gestión de La trazabilidad es una práctica de ingeniería requerimientos se limita tan sólo al que se propone de forma independiente al desarrollo y manutención de la trazabilidad proceso o metodología de desarrollo [9]. de los mismos. Por lo tanto, los métodos agiles no están exentos a mantener la trazabilidad de los Se debe destacar que el primer objetivo de requerimientos de software [10]. Sin investigación fue presentado como trabajo embargo, existen opiniones encontradas de especialidad [13]. respecto a la importancia de la trazabilidad de los requerimientos en las metodologías El trabajo será elaborado en diferentes ágiles. Por un lado Scott W. Ambler [4] secciones. La sección de Elementos de sostiene que los beneficios de poseer una Trabajo y Metodología define cuáles son matriz de trazabilidad hacen más sencillo el los pasos llevados a cabo durante la análisis del impacto de un cambio de investigación y presenta los conceptos requerimiento; pero también considera que sobre los que se basó dicho análisis; la poseer una o más personas familiarizadas sección Resultados y discusiones presentan con el sistema generan el mismo efecto, y los descubrimientos de la investigación y resulta más fácil y económico solicitar a los hallazgos realizados por varios autores. estos expertos que estimen el impacto del Por último, se desarrollarán las cambio. Las matrices de trazabilidad han conclusiones del trabajo y detallarán los sido sobrevaloradas, dado que los costos de pasos a seguir en las próximas etapas de mantenerlas, aún cuando se utilizan investigación. herramientas específicas a tal fin, superan por mucho a los beneficios [4]. Por otro 2. Elementos del Trabajo y metodología lado, existen quienes creen [11] que es más Para poder dar comienzo a dicho análisis, preciso determinar los costos y el tiempo como primer paso fue preciso determinar que llevará implementar un cambio cuando cómo se especifican los requerimientos en se posee una trazabilidad completa en vez metodologías ágiles como Scrum [14] y qué de contar con un ingeniero o un características deben poseer dichas programador familiarizado con todas las especificaciones para cumplir con las áreas afectadas por el mismo. características de un buen requerimiento según la IEEE [6]. El presente trabajo muestra los resultados de la investigación realizada durante la 2.1 Requerimientos y especificación primera etapa del plan de tesis de Maestría Para ello se tomaron como base los en Ingeniería en Sistemas de Información, siguientes conceptos. Requerimiento es “Modelo Adaptable de Trazabilidad de [15]: Requerimientos de Software en Entornos (1) Una condición o capacidad Ágiles de gran escala” UTN-FRC. Dicha requerida por un usuario para resolver un etapa presenta 2 objetivos bien problema o alcanzar un objetivo. diferenciados: 1) Explorar y obtener (2) Una condición o capacidad que debe conocimiento acerca de diferentes formas ser poseída por un sistema o componente de en las que pueden encontrarse especificados un sistema para satisfacer un contrato, un los requerimientos de software en entornos estándar, una especificación u otro tipo de ágiles mediante la identificación de los documento formalmente impuesto. (3) Una representación documentada de la perspectiva de la persona que desea dicha una condición o capacidad según 1 y 2. funcionalidad, usualmente un usuario [19].
La especificación de requerimientos es el Poseen las siguientes características: una
paso en donde los resultados de la descripción escrita que será utilizada para identificación de los requerimientos se planificar y posteriormente disgregar los “retratan” [16]. El proceso de detalles con el dueño del producto, las especificación tiene por objetivo obtener conversaciones propiamente dichas con el documentación no ambigua y completa de dueño del producto y las pruebas que han los requerimientos de software. Los de determinar si las historias están beneficios de la especificación de los finalizadas o no [20]. Generalmente se las requerimientos de software se describen a escribe en post-its (notas), y se las dispone continuación [6]: en una pared o una mesa para facilitar de • Establecer una base de acuerdo entre los este modo la planificación y discusiones clientes y los proveedores acerca de lo que que se llevan a cabo durante la misma. La el software debe hacer. parte más importante de las historias de • Reducir el esfuerzo de desarrollo: Dado usuario es la conversación que se genera en que se especifican y validan previo al torno a las mismas. Estas notas representan desarrollo. los requerimientos del cliente y típicamente • Servir de base para estimar costos y se las escribe como se muestra en la calendario. siguiente figura: • Sentar las bases a partir de las cuales se pueden efectuar actividades de verificación y validación. • Facilitar la transferencia de los Como <Tipo de Usuario>, requerimientos de software a otros necesito <algún objetivo> interesados. • Servir de base para elaborar mejoras para poder <alguna razón> posteriores al producto.
La especificación de los requerimientos de
software es el proceso de grabado o el registro de los requerimientos en una o más Figura 1: Historia de Usuario. formas, incluyendo el lenguaje natural y formal, representaciones simbólicas o Uno de los beneficios de las Historias de gráficas [17]. Usuario es que pueden ser escritas en diferentes niveles de detalle. Es posible Una característica importante sobre la escribir historias que cubren múltiples especificación de los requerimientos de funcionalidades. Estas historias más software es que debe ser escrita por uno o grandes son llamadas Épicas y dado que más representantes del proveedor, uno o típicamente no pueden ser finalizadas en más representantes del cliente o por ambos una iteración, se las divide en múltiples [18]. Historias de Usuario [21]. Desde el punto de vista de las metodologías En la actualidad, los requerimientos de ágiles, las Historias de Usuario se focalizan software pueden encontrarse especificados en establecer conversaciones acerca de las tanto en libros de requerimientos [2], como necesidades de los clientes. Son así también en historias de usuario, épicas, descripciones cortas y simples de las escenarios de prueba como el Desarrollo funcionalidades del sistema, narradas desde Guiado por Pruebas o TDD (por sus siglas en inglés Test Driven Development) [22] y el Desarrollo Guiado por Comportamiento El objetivo es crear un proceso en el cual se o BDD (por sus siglas en inglés Behavior definan, revisen, organicen y comuniquen Driven Development), entre otros [24]. los requerimientos. El proceso comienza identificando y construyendo una pila de 2.2 Las historias de usuario en el proceso requerimientos. Esta pila es una lista de de desarrollo de requerimientos elementos que deben definirse en orden Las Historias de Usuario son escritas a lo para poder alimentar la pila del producto. largo de todo el proyecto de desarrollo. Usualmente al comenzar un proyecto se El objetivo final puede ser una lista de lleva a cabo un workshop donde participan historias de usuario, requerimientos todos los miembros del equipo, con el fin funcionales, etc. El equipo de de crear un product backlog1 que describa requerimientos decide, basado en las las funcionalidades que van a desarrollarse estrategias y objetivos del negocio, qué en el curso de los siguientes tres a seis cosas deben definirse. Al igual que los meses [25]. equipos de desarrollo, el equipo de requerimientos puede planear su iteración, Los dueños del producto son responsables llevar a cabo el trabajo y finalmente tener de que exista una pila de producto una reunión de revisión. Si los resultados de compuesta de Historias de Usuario, sin la iteración cumplen con las expectativas embargo, no necesariamente son ellos planteadas, entonces pueden moverse a la quienes deben escribirlas. Lo importante es pila del producto. En muchos casos, las que participen en las discusiones que organizaciones desarrollarán documentos aportan mayor detalle sobre las necesidades que no necesariamente terminarán en la pila de los usuarios [25]. del producto, sino que serán consultados por los equipos durante el desarrollo. Uno de los problemas que la mayoría de las organizaciones tiene que enfrentar es Aquí es donde la trazabilidad de los ítems mantener una pila de producto actualizada del producto a cualquier otro documento para que los ítems del producto puedan ser externo se torna importante. Otra de las tomados por los equipos de desarrollo [26]. partes importantes de este marco de trabajo La definición y gestión de requerimientos es la Descomposición. La Descomposición ágiles ha sido diseñada específicamente es el proceso por el cual los ítems del para resolver este problema. El objetivo es producto son comunicados y refinados alimentar la pila del producto a un ritmo junto con los equipos de desarrollo. En mayor al que los equipos de desarrollo Scrum esto es conocido como preparación pueden generar código. Este marco de de la pila del producto o backlog grooming trabajo puede utilizarse tanto para la [26]. generación de requerimientos justo a tiempo o just in time (JIT) como para el Cabe destacar que los mismos principios armado de un repositorio de requerimientos [26] que se utilizan en el desarrollo de que han de desarrollarse en el futuro [26]. software bajo metodologías ágiles pueden Se utiliza un ciclo similar al ciclo Scrum aplicarse también a la definición y gestión [25] que emplean los equipos de desarrollo. de requerimientos. La diferencia es que este ciclo se encuentra dos o tres etapas adelantado a los equipos de desarrollo (Ver Figura 2: Definición y Gestión de Requerimientos Ágiles [26]). 1 Product Backlog se refiere a una lista priorizada de historias de usuario. Figura 2: Definición y Gestión de Requerimientos Ágiles [26]
2.4 Un enfoque de trazabilidad ágil:
Para lograr desarrollar y mantener una 2.3 Trazabilidad trazabilidad útil en metodologías ágiles, Como segundo paso fue necesario entender Appleton [27] sugiere algunas pautas a qué es la trazabilidad; cuáles son sus tener en cuenta, como se menciona a ventajas y desventajas en metodologías continuación: tradicionales y después mapear éstas a las Minimizar los artefactos de trabajo metodologías ágiles. que se incluirán en la trazabilidad. Generar todos los requerimientos del software al Tradicionalmente, la trazabilidad de los inicio del proyecto implica un gran esfuerzo artefactos del producto software ha tenido tanto de especificación como de origen en los requerimientos y se han trazabilidad [27]. Precisamente una de las instanciado de diferentes maneras: características de los métodos ágiles es que productos específicos de gestión de los requerimientos de software se definen requerimientos, bases de datos, hojas de progresivamente durante el ciclo de cálculo o procesadores de texto desarrollo [5], por lo que definir el producto convencionales [27]. completo al inicio del proyecto significa esfuerzo extra que debe invertirse para Utilizando la trazabilidad, puede seguirse el mantener la trazabilidad de los historial de una característica implementada requerimientos cada vez que surge un hasta las personas o grupos que la cambio en la definición del producto. solicitaron, permitiendo un rápido análisis Minimizar las fuentes de en cada fase del proyecto para [28]: almacenamiento de información. Facilitar el • Determinar la visión original y acceso de los artefactos de trabajo a los permitir una discusión controlada de los miembros del equipo [27]. cambios en el alcance. Estabecer el nivel de granularidad • Determinar qué elementos se verán de trazabilidad que será útil para el afectados cuando consideramos agregar un proyecto. Determinar el detalle que se nuevo requerimiento o modificar uno ya necesita: realizar trazabilidad ¿a existente requerimientos o casos de uso?, ¿ a líneas • Verificar que el requerimiento de código, métodos, clases o módulos? contempla todos lo que el interesado [27]. solicitó. Automatizar la trazabilidad lo más • Verificar que la aplicación no que se pueda [27]. Las herramientas implementa funcionalidades no cumplen un rol muy importante en la demandadas por el cliente. trazabilidad, ayudan a crear y mantener información, relacionar artefactos de si las pruebas pasan, uno puede asumir que trabajo y navegar dichas relaciones [28]. existe código que implementa dicho requerimiento. Si posteriormente la rutina Tambien [27] menciona recomendaciones es modificada, las pruebas dejarán de pasar que ayudan a la trazabilidad: y deberán ser corregidas [31]. Herramientas de control de versiones e integración de éstas con las 3 Resultados y discusiones herramientas de gestión de productos [27]: Siguiendo con la definición de Si los artefactos de trabajo que se generan requerimientos de software de la IEEE [15] durante el ciclo de desarrollo de software citada previamente, podemos concluir que (requerimientos, modelos, código, casos de las historias de usuario son requerimientos prueba, etc.) son almacenados en un ya que expresan el problema que el sistema repositorio, y éste se encuentra integrado o producto software debe resolver. con la herramienta de gestión del producto, entonces es posible la trazabilidad de las Sin embargo, las historias de usuarios no actividades a los artefactos de trabajo cumplen con todas las características relacionados. planteadas en IEEE [13] según [21]. Para Implementación de técnicas como el poder verificar la calidad de una historia de Desarrollo Guiado por Pruebas o TDD (por usuario surge el modelo INVEST [32] que sus siglas en inglés Test Driven presenta una serie de atributos a tener en Development) [22] y el Desarrollo Guiado cuenta para lograr escribir buenos por Comportamiento o BDD (por sus siglas requerimientos en metodologías ágiles. en inglés Behavior Driven Development) [23]. Estas técnicas permiten particionar el El modelo INVEST [32] (por sus siglas en trabajo en tareas y relacionarlas con los inglés Independent, Negotiable, Valuable, artefactos de trabajo necesarios para Estimable, Small, Testeable) es la clave implementar un requerimiento. Es decir, para pensar y escribir buenas historias de una misma tarea va a relacionar a todos los usuario. Las historias deben ser artefactos de trabajo requeridos para poder Independientes, Negociables, Valiosa, implementar un requerimiento Estimables, Pequeñas y Testeables [32]. (requerimiento, diseño, código, casos de • Independiente: Esto significa que las prueba, etc.). historias de usuario deben poder implementarse, probarse y entregarse por sí Por otro lado Beck [31] menciona que mismas sin depender de otras existe también un enfoque de trazabilidad funcionalidades [32]. La dependencia entre que mapea a las historias de usuario con las las historias de usuario hace que sea más pruebas de aceptación. Los dueños del difícil planificar, priorizar y estimar. A producto deberán especificar las pruebas de menudo, se pueden reducir las aceptación que determinarán si las historias dependencias haciendo una combinación de de usuario han sido implementadas o no historias, o partiéndolas de forma diferente. [20]. Tanto los miembros del equipo como • Negociable: A diferencia de los el dueño del producto deben acordar que requerimientos tradicionales, las historias existen un conjunto de pruebas de de usuario no son obligaciones aceptación que demuestran que las historias contractuales [32], sino más bien el han sido implemantadas satisfactoriamente. compromiso de establecer conversaciones La relación entre las historias de usuario y con el dueño del producto para convenir los las pruebas de aceptación constituyen una detalles de los requerimientos y así poder forma de trazabilidad. Podría no ser implementarlos, probarlos y validarlos. Este necesario mantener trazabilidad entre es el proceso de negociación mediante el historias de usuario y código fuente, ya que cual el equipo de desarrollo reconoce las necesidades del negocio, pero también enfoque es conocido como Desarrollo aporta sus ideas en base a la colaboración y Guiado por Pruebas (TDD) [22]. retroalimentación. • Valiosa: El objetivo de los equipos Desde el punto de vista de la utilidad de la Scrum es proveer valor a los clientes y trazabilidad en metodologías ágiles existen usuarios con los recursos disponibles, en el diferentes opiniones. Por un lado [33] tiempo disponible. Ese es el motivo que menciona que las matrices de trazabilidad hace que ésta sea la característica más deberían ser requeridas sólo cuando existe importante del modelo INVEST [32]. Los un riesgo de perder información corporativa ítems del producto son priorizados en de valor. Si este no fuera el caso, entonces función del valor que cada historia proveerá la trazabilidad se encuentra disponible en a los clientes, usuarios y demás diversas formas: conversaciones, historias stakeholder2 del producto. Una forma muy de usuario, código fuente, casos de prueba eficaz de generar historias valiosas es hacer automáticos, documentos de diseño, que el cliente las escriba. reuniones diarias de avance, correos • Estimable: Los desarrolladores electrónicos, etc. necesitan poder estimar una historia de usuario para que se pueda priorizar y Por otro lado [27] reconoce el valor y la planificar. Los problemas que pueden importancia de establecer y mantener impedirle a los desarrolladores estimar una trazabilidad de los requerimientos, pero no historia son: falta de conocimiento del acepta los modos tradicionales de hacerlo. dominio (en cuyo caso se necesita más Por su parte [34] menciona que en treinta negociación / conversación); o si la historia años de experiencia en la industria del es muy grande (en cuyo caso se necesita software, en investigación y en el gobierno, descomponer la historia en historias más nunca ha percibido el retorno de inversión pequeñas). de las matrices de trazabilidad. • Pequeña: Una buena historia debe ser pequeña en esfuerzo, generalmente El desconocimiento sobre la importancia de representando no más de 2-3 la trazabilidad se manifiesta en lo poco que personas/semana de trabajo. Una historia se sistematiza en esta área. La cultura del que es más grande va a tener más errores desarrollo de sistemas exige cada vez más asociados a las estimaciones y al alcance. documentación adecuada, sin embargo el Las historias de usuario deberían ser lo mantenimiento y seguimiento de esta suficientemente pequeñas como para poder documentación no se lleva de manera ser implementadas en una iteración. apropiada, la trazabilidad es una forma de • Verificable: No se desarrolla lo que cambiar esta cultura y minimizar los no puede ser probado. Si no puede fracasos en los proyectos de desarrollo de probarse, nunca va a saberse si se ha software [35]. terminado. Si una historia no puede ser verificada probablemente sea muy Según [36] [21] las razones para hacer compleja, o tenga muchas dependencias con trazabilidad en proyectos ágiles se otras historias. Para lograr que las historias mencionan a continuación: de usuario hayan sido probadas antes de 1. Porque existe información de las finalizar la iteración, algunos equipos de historias de usuario que no se documenta en desarrollo emplean un enfoque que el código: la razón u objetivo que se comienza creando los casos de prueba y persigue con dicho requerimiento. luego continúa con la codificación, este 2. El valor que proporciona la funcionalidad. 2 Un stakeholder es una persona que afecta o es afectada por el proyecto [44]. 3. Porque los desarrolladores rara vez agregar los detalles que sean necesarios. podrán recordar el propósito de las Los testers3 escriben los casos de prueba funcionalidades. que verifican los requerimientos, porque 4. Porque es esencial establecer y éstos últimos representan el acuerdo con el mejorar el conocimiento del producto y de cliente, sin embargo, vuelven a las historias su dominio en la organización. de usuario para comprender mejor cómo estructurar los casos de prueba y de este A pesar de que las metodologías ágiles modo asegurarse que las funcionalidades fueron diseñadas para utilizar historias de más importantes han sido probadas en usuario, el desarrollo de las aplicaciones profundidad. Para que esto sea posible se está dirigido en su mayoría por deben relacionar de algún modo las requerimientos tradicionales [37]. Muchas historias de usuario y los requerimientos de las organizaciones que subcontratan sus (trazabilidad) y asegurarse de que todos los productos utilizan requerimientos como requerimientos han sido mapeados a una o medio para definir y acordar lo que se debe más historias de usuario. Se parte de un construir. En estos casos, los equipos de documento de requerimientos del producto desarrollo han tenido que encontrar el modo que luego es descompuesto en de trabajar con ambos a la vez. Las historias funcionalidades, las cuales conocemos de usuario proveen flexibilidad en el diseño como historias de usuario [39]. y en la implementación. Los requerimientos proveen precisión y facilidad de gestión 4 Conclusión [37]. Surge de este modo la siguiente Para lograr entender la importancia de la pregunta ¿pueden coexistir ambos?. Los trazabilidad tanto en metodologías equipos deben estructurar el proyecto con el tradicionales como en metodologías ágiles objetivo de aprovechar al máximo las es necesario comprender qué es un ventajas de cada uno. Una forma de hacerlo requerimiento, qué diferencia existe con la es utilizando los requerimientos como el especificación de requerimientos y cuál es acuerdo entre los clientes y/o usuarios y el la necesidad de que los mismos sean equipo de desarrollo, ya que los expresados con cierto nivel de calidad. El requerimientos son estructurados, objetivos requerimiento expresa el problema que el y pueden definir exactamente lo que se sistema o producto software debe resolver debe implementar; y las historias de [21]. La especificación del requerimiento en usuario, ya que pueden construir el contexto cambio es el registro del requerimiento en que ayuda a los equipos de desarrollo a una o más formas. Con el objetivo de entender cómo se va a utilizar la aplicación. definir los atributos y características Las historias de usuario pueden deseables para la especificación de los administrarse en forma conjunta con los requerimientos en metodologías ágiles, se requerimientos sin necesidad de invertir revisaron los objetivos y las buenas demasiado esfuerzo adicional si ambos prácticas de desarrollo de requerimientos representan las mismas funcionalidades según el estándar IEEE830 [6]. Inicialmente desde diferentes puntos de vista; el del uso: se había planteado la hipótesis de que las las historias de usuario y el sistémico: los historias de usuario podrían ser compatibles requerimientos [38]. Esto significa que, una con los atributos del estándar de la IEEE historia de usuario podría estar relacionada [6], sin embargo se encontró bibliografía con múltiples requerimientos y que un que dice exactamente lo opuesto [21]. requerimiento podría a su vez, ser explicado por múltiples historias de usuario [37]. Los programadores utilizan las historias de usuario para diseñar e implementar las 3 Un tester es aquel que se dedica a realizar pruebas funcionalidades, y los requerimientos para a nuevas aplicaciones o a modificaciones de aplicaciones existentes. Durante el desarrollo del trabajo también se especifique cómo calcular un valor o ha visto que las historias de usuario cualquier otro artefacto que consideren el constituyen un enfoque de requerimientos dueño del producto o los miembros del que hace énfasis en la comunicación y equipo [19]. Incluso en algunos casos participación de los usuarios en el proceso coexisten los documentos de especificación de desarrollo [21]. Los clientes rara vez de requerimientos y las historias de usuario. conocen sus propias necesidades y durante el transcurso del proyecto esas necesidades Por otro lado se ha mencionado la y prioridades pueden cambiar. Las historias importancia de mantener trazabilidad de de usuario favorecen el trabajo en requerimientos, pautas y recomendaciones iteraciones lo cual facilita la adaptación a [27] para el desarrollo y mantenimiento de los cambios. También se ha visto que la misma tanto en metodologías expresar los requerimientos de software tradicionales como en metodologías ágiles. como historias de usuario puede ocasionar Sin embargo existen algunos autores [40] algunos problemas. El arte de escribir [33] [34] [4] que no reconocen del todo el buenas historias de usuario resulta muy valor y la utilidad de mantener trazabilidad difícil para quienes recién comienzan a en metodologías ágiles aunque [36] [21] emplear metodologías ágiles, los errores mencionan tres razones muy importantes cometidos en esta etapa pueden llevar a para hacerlo. desarrollar casos de prueba equivocados, a mal interpretar los requerimientos o peor También se mostró que para metodologías aún a desarrollar el producto incorrecto tradicionales la IEEE [6] plantea como un [40]. Es por ello que se han creado modelos criterio o atributo de calidad la trazabilidad como el INVEST [32] que ayudan a escribir de los requerimientos. Sin embargo, con buenas historias de usuario definiendo respecto a las historias de usuario se atributos que las mismas deben cumplir. encontró documentación que dice éstas no son compatibles con el mencionado Aún cuando las historias de usuario pueden estándar [21]. A pesar de que surge el pensarse como un reemplazo de los modelo INVEST [32] para ayudar a la documentos de requerimientos especificación de historias de usuario de tradicionales, es preciso recordar que la calidad, este modelo no plantea como parte escrita de las historias de usuario característica que las historias de usuario permanece incompleta hasta tanto se deban cumplir con el criterio de efectúen las discusiones con los dueños del trazabilidad. La comprobación empírica producto. Durante el desarrollo de este sobre el uso de la trazabilidad en entornos trabajo se ha visto que hay autores como ágiles es parte del trabajo futuro que se Mike Cohn [21] que opinan que las planea completar como se menciona en la historias de usuario no son obligaciones siguiente sección. contractuales, y que por lo tanto no es necesario escribir los detalles conversados 5 Futuros trabajos con los dueños del producto durante las Para continuar con el plan de tesis, los reuniones de planificación. Las pasos a seguir son: 1) Investigación acerca especificaciones del producto residen en lo de las características que poseen los que se ha implementado al finalizar cada proyectos a gran escala; 2) Recopilación iteración, en el código funcionando y en los bibliográfica e investigación de lecciones casos de prueba. Pero también se ha visto aprendidas en la industria sobre trazabilidad que en algunos casos las historias de de requerimientos de software en entornos usuario se utilizan como punteros a de desarrollo ágiles mediante la realización requerimientos, típicamente en diagramas de una encuesta para validar la hipótesis de de flujos, hojas de cálculo donde se la importancia real o no de realizar esta práctica en metodologías ágiles; 3) Scale,» 22 Diciembre 2009. [En línea]. Elaboración de un modelo de trazabilidad Available: de requerimientos que contemple los https://www.ibm.com/developerworks/my diferentes modos de definición de developerworks/blogs/ambler/entry/agile_ requerimientos en entornos de desarrollo requirements_at_scale?lang=en. [Último ágiles, según la exploración llevada a cabo acceso: 19 Junio 2012]. en la primera etapa; 4) Aplicación del [6] ISO/IEC/IEEE 29148:2011, «IEEE modelo de trazabilidad de requerimientos Recommended Practice for Software definido a un caso real (proyecto piloto) y Requirements Specifications,» [En línea]. finalmente la 5) Validación de la [Último acceso: 6 Diciembre 2012]. implementación llevada a cabo. [7] O. Gotel y A. Finkelstein, «An Analysis Agradecimientos of the Requirements Traceability Queremos agradecer en especial a Mariano Problem,» Imperial College of Science, Zibbechi, Carlos Bertoni y Álvaro Ruiz de Technology & Medicine, London, 1994. Mendarozqueta por su aporte en la revisión y [8] Software Engineering Institute, CMMI for corrección del presente trabajo. Development, Version 1.3, Massachusetts: CMMI Product Team, Referencias 2010. [9] Software Engineering Institute, [1] R. Corral, «Exprimiendo Scrum: Scrum y «Requirements Development,» de CMMI la gestión de requisitos,» Los for Development, Version 1.3, pensamientos, peleas y descubrimientos Pennsylvania, CMMI Product Team, de Rodrigo Corral con Scrum, C++, C#, 2010, pp. 325-340. ASP.Net, Team System, Sql Server, [10] M. S. Tabares, A. F. Barrera y J. D. Sharepoint, la arquitectura, la gestión de Arroyave, «Un método para la proyectos y el desarrollo de software en trazabilidad de requisitos en el proceso general..., 12 November 2007. [En línea]. unificado de desarrollo,» Revista EIA: Available: Escuela de Ingeniería de Antioquia, pp. http://geeks.ms/blogs/rcorral/archive/2007 69-82, Diciembre 2007. /11/12/exprimiendo-scrum-scrum-y-la- gesti-243-n-de-requisitos.aspx. [Último [11] B. Ramesh y M. Jarke, «Toward acceso: 6 Junio 2012]. Reference Models for Requirements Traceability,» IEEE Transactions on [2] Product Arts, «Agile Requirements - So Software Engineering, vol. 27, nº 1, pp. What's Different?,» 2009. [En línea]. 58-93, 2001. Available: http://www.product- arts.com/articlelink/204-agile- [12] M. P. Izaurralde, «Caracterización de requirements-so-whats-different. [Último Especificación de Requerimientos en acceso: 9 Junio 2012]. entornos Ágiles: Historias de Usuario,» Trabajo de especialidad, Febrero 2013. [3] M. Fritzsche y P. Keil, «Agile Methods [En línea]. Available: and CMMI: Compatibility or Conflict?,» http://www.institucional.frc.utn.edu.ar/sist e-Informatica Software Engineering emas/lidicalso/pub/file/Tesis/Anteproyect Journal, vol. I, nº 1, 2007. o_Requerimientos_en_Metodolog%C3% [4] S. W. Ambler, «Agile Requirements ADas_Agiles.pdf. Modeling,» Ambysoft, 2010. [En línea]. [13] «SCRUM Alliance,» [En línea]. Available: Available: http://www.scrumalliance.org/. http://www.agilemodeling.com/essays/agi leRequirements.htm. [Último acceso: 19 [14] Standards Coordinating Committee of the Junio 2012]. Computer Society of the IEEE, «IEEE Standard Glossary of Software [5] S. W. Ambler, «Agile Requirements at Engineering Terminology,» IEEE, New http://www.betterprojects.net/2008/01/req York, 1990. uirements-traceability.html. [Último [15] J. W. Brackett, Software Requirements, acceso: 9 Junio 2012]. Boston University, 1990. [26] J. Ibañez, «Gestión de requerimientos IV: [16] A. Tuffley, «CIT3190 Information trazabilidad,» [En línea]. Available: Technology Project Course,» 2000. http://blogs.salleurl.edu/project- management/gestion-de-requerimientos- [17] Software Engineering Institute, «Requirements Management,» de CMMI iv-trazabilidad/. [Último acceso: 21 Agosto 2012]. for Development, Version 1.3, Pennsylvania, CMMI Product Team, [27] B. Appleton, S. Berczuk y R. Cowham, 2010, pp. 341-347. «Lean-Agile Traceability: Strategies and Solutions,» 19 Septiembre 2007. [En [18] M. Cohn, «Mountain Goat Software,» línea]. Available: Mountain Goat Software, [En línea]. http://www.cmcrossroads.com/article/lean Available: -agile-traceability-strategies-and- http://www.mountaingoatsoftware.com/to solutions. [Último acceso: 21 Julio 2013]. pics/user-stories. [Último acceso: 1 Diciembre 2012]. [28] S. Berczuk, B. Appleton y R. Cowham, «The trouble with tracing: Traceability [19] M. Cohn, «An Overview,» de User Stories Applied for Agile Software Dissected,» cmcrossroads, 30 Noviembre 2005. [En línea]. Available: Development, Indiana, Addisson - Wesley, 2009, pp. 3-15. http://www.cmcrossroads.com/article/trou ble-tracing-traceability-dissected. [Último [20] M. Cohn, User Stories Applied: For Agile acceso: 22 Julio 2013]. Software Development, Indiana: Addison [29] D. North, «Behaviour-Driven Wesley, 2009. Development,» 2 Enero 2009. [En línea]. [21] S. W. Ambler, «Introduction to Test Available: http://behaviour-driven.org/. Driven Development (TDD),» Agile [Último acceso: 9 6 2012]. Data, [En línea]. Available: http://www.agiledata.org/essays/tdd.html. [30] K. Beck y M. Fowler, Planning Extreme Programming, Addison-Wesley, 2000. [Último acceso: 9 Junio 2012]. [22] K. Pugh, Lean-Agile Acceptance Test- [31] D. Leffingwell y P. Behrens, «A User Story Primer,» 2009. [En línea]. Driven Development, Boston: Addison- Wesley, 2010. Available: http://trailridgeconsulting.com/files/user- [23] M. Cohn, «What is Scrum?,» 2009. [En story-primer.pdf. [Último acceso: 24 línea]. Available: Enero 2013]. http://www.mountaingoatsoftware.com/to pics/scrum. [Último acceso: 3 Febrero [32] M. Bolton, «Requirement Traceability 2013]. Matrix and Agile Testing,» 14 Marzo 2008. [En línea]. Available: [24] J. Moccia, «Agile Requirements http://tech.groups.yahoo.com/group/agile- Definition and Management (RDM),» 27 testing/message/13320?threaded=1&p=7. Enero 2012. [En línea]. Available: [Último acceso: 21 Agosto 2012]. http://onespring.net/blog/agile- [33] V. Hazrati, «Traceability Matrix in an requirements-definition-and- Agile Project,» 6 Junio 2008. [En línea]. management-rdm/. [Último acceso: 11 Febrero 2013]. Available: http://www.infoq.com/news/2008/06/agil [25] Craig, «Requirements Traceability: e-traceability-matrix. [Último acceso: 21 Project Leadership, Requirements Agosto 2012]. Management and Product Design,» 15 [34] M. M. Sandoval Carvajal y M. A. García Enero 2008. [En línea]. Available: Vargas, «La Trazabailidad en el proceso 2012]. de requerimientos de software,» 2008. [40] B. Appleton, R. Cowham y S. Berczuk, [En línea]. Available: «Lean Traceability: a smattering of http://www.iiis.org/CDs2008/CD2008CS strategies and solutions,» 18 September C/CISCI2008/PapersPdf/C601UZ.pdf. 2007. [En línea]. Available: [Último acceso: 21 Agosto 2012]. http://www.cmcrossroads.com/article/lean [35] B. Rey-Mermet, «evocean,» 7 Enero -agile-traceability-strategies-and- 2011. [En línea]. Available: solutions. [Último acceso: 21 Agosto http://evocean.com/blog/tag/traceability/. 2012]. [Último acceso: 21 Julio 2013]. [41] K. Schwabe, Agile Project Management [36] P. Varhol, «Conference Paper: Agility with Scrum, Microsoft Press, 2004. with Traceability: Blending Requirements [42] S. W. Ambler, «The Agile Scaling Model and User Stories,» de Quality Engineered (ASM): Adapting Agile Methods for Software & Testing Conference & Expo, Complex Environments,» IBM Chicago, 2012. Corporation, United States of America, [37] C. Suscheck, «Defining Requirement 2009. Types: Traditional vs. Use Cases vs. User [43] UTN-FRC, «Universidad Tecnológica Stories,» 17 Enero 2012. [En línea]. Nacional - Facultad Regional Córdoba,» Available: [En línea]. Available: www.frc.utn.edu.ar. http://agile.techwell.com/articles/weekly/ [44] K. Wiegers., «Software Requirements,» defining-requirement-types-traditional-vs- 2nd Edition, Microsoft Press, 2003, 2003. use-cases-vs-user-stories. [Último acceso: 20 Enero 2013]. Datos de Contacto: [38] C. Langenfeld, «Using Rally to Map High María Paula Izaurralde. Universidad Tecnológica Traceability User Stories: PRD to SRS,» Nacional. Facultad Regional Córdoba. Maestro M. 8 Julio 2011. [En línea]. Available: Lopez esq. Cruz Roja Argentina Ciudad Universitaria - Córdoba Capital. http://www.rallydev.com/community/agil paulaizaurralde@gmail.com e-blog/using-rally-map-high-traceability- user-stories-prd-srs. [Último acceso: 20 Natalia Valeria Andriano. Universidad Tecnológica Enero 2013]. Nacional. Facultad Regional Córdoba. Maestro M. Lopez esq. Cruz Roja Argentina Ciudad [39] K. Kaczor, «5 Common Misktakes We Universitaria - Córdoba Capital. Make Writing User Stories,» Scrum nandriano@sistemas.frc.utn.edu Alliance, 3 Agosto 2011. [En línea]. Available: http://www.scrumalliance.org/articles/366 --common-mistakes-we-make-writing- user-stories. [Último acceso: 1 Diciembre