DOI: 10.5281/zenodo.17948019
title: SoSYM - Submission "Returning from the Past, Back to the Future"

description:  

This repository provides the dataset and results for the evaluation of the paper "Returning from the Past back to the Future: Incrementally Reconstructing and Recommending a Metamodel History"

Contents

Evaluation Content



metamodels.zip: contains the used metamodels used in the evaulation

evaluation.zip: contains the data received by our evaluation. It contains the ChangeTrees created for each of the given metamodels, the real changes applied to the metamodel, and the time and memory used during the generation of the metamodel. For more information, consider the AdditionalInformation.pdf.

results.zip: contains the summerized results for each of ChangeTrees for the metamodels

RQ_results.zip: contains evaulated results from each of the RQs


 

Additional Information



Meta-MetamodelExample.pdf: contains additional information on how the meta-metamodel works. It shows the metamodel of our motivating example in our meta-metamodel representation. 

SoSym-Tool-Demo.mov: A video showing how the Interactive Reconstruction Tool works based on the motivating example from the paper


 

Tool and Source Code



Tools.zip: Contains the tools used for the evaluation. For an explanation on how to use it, see below or contact the authors.

source_code.zip: Contains the source code of our prototype tool and name similarity service. You need to have Lombok installed. In launchers, you find the main for both the interactive and evaluation mode. Type-refactor contains the code for the change reconstruction.



evaluation.py: Contains the Python script that extracts the values received by performing the evaluation. i.e., see evaluation tool



Running the tool

Requirements

Windows 10/11JDK 21 or above

Instructions

The tools consist of two main programs: 

Interactive Reconstruction ToolThis one allows users to interactively reconstruct the changes between two metamodel versions. Either use the preloaded metamodels (fhir,benchmark,types) or upload two emf files where you want to reconstruct the metamodel history step by-step (see Tools.zip) for an example 

java -jar interactiveTool.jar fhir  // to run the interactive tool with the FHIR metamodel preloaded

java -jar interactiveTool.jar benchmark  //to run the interactive tool with the benchmark metamodel preloaded

java -jar interactiveTool.jar type // to types to run the interactive tool with Papyrus Types metamodel preloaded

java -jar interactiveTool.jar metamodel pathToVersion1 pathTOVersion2 // to import to .ecore metamodel and compare them interactively

Example

java -jar interactiveTool.jar metamodel mergeTypeAndAttribute1.ecore mergeTypeAndAttribute2.ecore

Evaluation ToolThis is the tool used for the evaluation it either compares the preloaded metamodels or uses a provided metamodel (where it applies random changes) to create the change trees and extract the metrics needed for the RQs.

java -jar evaluationTool.jar benchmark // to run the evaluation with the benchmark metamodel preloaded

java -jar evaluationTool.jar type // to run the evaluation with the Papyrus types metamodel preloaded

java -jar evaluationTool.jar fhir STU3  // to run the evaluation with the FHIR STU3 preloaded

java -jar evaluationTool.jar fhir custom1  // to run the evaluation with the FHIR custom1 version preloaded

java -jar evaluationTool.jar fhir custom2  // to run the evaluation with the FHIR custom2 version preloaded

java -jar evaluationTool.jar metamodel <pathToTheMetamodel>  // to run the evaluation on a metamodel (applying random changes and detecting them)

java -jar evaluationTool.jar metamodel <pathToTheMetamodel> <pathToTheMetamodel2> // to run the evaluation on two given metamodel versions

java -jar evaluationTool.jar edapt <pathToEdaptHistory>  // to run the evaluation on a given edapt history

Running the WordVector name similarity serverjava "-Dmodel.path=glove.2024.dolma.300d.zip" -jar WordVectorRest.jar

Important: To run both the Interactive Reconstruction or the Evaluation Tool, the WordVector Server has to be running first.  Just run the server in a terminal by calling java "-Dmodel.path=glove.2024.dolma.300d.zip" -jar WordVectorRest.jar.  After the word vector model is successfully loaded, Ready should appear in the terminal. Then both other tools can be started.