GEMOC Studio V0.0.1 2014/05/06

Major release.


1. GEMOC Studio Overview

The GEMOC Studio is an eclipse package that contains components supporting the GEMOC methodology for building and composing executable DSMLs.

It includes the two workbenches:

  • The GEMOC Language Workbench: intended to be used by language designers (aka domain experts), it allows to build and compose new executable DSMLs.
  • The GEMOC Modeling Workbench: intended to be used by domain designers, it allows to create and execute models conformant to executable DSMLs.

Each workbench comes with some basic illustrating examples that can be installed from eclipse (File>New>Example…)

2. Features in GEMOC Studio 0.0.1 (2014-05-06)

This section describes all the features available in the studio. There is two categories of features :

  • GEMOC main features : all the components used by the studio user while he follows the GEMOC process (defining a new language or using a workbench language)
  • Additional features : all other components that are integrated to the studio to ease the development of modeling frameworks.

2.1 GEMOC Main Features

This section lists the features that are explicitly used by the current GEMOC process.

2.1.1 Ecore Tools

EcoreTools provides a complete and state of the art graphical modeler to create, edit and analyze Ecore models.

Website : http://www.eclipse.org/ecoretools/

Documentation : http://www.eclipse.org/ecoretools/doc/

2.1.2 GEMOC Animation

This feature animates graphical models according to a running execution. It is integrated to the Eclipse Debugger UI, and highlight running model components on graphical views and editors. It is based on Sirius. This component is developed in the context of the GEMOC ANR project.

Website : Not yet available

Documentation : Not yet available

Source code : Available on the gemoc-dev git repository : gemoc-dev/fr/obeo/dsl/sirius/animation

2.1.3 GEMOC Execution Engine

This feature allows to run a given model according to an xDSML definition. It uses the solver to compute the steps of the simulation. The interface provides launcher facilities to run a new simulation. This component is developed in the context of the GEMOC ANR project.

Website : Not yet available

Documentation : Deliverable notes D4.2.1

Source code : Available on the gemoc-dev git repository : gemoc-dev/org/gemoc/execution/engine

2.1.4 GEMOC Language Designer

The language designer provides means to create new executable languages.

It gathers services from other features to provides :

  • Language definition tools
  • Editor definition (textual, graphical) tools

This component is developed in the context of the GEMOC ANR project.

Website : Not yet available

Documentation : Not yet available / partly documented in D1.3.1 and D4.1.1

Source code : Available on the gemoc-dev git repository : gemoc-dev/ org/gemoc/gemoc_language_workbench/

2.1.5 GEMOC Modeling Workbench

The Modeling Workbench provides the means to use and run languages in an integrated way. It gathers services from other features to provides to the user :

  • GEMOC Execution Engine
  • GEMOC Animation
  • Model edition

This component is developed in the context of the GEMOC ANR project.

Website : Not yet available

Documentation : Not yet available / partly documented in D1.3.1 and D4.1.1

Source code : Available on the gemoc-dev git repository : gemoc-dev/ org/gemoc/gemoc_modeling_workbench/

2.1.6 K3

K3 is a metaprogramming environment based on an object-oriented DSL optimized for metamodel engineering. It works as an extension of xTend language to provide aspect oriented and model typing facilities. It is used to define the Domain Specific Action (DSA) in the GEMOC process.

Website : https://github.com/diverse-project/k3/wiki

Documentation : Not yet available / partly documented in D1.1.1

2.1.7 Sirius

Sirius is an Eclipse project which allows you to easily create your own graphical modeling workbench by leveraging the Eclipse Modeling technologies, including EMF and GMF.

Website : http://eclipse.org/sirius/

Documentation : http://www.eclipse.org/sirius/doc/

2.1.8 TESL

TESL is a tagged event solver. It comes with a language to write the specification. It is studied in Gemoc as a possible alternative to timesquare solver.

Website : http://wwwdi.supelec.fr/software/ModHelX/

Documentation : Not yet available

2.1.9 Timesquare

TimeSquare is an MDK (Model Development Kit) provided as a set of Eclipse plugins that can be downloaded or installed over an existing Eclipse. TimeSquare is based on the formal Event Constraint Language (ECL), which allows the manipulation of logical time. An ECL model is defining the link between the couple AS/DSA and the MoCC.

Website : http://timesquare.inria.fr/

Documentation : Not yet available

2.1.10XTend

Xtend is a statically-typed programming language which translates to comprehensible Java source code. Syntactically and semantically Xtend has its roots in the Java programming language.

Website : https://www.eclipse.org/xtend

Documentation : https://www.eclipse.org/xtend/documentation.html

