VisBack

VisBack se ha desarrollado como parte del TFG realizado por D. Jesús Francisco Pérez Mena, dirigido por la profesora Dña. Carmen Lacave Rodero, en la Escuela Superior de Informática (ESI) de la UCLM. Se defendió en Junio de 2015 en la ESI y obtuvo la calificación de Sobresaliente.

Resumen

La asignatura de “Metodología de la Programación” del Grado de Informática la Escuela Superior de Informática de la UCLM tiene un elevado índice de suspensos. Los profesores que la imparten han detectado que ello se debe a las carencias que tienen los alumnos en el manejo de la recursividad. Además, de las distintas estrategias que se estudian en la meteria, el backtracking es la que más trabajo les cuesta asimilar, al resolver la mayoría de los problemas haciendo uso de la recursividad múltiple. Con el fin de facilitar la comprensión de las distintas llamadas recursivas se ha desarrollado VisBack, que visualiza simultáneamente el código del algoritmo en ejecución y su representación gráfica. VisBack proporciona las implementaciones en Java de los algoritmos clásicos de combinatoria (variaciones, combinaciones y permutaciones), en los que se basan gan parte de los problemas de backtracking que se plantean en el curso y, en cada momento, cada nodo del árbol de exploración muestra la información que elige el usuario. Así, se obtiene una visualización de forma clara y sencilla para los alumnos, adaptada a sus necesidades en función de los problemas que les supone la comprensión de backtracking, especialmente todo lo relacionado con los mecanismos de vuelta atrás en las llamadas recursivas.
En consecuencia, la aplicación puede ser utilizada tanto por los alumnos como por los docentes como material de apoyo en sus clases.

Funcionalidades

VisBack se ha desarrollado en Java utilizando la librería JUNG para visualización de grafos y se puede ejecutar o bien como una aplicación de escritorio o bien como plugin de Eclipse, tanto en inglés como en castellano. Entre otras ventajas de VisBack, merece la
pena destacar las facilidades que ofrece al usuario, y que se muestran en la Figura 1, para:

• elegir el algoritmo cuya traza se pretende visualizar, así como cambiarlo en cualquier
momento que se requiera, incluyendo su cóigo fuente si así lo desea;
• definir los parámetros de entrada del algoritmo e introducir sus valores, o bien generarlos de forma aleatoria (nº elementos, cardinalidad de los subconjuntos, lista de elementos, etc.);
• decidir si la visualización de la traza desea que se genere en una sola iteración (ejecución Normal), o paso a paso (Ejecución por Pasos); en este último caso, se permite ir también hacia atrás;

Figura 1. Ventana principal de VisBack con los distintos elementos de interacción.

• identificar gráficamente las líneas del código fuente que se están ejecutando en cada paso (Figura 2);
• reconocer gráficamente el nodo que esté seleccionado en ese momento puesto que se
destaca en distinto color de los demás (Figura 2);

Figura 2. Identificación de líneas de código en ejecución y del nodo correspondiente.

• fijar el modo en el que se desea visualizar los nodos; si se elige el modo avanzado, se muestran no solo los valores de los mismos sino los valores de los distintos parámetros del método en ejecución (Figura 3);
• configurar otros aspectos de visualización como el color y el tamaño de algunos elementos (Figura 3);

Figura 3. Ventana de configuración de los nodos

• aumentar y disminuir el tamaño de los árboles que constituyen la representación gráfica mediante el uso del zoom;
• guardar y exportar las representaciones gráficas generadas en distintos formatos;
• obtener ayuda tanto para el uso de la aplicación como sobre el código fuente (Figura 4).

Figura 4. Ventana de Ayuda de VisBack