Por favor, use este identificador para citar o enlazar este ítem:https://uvadoc.uva.es/handle/10324/47157
Título
Desarrollo de un plugin para SemanticMerge para facilitar la integración de versiones de archivos Vensim
Autor
Director o Tutor
Año del Documento
2021
Titulación
Grado en Ingeniería Informática
Resumen
Vensim es un lenguaje de modelado de dinámica de sistemas. Incluye una parte de
de nición de ecuaciones y otra parte visual. Trabajar en equipo, de forma coordinada, con
control e integración de versiones, en Vensim es un gran reto. Por su parte, SemanticMerge
es una herramienta para visualizar diferencias y para mezclar versiones (merge) con ayuda
para la resolución de conflictos.
El objetivo de este Trabajo de Fin de Grado es desarrollar un parser externo de Vensim
para SemanticMerge, que a su vez será utilizado por la herramienta de control de versiones
gmaster. El parser funciona leyendo un archivo de entrada y generando un archivo YAML
con la información necesaria para que SemanticMerge sea capaz de leerlo y reconstruir el
archivo, obteniendo toda la información semántica y sintáctica del archivo en dicho proceso.
Este proceso se realiza en ambas versiones de un archivo cuando se lleva a cabo una fusión
o merge, para posteriormente resolver los conflictos y realizar el merge correctamente.
El trabajo ha sido desarrollado utilizando ANTLR4 para el desarrollo de la gramática así
como Java como lenguaje de programación principal. Para el desarrollo del proyecto se
adaptó SCRUM como marco de trabajo ágil.
Este proyecto forma parte del proyecto europeo H2020 LOCOMOTION que tiene como objetivo
el desarrollo de un modelo de evaluación integrado (Integrated Assesment Model, IAM), un
modelo complejo basado en dinámica de sistemas, que permite la simulación de escenarios
diferentes que afectan a largo plazo a diferentes indicadores, lo que permite determinar los
más favorables para un futuro sostenible. El IAM desarrollado en LOCOMOTION se
programa en Vensim de forma coordinada, participando 30 programadores de 13
instituciones europeas diferentes. Vensim is a system dynamics modeling language. It includes two main parts: an equation
de nition section and a sketch de nition section. Coordinated teamwork using integration
and version control tools when programming in Vensim is a great challenge. On the other
hand, SemanticMerge is a standalone application that allows to visualize changes between
diferent versions of a le and then merge these versions, helping to solve the con
icts that
arise.
This Final Degree Project aims to develop an external parser for SemanticMerge that
allows parsing Vensim les. This parser will also be used by the version control tool
gmaster.
The parser reads an input le and generates a tree descriptor YAML le containing the
information needed for SemanticMerge to reconstruct the le obtaining all the semantic
and syntactic information of the le in the process. This process is performed in both
versions of the le when a merge operation is achieved, allowing con
ict resolution, and
enabling a successful merge.
ANTLR4 is used for the development of the grammar as well as Java as the main
programming language. SCRUM was applied as an Agile framework adapted for the
development of the project.
This project is part of the European H2020 project LOCOMOTION. This project aims to
develop an Integrated Assessment Model (IAM), a complex model of the World and
regions, based on system dynamics, that allows the simulation of di erent scenarios that
long term afect diferent indicators and to determine the more favorable ones for a
sustainable future. The IAM developed in LOCOMOTION is programmed in Vensim in a
coordinated way by 30 programmers from 13 diferent European institutions.
Palabras Clave
SemanticMerge
Vensim
ANTLR4
Java
Idioma
spa
Derechos
openAccess
Aparece en las colecciones
- Trabajos Fin de Grado UVa [30038]
Ficheros en el ítem
La licencia del ítem se describe como Attribution-NonCommercial-NoDerivatives 4.0 Internacional