Publication:
Visualizador y analizador de trazas de ejecución sobre modelos concurrentes

Research Projects
Organizational Units
Journal Issue
Abstract
La herramienta SYCO (Systematic testing tool for Concurrent Objects) es un analizador de modelos concurrentes que recibe un programa concurrente a ejecutar con unos determinados parámetros y provee a la salida la información de todos los posibles entrelazados del programa (trazas), junto con la secuencia de acciones efectuadas para llegar a cada uno de los estados finales. Sin embargo, la salida proporcionada por dicha herramienta no es visual, lo que complica la interpretación de los diferentes entrelazados posibles, más aún cuando el número de posibilidades crece de forma exponencial, en lo que se conoce como el problema de la explosión de estados. El objetivo de este Trabajo de Final de Grado consiste en desarrollar un visualizador/analizador de las diferentes trazas que obtiene el programa SYCO de forma que sean fácilmente entendibles por un programador. Dado que la salida se puede interpretar inherentemente como un árbol, se mostrará un árbol con capacidad interactiva, con diferentes opciones para el usuario, tanto en relación a recorridos (se ofrecen diferentes opciones para navegar por el árbol) como en relación a información mostrada (se permite elegir la información de variables, de las propiedades de ejecución o de estado y el número de trazas a mostrar, e incluso se añade una leyenda para dirigir la atención a determinados nodos, según las necesidades del usuario). En esta memoria se explicarán los pasos necesarios para instalar SYCO (capítulo 3) y se documentará todo el proceso de diseño del visualizador, desde su inicio con la decisión sobre el formato de imagen, el lenguaje usado (SVG y JavaScript, respectivamente) y el formato de entrada requerido para el visualizador (capítulos 4 y 5), hasta la toma de decisiones sobre la utilización de diversos componentes, su posicionamiento y su estilo (capítulo 6). Una vez realizada la implementación, hemos trabajado en que el visualizador funcione de forma conjunta con SYCO, como si fueran un mismo componente, para evitar la ejecución manual del visualizador tras obtener la salida de SYCO. Previo a la existencia de este trabajo, SYCO ya funcionaba con un programa con interfaz web llamado EasyInterface, que se apoya en el uso de servidores provistos por Apache. Así, la mejor opción ha sido utilizar este componente auxiliar para integrar ambos componentes satisfactoriamente, detallando el proceso en el capítulo 7. La implementación del visualizador puede encontrarse en el repositorio GitHub dado por el enlace https://github.com/dhg98/Execution-traces-visualizer.
SYCO (Systematic testing tool for Concurrent Objects) is an analyzer of concurrent models that receives a concurrent program with specific parameters as input and provides as output all the possible interleavings of the program (traces), together with the sequence of actions taken to reach each of the final states. However, the output generated by this tool is not visual, what threatens its usability when the number of possibilities grows exponentially in what is known as state explosion problem. The objective of this end of degree project consists in developing a visualizer/analyzer of all the different traces that SYCO finds in an understandable way by a software developer. Since the output can be interpreted inherently as a tree, we will show an interactive tree, with different options for the users, both related to its traversal (we offer different ways to traverse over the tree) and related to the information shown (we allow the user to choose variables information, execution and state properties and the number of traces to show. Furthermore, we have also added a legend that directs the attention to specific nodes, according to the needs of the user). In this thesis, we will explain the necessary steps to install SYCO (chapter 3) and we Will document all the design process to create the visualizer, from the very beginning, with the decision of the image format, the programming language (SVG and JavaScript, respectively) and the input format required for it (chapters 4 and 5) to the decisions taken over the utilization of different components, its positioning and its style (chapter 6). After finishing the implementation, we attempted to make the visualizer work as a unit with SYCO, in order to avoid manual execution of it after obtaining the output from SYCO. Prior to this current work, SYCO was already working with EasyInterface, a program with a web interface that relies on servers supplied by Apache. For that reason, the best option has been to use this auxiliary tool in order to integrate both systems. This process is detailed in chapter 7. The implementation of the visualizer can be found in the GitHub repository given by the link https://github.com/dhg98/Execution-traces-visualizer.
Description
Trabajo de Fin de Grado en Doble grado en Ingeniería Informática y Matemáticas, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2020-2021, con URL https://github.com/dhg98/Execution-traces-visualizer
Unesco subjects
Keywords
Citation