Aplicación UmlConverter
Date
2023Abstract
El objetivo de este trabajo de fin de grado ha sido el desarrollo de una aplicación para la generación de diagramas de clases UML sobre proyectos ya existentes. Para ello, UMLConverter es capaz de leer el código fuente de una aplicación que le será proporcionada y genera un diagrama de clases correspondiente a la misma. Además, el programa realiza una pequeña evaluación del software indicando los niveles de calidad del código de la misma. UMLConverter es capaz de funcionar con programas en Python y en JavaScript, no se descarta la idea de seguir añadiendo la posibilidad de trabajar con más lenguajes en un futuro. Con este objetivo, he implementado UMLConverter de tal forma que es bastante sencillo generar un nuevo módulo para el lenguaje deseado y añadirlo sin tener la necesidad de cambiar prácticamente nada del programa actual. Para el desarrollo de este TFG he empezado con la preparación del proyecto, en la que he generado un calendario con los plazos para cada una de las tareas. También he realizado una búsqueda de proyectos similares y he generado una pequeña muestra con pequeños programas para probar su funcionamiento. En lo relacionado a los resultados de la ejecución del programa, no solo se genera una imagen con el diagrama, sino que se genera un informe en formato Markdown. En este informe aparece el diagrama de clases correspondiente con el tema deseado aplicado, también aparece una tabla con métricas para la evaluación del código de cada clase y una tabla de las métricas correspondiente a cada paquete. Por último, en este informe también aparece la definición de las métricas empleadas. The objective of this Thesis has been the development of an application for the generation of UML’s class diagrams on existing projects. For be able to do it, UMLConverter is able to read the source code of a given application and generate the corresponding class diagram. Moreover, the program makes a small software quality evaluation and shows to the user some metrics with the quality level of the program. UMLConverter is able to work with Python programs and JavaScript programs. There still the possibility of upgrade the program to allow it to work with more programming languages in the future. The program has been implemented on such a way that it is easy to develop and add a new module with the new language without needing to change almost anything of the actual program. To the development of this Thesis, I have started with the project preparation, in which I have generated a calendar with all the tasks and deadlines assigned to each one. Furthermore, I have searched about similar projects and I have generated some sample programs for trying the functionalities of this project. On the other hand, in the related with the UMLConverter execution results, it does not only generate an image with the class diagram, but also generates a Markdown report. That report shows the image with the legend of the selected theme. In addition, it shows some tables with the executed program metrics, one table with each class metric and one table with each package metric. At the end of the report, there is an explanation of each metric and how is the score of each class and package calculated.