Agile managing of web requirements with WebSpec

  1. Robles Luna, Esteban
Dirigida per:
  1. Gustavo Rossi Director/a
  2. Irene Garrigós Fernández Directora

Universitat de defensa: Universitat d'Alacant / Universidad de Alicante

Fecha de defensa: 27 de de juny de 2011

Tribunal:
  1. Oscar Pastor López President/a
  2. José J. Zubcoff Vallejo Secretari
  3. Fernando Sánchez Figueroa Vocal
  4. Estela Saquete Boró Vocal
  5. María José Escalona Cuaresma Vocal
Departament:
  1. LLENGUATGES I SISTEMES INFORMÀTICS

Tipus: Tesi

Teseo: 310750 DIALNET

Resum

El desarrollo de aplicaciones Web es un proceso complejo y que consume mucho tiempo. A su vez involucra a equipos de desarrollo multidisciplinarios (incluyendo clientes, diseñadores graficos, desarrolladores, aseguradores de calidad, etc.) y por lo tanto el entendimiento de la aplicacion varia entre los diferentes miembros del equipo. Ademas, estas aplicaciones poseen algunas caracteristicas unicas como acceso a la informacion a traves de la navegacion e interacciones sofisticadas lo cual hace que su desarrollo sea diferente respecto a las tradicionales aplicaciones de escritorio. Como consecuencia, podemos encontrar en la literatura dos grandes grupos para el desarrollo de aplicaciones Web: la ingenieria Web dirigida por modelos (MDWE) y las metodologias agiles. Por un lado, varias metodologias MDWE han sido propuestas durante los ultimos 20 años [5, 10, 15, 18]. Todas ellas comparten un estilo arriba-abajo [19], construyendo la aplicacion Web describiendo un conjunto de modelos en diferentes niveles de abstraccion: el modelo de Contenido (o Aplicacion) define los objetos de dominio y sus relaciones, el modelo de Hipertexto (o Navegacion) define los nodos de navegacion y los enlaces que publican informacion especificada en los objetos del modelo de Contenido y el modelo de Presentacion refina el modelo de hipertexto con una interfaz de presentacion concreta con paginas y elementos de interfaz. El proceso utilizado en estas metodologias es en general arriba-abajo entregando una aplicacion Web final y utilizando transformaciones de modelo a una tecnologia destino. Por otro lado, las metodologias agiles promueven la interaccion temprana y constante con los clientes. De esta forma se comprueba continuamente que el software construido satisface sus requisitos los cuales son desarrollados en periodos de tiempo cortos. Las metodologias agiles argumentan que las especificaciones de software deben emerger naturalmente, mejorando los prototipos existentes a lo largo del desarrollo hasta que la aplicacion final es obtenida. En resumen, mientras que las metodologias MDWE facilitan el software portable, el nivel de abstraccion y la productividad, fallan en proveer interaccion agil con los clientes porque los resultados concretos son obtenidos demasiado tarde. Por otro lado, mientras que esta ultima caracteristica es lograda con claridad por las metodologias agiles, estan basadas en la implementacion directa y por lo tanto fallan en proveer portabilidad, abstraccion y productividad mediante la generacion de codigo automatico. De acuerdo a diversos estudios [11] en la industria, la fase de captura de requisitos es una de las mas importantes de cualquier metodologia de desarrollo Web. Desafortunadamente, en el contexto de MDWE, los requisitos son generalmente capturados con casos de uso [9] o una modificacion de ellos mientras que en las metodologias agiles existe una tendencia a reemplazar los casos de uso con historias de usuario [12]. Respecto al poder expresivo de ambos artefactos, estos son muy pobres para expresar las particularidades de la Web (por ejemplo, su naturaleza de navegacion e interaccion). Ademas, la rapida evolucion de las aplicaciones Web (en pocas semanas) impone restricciones adicionales para el testing continuo y en tiempo respecto a la especificacion de requisitos [11] principalmente para validar que los nuevos requisitos han sido implementados correctamente sin 'romper' los existentes. En este contexto, la captura y el modelado de requisitos debe ser lo suficientemente eficiente para cumplir con las restricciones de tiempo. Por lo tanto es importante que los requisitos sean facilmente entendidos para proveer una evolucion eficiente de la aplicacion. Tomando en cuenta estos puntos, la hipotesis de esta tesis doctoral es la mejora del desarrollo de aplicaciones Web mediante: Una especificacion formal de requisitos que automatice su validacion, semi automatice la derivacion de la aplicacion y ayude a mejorar el entendimiento de un requisito mediante la simulacion de la aplicacion. Una metodologia hibrida de desarrollo que tome las ventajas de las metodologias MDWE y agiles para mejorar el desarrollo de aplicaciones Web. Aunque ya existe trabajo [3] referido a la integracion de metodologias agiles y dirigidas por modelos, nuestro trabajo [17] fue el primero en mostrar que era posible lograrlo en el ambito Web. Este trabajo fue el disparador para el desarrollo de nuestro lenguaje de requisitos llamado WebSpec [16] el cual permite las caracteristicas mencionadas con anterioridad. En conclusion, el principal objetivo de investigacion de esta tesis doctoral es el desarrollo de un lenguaje de dominio especifico (DSL) que permita la especificacion de requisitos Web formalmente. Como consecuencia, las siguientes tareas pueden ser automatizadas ayudando a mejorar el proceso de desarrollo: Mejorar el entendimiento de un requisito mediante la simulacion de la aplicacion Web. Automatizar el testing de un requisito con la derivacion automatica de tests de interaccion. Semiautomatizar la derivacion de la aplicacion a diferentes tecnologias no solo en la primera iteracion sino tambien cuando la aplicacion evoluciona utilizando control de cambios.