2.1.11 XText

Xtext offers to create textual syntaxes and associated editor.

Website : http://www.eclipse.org/Xtext/

Documentation : http://www.eclipse.org/Xtext/documentation.html

2.2 Additional Features

This section lists the features that have been added to the studio in order to ease the development.

2.2.1 Acceleo

Acceleo is a pragmatic implementation of the Object Management Group (OMG) MOF Model to Text Language (MTL) standard.

Website : http://www.eclipse.org/acceleo/

Documentation : http://www.eclipse.org/acceleo/support/

2.2.2 ATL

ATL (ATL Transformation Language) is a model transformation language and toolkit. In the field of Model-Driven Engineering (MDE), ATL provides ways to produce a set of target models from a set of source models.

Website : https://www.eclipse.org/atl/

Documentation : https://www.eclipse.org/atl/documentation/

2.2.3 EEF

The Extended Editing Framework aims at giving another way to improve the EMF model creation phase by providing new services dedicated to editing and using more appealing editing elements.

Website : http://www.eclipse.org/modeling/emft/?project=eef

Documentation : https://wiki.eclipse.org/EEF

2.2.4 EGit/JGit

EGit is an Eclipse Team provider for the Git version control system. Git is a distributed SCM, which means every developer has a full copy of all history of every revision of the code, making queries against the history very fast and versatile.

The EGit project is implementing Eclipse tooling on top of the JGit Java implementation of Git.

Website : https://www.eclipse.org/egit/

Documentation : https://www.eclipse.org/egit/documentation/

2.2.5 EMF Compare

EMF Compare provides comparison and merge facility for any kind of EMF Model.

In a nutshell this project provides:

  • a framework you can easily reuse and extend to compare instances of your models
  • a tool integrated in the Eclipse IDE to see the differences and merge them.

It includes a generic comparison engine and the ability to export differences in a model patch. It is integrated with the Eclipse Team API meaning that it enables collaborative work on models using CVS, SVN and GIT.

Website : http://www.eclipse.org/emf/compare/

Documentation : http://www.eclipse.org/emf/compare/documentation/latest/

2.2.6 Groovy

Groovy is an agile and dynamic language for the Java Virtual Machine.

Website : http://groovy.codehaus.org/

Documentation : http://groovy.codehaus.org/Documentation

2.2.7 m2e

The goal of the m2e project is to provide a first-class Apache Maven support in the Eclipse IDE, making it easier to edit Maven’s pom.xml, run a build from the IDE and much more. For Java developers, the very tight integration with JDT greatly simplifies the consumption of Java artifacts either being hosted on open source repositories such as Maven Central, or in your in-house Maven repository.

Website : https://www.eclipse.org/m2e/

Documentation : https://www.eclipse.org/m2e/documentation/

2.2.8 Modhel’X

Modhel’X is an heterogeneous execution engine, with a few models of computation, but without examples.

Website : http://wwwdi.supelec.fr/software/ModHelX/

Documentation : Not yet available

2.2.9# Mylyn

Mylyn is the task and application lifecycle management (ALM) framework for Eclipse. It provides:

  • The revolutionary task-focused interface : Realigns the IDE around tasks so that you see only the code that’s relevant
  • A task management tool for developers
  • A broad ecosystem of Agile and ALM integrations : Dozens of extensions integrate Mylyn with ALM and developer collaboration tools

Website : https://www.eclipse.org/mylyn/

Documentation : https://www.eclipse.org/mylyn/start/

2.2.10 OCL

The Eclipse OCL Project provides an implementation of the Object Constraint Language (OCL) OMG standard for EMF-based models.

Website : http://www.eclipse.org/modeling/mdt/?project=ocl

Documentation : https://wiki.eclipse.org/OCL

2.2.11 QVTo

QVT Operational component is a partial implementation of the Operational Mappings Language defined by the OMG standard specification (MOF) 2.0 Query/View/Transformation. In long term, it aims to provide a complete implementation of the operational part of the standard.

Website : http://www.eclipse.org/mmt/?project=qvto

Documentation : https://wiki.eclipse.org/QVTo

2.2.12 Subversive SVN

The Subversive project is aimed to integrate the Subversion (SVN) version control system with the Eclipse platform.

Website : https://www.eclipse.org/subversive/

Documentation : https://www.eclipse.org/subversive/documentation.php

2.2.13 UML Designer

UML Designer is a graphical tool to edit and visualize UML 2 models.

Website : http://marketplace.obeonetwork.com/module/uml

Documentation : http://www.obeonetwork.com/group/uml-designer/page/reference-documentation