VisAlipse

VisAlipse es un plugin para Eclipse que se ha desarrollado como parte del TFG realizado por D. Raúl Abad Gómez-Pastrana, codirigido por los profesores D. Macario Polo Usaola y Dña. Carmen Lacave Rodero, en la Escuela Superior de Informática (ESI) de la UCLM. Se defendió en Julio de 2018 en la ESI y obtuvo la calificación de Matrícula de Honor.

Resumen

La recursividad es herramienta muy potente para la resolución de problemas complejos, que se basa en el principio de inducción matemática. Su estudio y su aplicación como técnica de diseño de algoritmos aparece en todos los currículos durante los primeros cursos de programación. Sin embargo, la complejidad que supone llegar a dominar y comprender la recursividad la convierte en una de las principales dificultades que los estudiantes deben superar durante las primeras fases de su aprendizaje.
Por ello, diversos trabajos han tratado de identificar y analizar las causas del fracaso en el aprendizaje de la recursividad para proponer posibles soluciones basadas en nuevas técnicas y metodologías docentes. Una de las que más desarrollo ha experimentado durante los últimos años es el uso de técnicas de visualización, aunque la mayoría de las herramientas existentes adolecen de funcionalidad, lo que puede llegar a comprometer la eficacia de su uso. Uno de los motivos podría estar relacionado con un marco tecnológico inmaduro en el momento del diseño y construcción de estas herramientas, pero que ahora se podría solventar gracias a la irrupción de nuevos paradigmas y al mayor grado de madurez de las tecnologías existentes.
Por tanto, VisAlipse trata de paliar las deficiencias encontradas en las herramientas existentes y se ha creado, bajo el paradigma de la Programación Orientada a Aspectos, como plug-in para el entorno de desarrollo Eclipse para generar, de forma automática, visualizaciones de los algoritmos recursivos que desarrollan los estudiantes de programación.

Funcionamiento

Una vez instalado el plugin para Eclipse, cualquier programa que edite el usuario se podrá ejecutar no solo como aplicación Java sino como VisAlipse program, tal y como muestra la Figura 1. Para ello, el plug-in dispone de dos lanzadores accesibles desde el editor de
código y desde la vista «Package Explorer» a través de las opciones «Run As!VISALipse
program» del menú contextual. Este lanzador únicamente será visible en el caso
en el que la clase a ejecutar contenga el método main()

Figura 1. Distintas formas de lanzar el plugin VisAlipse desde Eclipse.

Una vez lanzado se mostrará la ventada de selección de la Figura 2, en la que el usuario deberá indicar cuál es el método recursivo y los parámetros formales que desea visualizar.

Figura 2. Ventana de selección del método recursivo junto con los parámetros a visualizar.

En la Figura 3 se aprecia la perspectiva principal, que incluye dos vistas, Graph View y Trace View, con dos tipos de representaciones distintas y que se pueden mostrar simultáneamente o de forma independiente. En la barra de herramientas se han añadido varios botones que permiten generar la visualización en un paso, reiniciarla, ir haciéndolo paso a paso, e incluso volver hacia atrás. También se incluyen dos botones que permiten modificar el zoom de la vista Graph View para adaptar la visualización según le interese al usuario.

  • Trace View (en la parte izquierda de la imagen), que se encarga de mostrar la traza de llamadas recursivas en forma de párrafos de texto jerarquizado. Cada párrafo contiene información sobre la signatura del método y sobre el tipo, nombre y valor de los argumentos formales del método.
  • Graph View (en la parte inferior derecha) es la responsable de representar gráficamente la estructura de datos asociada a la ejecución del método recursivo. Únicamente muestra información sobre los parámetros formales seleccionados. Para ello, incluye una barra de herramientas con los argumentos del método, junto con los selectores que permitirán al usuario marcar y desmarcar los que desea visualizar.
Figura 3. Perspectiva principal de ejecución de un método recursivo como VisAlipse Program

Además. si desea acceder a información más detallada sobre los argumentos del método recursivo, puede hacer doble clic sobre cualquiera de los nodos representados en alguna de las vistas Trace View o Graph View. En una nueva ventana se le mostrará toda la información de la llamada recursiva seleccionada, además de permitirle la navegación secuencial y aleatoria através de la pila de llamadas mediante los botones y campos de texto, tal y como ilustra la Figura 4.

Figura 4. Ventana de información de una llamada recursiva.