Full text
* Las opiniones expresadas en este artículo son las de sus autores, no siendo necesariamente compartidas por sus empleadores Propuesta de modelado de requerimientos en paradigmas de Ingeniería Web Ágil guiada por modelos* J. Sedeño1, 2, C.J. Torrecilla-Salinas2, M.J.Escalona2 and M. Mejías2 1Agencia Andaluza de Instituciones Culturales [email protected] 2Grupo IWT2, Universidad de Sevilla {jorge.sedeno,carlos.torrecilla}@iwt2.org {mjescalona,risoto}@us.es Resumen. El paradigma guiado por modelos ha sido utilizado en los últimos años para promover mejores resultados en el desarrollo de Aplicaciones Web, en el campo que se ha denominado Ingeniería Web Guiada por Modelos (MDWE, Model-Driven Web Engineering). Por otro lado se ha demostrado que las metodologías ágiles se adaptan de manera muy adecuada a los entornos web, al estar centradas en técnicas empíricas e iterativas sobre las necesidades de los usuarios y tener la flexibilidad adecuada a la hora de adaptarse a los cambios de los mismos y del entorno. En cualquier caso, el punto de partida de ambos son los requerimientos. Sin embargo, ambos puntos de partida tienen diferencias, ya que los requerimientos en técnicas ágiles difieren a los utilizados en los paradigmas MDWE debido a que estos últimos necesitan estar completamente definidos antes de ser transformados. El objeto del presente trabajo es proponer la estructura de un requerimiento ágil fundamentado en las Historia de Usuario, que pueda ser abordado usando las transformaciones de la ingeniería guida por modelo, intentando conjugar lo mejor de ambos paradigmas. Palabras clave: Metodologías Ágiles, Ingeniería Web, Scrum, Model-Driven Web Engineering, Historia de Usuario. 1 Introducción Desde hace algunos años las metodologías ágiles se han ido consolidado y extendiendo en organizaciones que desarrollan software en entornos Web [1], debido a que dan solución a las principales particularidades del paradigma de la Ingeniería Web, gracias a la flexibilidad que proporcionan. Estas características [2,3] podrían resumirse en: x Entrega de valor “as soon as possible” y reducción del “time-to-market”. x Requisitos críticos en las interfaces persona-ordenador. x Mutabilidad de los requisitos en cortos intervalos de tiempo y alta velocidad de adaptación a los cambios de requerimientos. x Estructura de navegación compleja y aspectos específicos de seguridad. 273
Por otra parte, la Ingeniería Web Guiada por Modelos (MDWE), se ha demostrado en los últimos años como un paradigma efectivo para la Ingeniería Web, que ha dado como resultado algunas propuestas válidas como UWE (UMLWeb Engineering) [4], WebML (Web Modeling Languages) [5] o NDT (Navigational Development Techniques) [6]. El presente artículo pretende modelar, basado en las recomendaciones de las metodologías ágiles más habituales; Scrum [8], eXtreme Programming (XP) [9], Crystal [10], Lean Software Development [11] o Feature Driven Development (FDD) [12], un requerimiento ágil. Estas metodologías ágiles, al utilizar generalmente el concepto de requerimiento (necesidad), no lo hacen como los paradigmas tradicionales. La diferencia fundamental estriba en que las metodologías ágiles, que están basadas en procesos empíricos e iterativos, tienen como principal valor la agilidad, en una toma no detallada de requisitos y su posterior estimación y planificación [14, 15, 16]. Por el contrario, los paradigmas basados en metodologías tradicionales (en cascada, iterativas o incrementales) pivotan sobre una fase muy detallada de toma requisitos, que es necesaria para ejecutar las sucesivas transformaciones de sus modelos y pasar a las siguientes fases del desarrollo. Actualmente hay investigaciones encaminadas a dotar de agilidad al paradigma MDWE, como los basados en mockups [18,19] o apoyados en la idea de llegar desde los requisitos a la ingeniería guiada por modelos en entornos ágiles, pero enfocándose en la transformación [20] y no en la definición del requerimiento ágil. En este artículo abordamos esta unión desde el punto de vista del modelado de requerimientos ágiles, para que puedan ser transformados posteriormente por métodos basados en el paradigma MDWE, del que no se han encontrado referencias en trabajos de investigación. Esto permitirá formalizar la toma de requerimientos ágiles en aras a poder realizar procesos de transformación que hagan todavía más eficiente la Ingeniería Web. Este artículo está divido en tres secciones, la definición del requerimiento ágil en la sección 2, el ciclo de transformación ágil en la sección 3 y las conclusiones y trabajos futuros en la sección 4. 2 Requerimientos ágiles Una “Historia de Usuario”, término popularizado por Mike Cohn [7], es un conjunto acotado de funcionalidad que puede ser entregado a un proveedor, usuario o sistema de información, de manera que genera un valor que antes no existía, una vez que el Sprint ha concluido. Puede ser definido como una necesidad que genera valor por sí misma. El ciclo de vida de los proyectos ágiles, en especial Scrum [8], comienza con la definición de una pila de elementos delimitados en un contexto, que darán forma al proyecto Web. Como tipo de elemento elegido se propone la Historia de Usuario, por su consolidación en el paradigma Ágil. Los elementos fundamentales del requerimiento ágil (Figura 1), que expondremos a continuación, están tomados de un marco ágil sobre las que se han desarrollado ya algunos proyectos [24,25]: 274
x La Historia de Usuario, conjunto de funcionalidad formada por un identificador univoco, una descripción que responderá a dicha funcionalidad, una fecha de alta, una valoración de negocio (unidades ficticias de negocio), una valoración de esfuerzo (unidades de esfuerzo ficticias, llamadas puntos de historia) y un elemento de ordenación y priorización, que en nuestra propuesta, será el retorno de la inversión (ROI), calculado como la división entre el valor de negocio y el esfuerzo, formarán el “core” del requerimiento ágil. La gran mayoría de técnicas ágiles incluyen estos elementos a excepción del ROI, que será el elemento clave en la elección de las historias de usuario a transformar, ya que nos proporcionará el marco espacio-temporal para su elección y que se ha demostrado muy eficaz [24, 25]. Las Historias de Usuario han de cumplir además los aspectos INVEST [9]: Independiente, Negociable, Valorable, Estimable, Acotado (Small), y Testeable. x La Definición de Hecho, que en las metodologías ágiles, se entiende como un aserto que describe cuando una Historia de Usuario está terminada. Por tanto, una serie de definiciones de hecho constituirán los elementos que se transformarán en las pruebas, pudiendo utilizarse técnicas como Test Driven Development (TDD, [9]). x Las restricciones, que ayudarán a delimitar la historia de usuario en un contexto concreto y que serán equivalentes a los requerimientos no funcionales. x Las Personas, entidad análoga a los Actores en otros paradigmas, que tienen una relación con la Historia de Usuario. De estas relaciones entre la entidad Persona y la Historia de Usuario se deducirá el esquema de navegación Web. Se ha denominado Persona y no Actor al haber elegido el nombre de la técnica ágil Persona [19] dedicada al modelado de estas entidades y para no crear confusión con Actores cuya relación está basada en la causa-efecto, como por ejemplo, se da en un caso de uso. Fig. 1. Meta-modelo de la estructura de un Requerimiento Ágil Existen técnicas ágiles para describir, trabajar y dar valor [21, 22, 23] a estos elementos y que se han desglosado en otros trabajos [24, 25], no siendo objeto del presente artículo. 275
Este meta-modelo conformaría un requerimiento ágil, formado por estas cuatro clases. Estos requerimientos ágiles serán los elementos de la pila de producto. Realmente representa un modelo de requerimiento que incorpora su propia priorización, de manera que podríamos hablar de entrega de valor priorizada o maximizada y por tanto ágil. 3 Ciclo de Transformación Tomando como modelo Scrum [8], en el ciclo de vida de las metodologías ágiles, al diseño de la pila del producto, le siguen los correspondientes Sprints, de manera que sólo aquellas Historias de Usuario que han sido seleccionadas para el Sprint, es decir, aquellas cuyo ROI es mayor y por tanto su conclusión propiciará una mayor entrega de valor al cliente, serán las elegidas para ser transformadas, dando lugar a los elementos denominados tareas, pruebas y navegación. Una Historia de Usuario se descompondrá en una serie finita de tareas, las Definiciones de Hecho darán lugar a una serie de pruebas y las diferentes relaciones de las Personas con las Historias de Usuarios darán lugar a la navegación. Partiendo del esquema que recomienda la OMG en su modelo sobre MDWE [13], estos los requerimientos ágiles, formarán el Modelo de Negocio (CIM, Computer Independent Model), en el cuál, se condensa la lógica de negocio. Estos requerimientos podrán ser transformados posteriormente, en el caso de técnicas ágiles, en cada sprint, en un modelo independiente de la plataforma (PIM, Platform Independent Model), como se observa en la Figura 2. Fig. 2. Adaptación del modelo MWDE a metodologías ágiles A diferencia del resto de paradigmas, que han de especificar y detallar todos los requisitos que luego son transformados, aquí solo se transformarán cada vez (en cada Sprint) un conjunto finito de requerimientos ágiles, pudiéndose refinar la pila del producto en cada sprint. En definitiva, sólo avanzan aquellos requerimientos necesarios para el momento concreto. Esto propiciará que la transformación sea incremental. Quedan fuera del artículo tanto los métodos de transformación como el paso al tercer 276
nivel, donde se dará una transformación a una tecnología específica (PSN, Platform Specific Model). 4 Conclusión y trabajos futuros Esta modelo constituye una propuesta de formalización del concepto de requerimiento en proyectos basados en metodologías ágiles, tomando como base las Historias de Usuario, particularizando el concepto de requisito de las metodologías tradicionales, añadiendo la contextualización y el valor priorizado a entregar como parte integrante del mismo y como pieza fundamental del paradigma ágil. Es un requerimiento ordenado y priorizado, que puede ser ejecutado en diversos momentos del tiempo, adaptándose a las metodologías ágiles. Así mismo, el modelo propuesto contiene las especificaciones necesarias del negocio, las relaciones y las restricciones, de manera que se puedan trazar las tareas, las pruebas y el modelo de navegación desde los requerimientos, para ser transformado por parte de la ingeniería guiada por modelos. Es por tanto un modelo que cumple las condiciones de ambos paradigmas. Esto permitirá, en un futuro, abordar proyectos basados en metodologías ágiles de una manera formalizada, al poder utilizar transformaciones automáticas para su desarrollo. Como trabajo futuro, restan tanto los métodos de transformación como el paso al tercer nivel, donde se realizarán una transformación a una plataforma tecnológica específica, así como la formalización del conjunto de técnicas ágiles sobre las que se soporta el modelo. 5 Agradecimientos Esta investigación ha sido apoyada por el proyecto MeGUS (TIN2013-46928-C3-3R) del Ministerio de Ciencia e Innovación, el proyecto Tempros (TIN2010-20057C03-02), y el proyecto NDTQ-Framework (TIC-5789) de la Junta de Andalucía. 6 Referencias 1. Pressman, R.S. “What a Tangled Web We Weave”. IEEE Software, pp. 18-21. Jan.-Feb. 2000 2. Deshpande, Y. et al. “Web Engineering”. Journal of Web Engineering, Vol. 1, No.1, 003017. 2002 3. Ambler, S.W. “Lessons in Agility from Internet-based Development.” IEEE Software, pp. 66-73. Mar-Apr, 2002 4. N. Koch. “Software Engineering for Adaptive Hypermedia Applications”. Ph. Thesis, FAST Reihe Softwaretechnik Vol (12), Uni-Druck Publishing Company, Munich. Germany. 2001 5. S. Ceri, P. Fraternali, P. Bongio. “Web Modelling Language (WebML): A Modelling Language for Designing Web Sites”. Conference WWW9/Computer Networks 33 (1-6) pp. 137-157. Mayo 2000 277
6. M.J. Escalona, G. Aragón. NDT. A Model-Driven approach for Web requirements. IEEE Transaction on Software Engineering. Vol. 34. Nº3. pp. 370-390. 2008. 7. Cohn, M. “Agile Estimating and Planning”. NJ: Addison-Wesley. 2005. 8. Sutherland, J.; Schwaber, K. “The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game”. 2011. http://www.scrum.org/Scrum-Guides. Accessed 2013. 9. Beck, K.; Andres, C. “Extreme Programming Explained: Embrace Change, Second Edition”. Boston: Addison-Wesley. 2004. 10. Cockburn, A. “Crystal Clear: A Human-Powered Methodology for Small Teams”. Boston: AddisonWesley. 2004. 11. Poppendieck, M.; Poppendieck, T. “Lean Software Development. An Agile Toolkit”. Boston: Addison-Wesley. 2003. 12. Palmer, RS “A Practical Guide to Feature-Driven Development”. NJ: Prentice-Hall. 2002. 13. OMG. Unified Modeling Language: Superstructure, version 2.0. Specification, OMG, 2005. http://www.omg.org/cgibin/doc?formal/05-07-04. 14. Schwaber, K. “Controlled Chaos: Living on the Edge”. American programmer. April 1996. 15. Ambler, S.W. “Lessons in Agility from Internet-based Development.” IEEE Software, pp. 66-73. Mar-Apr, 2002 16. Ran, H. et al. 2008. “Agile Web Development with Web Framework”. In proceedings of 4th International Conference on Wireless Communications, Networking and Mobile Computing. (Dalian, China, October 12 – 17 2008) WiCOM '08. IEEE 17. Armario, J.; Gutiérrez, J.J.; Alba, M.; García-García, J.A.; Vitorio, J.; Escalona, M.J., “Project Estimation with NDT”. In proceedings of 7th International Conference on Software Paradigm Trends (Rome, Italy, July 24-27 2012). ICSOFT 2012: 120-126. 18. Rivero, JM; Grigera, J. ; Rossi, G; Luna, ER ; Koch, N “Towards Agile Model-Driven Web Engineering”. In proceedings 23rd International Conference on Advanced Information Systems Engineering (London, ENGLAND, Jun 20-24 2011). CAiSE 2011. 19. Rivero, JM; Grigera, J.; Rossi, G; Luna; Montero, F; Gaedke, M. Information and Software Technology. Vol. 5, Issue 3, pp. 670-687, Jun, 2014. 20. Grigera G.; Matías-Rivero J.; Robles E.; Giacosa F.; Rossi G., “From Requirements to Web Applications in an Agile Model-Driven Approach” In Proceedings 12th International Conference, ICWE 2012, Berlin, Germany, July 23-27, 2012. 21. Constantine L.; Lockwood L;. “Software for Use: A practical guide to the models and methods of usage-centered design” Reading, Mass.: Addison-Wesley, 1999. 22. Shepperd, M.; Schofield, C.; Kitchenham, B. "Effort Estimation Using Analogy". Dept. of Comput., Bournemouth Univ. Software Engineering, 1996. 23. Ton, H.: A Strategy for Balancing Business Value and Story Size. In: AGILE 2007 Conference (2007). 24. Torrecilla-Salinas, C.J.; Sedeño J.; Escalona M.J.; Mejías M. “Using Agile methods for infrastructure projects: A practical experience”. 22nd International Conference on Information Systems Development (Seville, 2-4, Sep, 2013). ISD2013. 25. Torrecilla-Salinas, C.J.; Sedeño J.; Escalona M.J.; Mejías M. “Using an Agile framework to deliver e-Government services in public administrations”. 21nd Annual Software Quality Management (London, 2-5, Sep, 2013). SQM2013. 278