• No se han encontrado resultados

Descripción general del proyecto

5.1.

Perspectiva del producto

5.1.1.

Entorno del producto

La herramientamutationtool se enmarca dentro de GAmera [13], una herramienta de generación de mutantes para WS-BPEL que en vez de generarlos todos genera sólo un subconjunto de ellos. GAmera se divide en dos partes: un algoritmo genético que dirige todo el proceso y un entorno que compara los mutantes con el proceso original, para comprobar si su comportamiento varía o no. En concreto, mutationtool se integra en

esta segunda parte.

Como se comenta en 6.6.1, el sistema de ejecución de GAmera [13] es una simplifica- ción y una extensión del que utiliza Takuan [46].

Ambos sistemas dependen de Java 6, Tomcat 5.5, ActiveBPEL 4.1, XMLBeans 2.1.0, BPELUnit 1.4 y Saxon-B 9.1.0.1. Además, GAmera depende específicamente demuta- tiontool 1.0.7, galib 2.4.7 y JUnit 4.

A su vez, mutationtool depende de los módulos AnalizadorXPath, ConversorXPath

e InstrumentadorBPEL. Estos módulos pueden descargarse en https://neptuno. uca.es/redmine/projects/sources-fm/repository/show/trunk/src.

5.1.2.

Interfaz de usuario

La herramienta mutationtool no presenta una interfaz gráfica. Para interactuar con

esta herramienta se utilizará la terminal de GNU (GNU is Not Unix)/Linux mediante líneas de órdenes.

5.2.

Funciones

5 Descripción general del proyecto

Analizar una composición WS-BPEL. Esto consiste en identificar qué instruccio- nes o elementos del programa original pueden mutarse.

Aplicar un operador a la composición WS-BPEL original para generar un mutan- te.

Aplicar, de una vez, todos los operadores a la composición WS-BPEL original para generar todos los mutantes posibles.

Ejecutar la composición WS-BPEL sobre el conjunto de casos de prueba, para obtener si ha pasado con éxito o no cada uno de estos casos.

Ejecutar los mutantes y comparar hasta que se encuentre la primera diferencia entre la salida de la composición original y las salidas de las ejecuciones de las mutaciones.

Ejecutar todos los mutantes y comparar la salida de la composición original con las salidas de las ejecuciones de las mutaciones.

Comparar dos ficheros que contengan dos salidas de ejecución de una composi- ción WS-BPEL, ya sea la composición original o un mutante de dicha composi- ción, sobre el conjunto de casos de prueba.

Normalizar una composición WS-BPEL, es decir, obtener una forma canónica de ésta.

5.3.

Características del usuario

Como ya se ha comentado en más de una ocasión, este PFC tiene como objetivo com- pletar una herramienta real denominada GAmera, desarrollada en el grupo de investi- gación de SPI&FM, que se encarga de la generación de mutantes para WS-BPEL, pero en lugar de generarlos todos genera sólo un subconjunto de ellos. Dicha herramienta se divide en dos partes: un algoritmo genético que dirige todo el proceso y un entorno que compara los mutantes con el proceso original, para comprobar si su comporta- miento varía o no.

Por tanto, los usuarios que utilicen este producto deberán tener conocimientos, al menos, de las pruebas de mutaciones de programas [25], del análisis de mutaciones y del lenguaje WS-BPEL 2.0 [43].

5.4 Restricciones generales

5.4.

Restricciones generales

5.4.1.

Control de versiones

Puesto que se ha realizado un proceso incremental de desarrollo de software, se ha necesitado un sistema de control de versiones de todas las fuentes del proyecto. Estos sistemas permiten almacenar todas las versiones de un árbol de ficheros, pudien- do así manipular todas las revisiones de cualquier fichero en cualquier momento. Además de servir como una medida de seguridad contra la pérdida de información accidental, agilizan los cambios drásticos, ya que no hay que establecer medidas espe- ciales por si fallaran: se pueden revertir los cambios hechos en cualquier momento. En particular, Subversion es un sistema que trata de resolver las insuficiencias del conocido CVS (Concurrent Versions System), pudiendo mantener revisiones de direc- torios completos, establecer propiedades especiales sobre los elementos del repositorio y enviar nuevas revisiones de forma atómica, entre otras cosas.

Dispone de excelente documentación, con un libro [7] disponible bajo la licencia Crea- tive Commons y otro libro [37] sobre Subversion.

Como este PFC se ha enmarcado dentro de un proyecto más complejo, se ha creado una rama de desarrollo para este PFC. De esta forma, hasta que el desarrollo realizado en esta rama no ha sido revisado y validado por los directores del PFC no se ha fusionado con la rama principal del proyecto.

5.4.2.

Lenguajes de programación y tecnologías

Los lenguajes de programación y las tecnologías que se han utilizado durante el desa- rrollo de este PFC son:

WSDL: para describir servicios Web.

SOAP: para intercambiar mensajes en un entorno distribuido. WS-BPEL: para realizar la composición de servicios Web.

XSLT: para transformar documentos XML en otros, utilizando reglas de plantilla. XPath: para construir expresiones que recorran y procesen documentos XML. XML Schema: para describir la estructura y las restricciones de los contenidos de los documentos XML.

JUnit: framework para realizar pruebas unitarias, permite realizar la ejecución de clases Java de manera controlada y evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera.

5 Descripción general del proyecto

BPELUnit: framework para realizar pruebas de unidad de composiciones WS- BPEL.

5.4.3.

Herramientas

Para desarrollar este PFC se han usado las siguientes herramientas:

Apache Ant: Sistema de gestión de tareas de compilación, empaquetado, gene- ración de documentación y lanzamiento de pruebas de unidad, entre otras. Es similar al conocido GNU Make, siendo la principal diferencia su soporte multi- plataforma, gracias a estar implementado en Java.

Eclipse: IDE (Integrated Development Environment) desarrollado en sus inicios por IBM que es, junto con NetBeans, uno de los más usados hoy en día. Aun- que es particularmente popular en la comunidad Java, existen versiones para otros lenguajes, como C o C++. Dispone de herramientas para hacer rápidamen- te refactorizaciones en el código, facilitando enormemente cualquier cambio al diseño de una aplicación.

TkDiff: un visor de diferencias gráfico basado en el framework Tk. XMLEye: un visor extensible de formatos XML.

5.4.4.

Sistemas operativos y hardware

El Proyecto en el que se enmarca este PFC ha sido desarrollado y probado únicamen- te en GNU/Linux, ejecutando la versión 9.10 de la distribución Ubuntu y la versión 11.0 de la distribución openSUSE. Por tanto, este PFC se ha desarrollado y probado únicamente en GNU/Linux.

En cuanto al hardware se recomienda disponer de una máquina con una memoria, al menos, de 1 GB de RAM, puesto que el proceso de ejecución de GAmera (véase 6.6.1) consume muchos recursos.