Nantes Université

Skip to content
Extraits de code Groupes Projets
README.md 3,58 ko
Newer Older
  • Learn to ignore specific revisions
  • hiba-coder's avatar
    hiba-coder a validé
    # Navigating the trace of executable domain specific languages through a trace domain query language TraceDQL
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    
    
    hiba-coder's avatar
    hiba-coder a validé
    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.
    
    hiba-coder's avatar
    hiba-coder a validé
    
    
    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).
    
    hiba-coder's avatar
    hiba-coder a validé
    
    To generate the execution trace, we rely on an existing trace language.
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    
    ## 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 
    	
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    ## Implementation
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    
    
    hiba-coder's avatar
    hiba-coder a validé
    * 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.
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    
    ## Setup
    To run this project:
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    1. Install Gemoc Studio.
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    1. In the language environment
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
        - Import the [Simple Trace project](https://github.com/gemoc/simpler-traces)
    
    hiba-coder's avatar
    hiba-coder a validé
        - Import the ***xTraceDQL_ATL***
    
    hiba-coder's avatar
    hiba-coder a validé
        - 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***
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    1. Run the project as Eclipse Application.
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé
    1. In the Modeling workbench
    
    hiba-coder's avatar
    hiba-coder a validé
        - 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.
    
    hiba-coder's avatar
    hiba-coder a validé
    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_) 
    
    hiba-coder's avatar
    hiba-coder a validé
        - Click on ***TraceDQL*** button may be found in the menu bar
    
    hiba-coder's avatar
    hiba-coder a validé
        - Choose the language of which the model being executed
        - Choose the project that you create 
        - the rest is optional
    
    hiba-coder's avatar
    hiba-coder a validé
    1. Now you may create traceDQL models (_New_ > _File_, do not forget to specify the  ***traceDQL*** extension), and Strat writing your queries.
    
    hiba-coder's avatar
    hiba-coder a validé
    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***.
    
    Hiba AJABRI's avatar
    Hiba AJABRI a validé