Type Inference Using Concrete Syntax Propoerties in Flexible Model-Driven Engineering

About

This website includes all the necessary information needed to reproduce the experiments presented in the paper "Type Inference Using Concrete Syntax Propoerties in Flexible Model-Driven Engineering". You can find step-by-step instructions on how to run the experiments in the Instructions section. All the source code needed can be downloaded from the Downloads section. In section Data all the raw data can be downloaded.

Abstract: In traditional Model-Driven Engineering (MDE) models are instantiated from metamodels. In contrast, in Flexible MDE, language engineers initially create example models of the envisioned metamodel. Due to the lack of a metamodel at the beginning, the example models may include errors like missing types, typos or the use of different types to express the same domain concepts. In previous work [3] an approach that uses semantic properties of the example models to infer the types of the elements that are left untyped was proposed. In this paper, we build on that approach by investigating how concrete syntax properties (like the shape or the color of the elements) of the example models can help in the direction of type inference in. We evaluate the approach on an example model. The initial results suggest that on average 64% of the nodes are correctly identified.

Instructions

The following image presents the experimentation approach overview as discussed in the paper. For each of the steps of the process, detailed instructions are provided. Readers can start from step 1 to generated their own models, muddles, features signatures lists and results or from any other step by downloading our files from all the previous steps which contain the artefacts generated as part of the experiment presented in the paper.

Fig. 1: An overview of the experimentation approach.

Data & Results

The example Muddle (.graphml), the feature signatures (.txt) and all the results (.xlsx) can be downloaded from this section.