Constraint Programming for Type Inference in Flexible Model-Driven Engineering

About

This website includes the algorithms and all the necessary information needed to reproduce the experiments presented in the paper "Constraint Programming for Type Inference 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: Although domain experts usually have the knowledge of the concepts that are used in their domain, they often lack the technical skills to translate that knowledge into Model-Driven Engineering (MDE) approaches. Flexible or bottom-up modelling has been introduced to assist with the involvement of domain experts by promoting the use of simple drawing tools. While in traditional MDE the process starts with the definition of a metamodel which is used for the instantiation of the models, in bottom-up MDE, example models are defined at the beginning letting the domain experts and/or language engineers to focus on expressing the concepts rather than spending time on technical details of the metamodelling infrastructure. The metamodel is then created manually or inferred automatically. However, there are some trade-offs for the exibility that bottom-up MDE offers; among others that of having nodes in the example models left untyped reducing the re-usability of the example models in the iterative process of the language definition and evolution. In this paper, we propose a novel approach that assists in the inference of the types of untyped model elements using Constraint Programming. We evaluate the proposed approach in a number of example models to identify the performance of the prediction mechanism and the benefits it offers. The reduction in the effort needed to complete the missing types reaches up to 91.45% compared to the scenario where the language engineers had to identify and complete the types without guidance.

Instructions, Data & Results

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.