Newer
Older
# Navigating the trace of executable domain specific languages through a trace domain query language TraceDQL
In this project, we provide querying facilities to extract the data from the execution trace. To do so, we present a _parametric language_ Trace Domain Query Language (TraceDQL) an executable domain-specific language with textual syntax that allows the domain expert to write simple and effective queries that explore the trace and return the requested data whatever was the language of the model that has been executed. These provided querying facilities allow the domain expert to focus on the data that she want to retrieve without be in charge to understand the structure of the trace.
In this repository, we provide the corresponding plugin, which can be found in Language_Workbench/xTraceDQL_ATL. We also provide an SMS xDSL language designed for simulating industrial systems and we use Arduino Language previously designed to represent the structural and behavioral aspects of Arduino systems [Arduino Designer](https://github.com/mbats/arduino).
To generate the execution trace, we rely on an existing trace language.
## Table of contents
* [Technologies](#technologies)
* [Implementation](#implementation)
* [Setup](#setup)
## Technologies
Project is created in Gemoc Studio environment (Version: 3.6.0-SNAPSHOT) using :
* Eclipse Modeling Framework(EMF)
* kermeta3
* The languages in this repository are build thanks to the EMF ecosystem, we use :
* Ecore : for defining abstract syntaxes.
* kermeta3 : for defining the behavioral aspect by implementing of the operational semantics.
* ATL model transformation : for generating specific terms.
* EMF java project for developing extra plugins.
- Import the [Simple Trace project](https://github.com/gemoc/simpler-traces)
- Import the language for which a model will be executed and the trace will be generated to be analyzed by the TraceDQL queries. You may add ***xSMS*** or ***xArduino***
- Import the modeling project for which we had import its language form the Modeling_Workbench : ***sms_Models*** for ***xSMS*** and ***arduino_Models*** for ***xArduino***. Each modeling project contains models. You are ready to run each one of them by choosing _Executable model with Gemoc java engine_, filling the configuration template, and enabling Simple Trace in the _Engine Addons_ tab.
1. After the model is executed, an execution folder will be added to the executions, which contains the model being executed and the execution trace. The execution trace path can be found by : right-click on the file > _Properties_ > _Path_.
1. You may now use the TraceDQL language to gather the data that you want from the trace.
- Create new project (_New_ > _Project_ > _General_ > _Project_) and convert it to _xtext_ project (right-click > _Configure_ > _convert to xtext project_)
- Click on ***TraceDQL*** button may be found in the menu bar
- Choose the language of which the model being executed
- Choose the project that you create
- the rest is optional
1. Now you may create traceDQL models (_New_ > _File_, do not forget to specify the ***traceDQL*** extension), and Strat writing your queries.
2. You may use a predefined TraceDQL model queries that you may found in the folder ***TraceDQL_Models_ATL***; The project ***TraceDQL_SMS*** for models in ***sms_Models*** or ***TraceDQL_Arduino*** for models in ***arduino_Models***.