Software Catalog – SLE

In addition to the software in the highlights section, the team develops many tools and prototypes to support empirical research.
Please have a look to the sofware listed in the Inria Software Information Base about the Software Language Engineering (SLE) research axis of the team. (Sorted in alphabetical order)

Functional description: The GEMOC Studio is an eclipse package that contains components supporting the GEMOC methodology for building and composing executable Domain-Specific Modeling Languages (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 designersto create, execute and coordinate models conforming to executable DSMLs. The different concerns of a DSML, as defined with the tools of the language workbench, are automatically deployed into the modeling workbench. They parametrize a generic execution framework that provide various generic services such as graphical animation, debugging tools, trace and event managers, timeline, etc.

Scientific description: The language workbench put together the following tools seamlessly integrated to the Eclipse Modeling Framework (EMF):

– Melange, a tool-supported meta-language to modularly define executable modeling languages with execution functions and data, and to extend (EMF-based) existing modeling languages.
– MoCCML, a tool-supported meta-language dedicated to the specification of a Model of Concurrency and Communication (MoCC) and its mapping to a specific abstract syntax and associated execution functions of a modeling language.
– GEL, a tool-supported meta-language dedicated to the specification of the protocol between the execution functions and the MoCC to support the feedback of the data as well as the callback of other expected execution functions.
– BCOoL, a tool-supported meta-language dedicated to the specification of language coordination patterns to automatically coordinates the execution of, possibly heterogeneous, models.
– Sirius Animator, an extension to the model editor designer Sirius to create graphical animators for executable modeling languages.

Functional description: INCREMENT is a modeling workbench for acquiring, modeling, and analyzing regulatory requirements. The initial use cases are regulatory requirements for nuclear instrumentation and control systems.

Functional description: Kermeta is a powerful meta-programming environment based on an object-oriented DSL (Domain Specific Language) optimized for metamodel engineering. It provides a language workbench based on EMF (Eclipse Modelling Framework) and the tools needed to construct and use modelling languages, as well as to define model manipulation tools. Notably, it can be used to specify and build executable DSLs with tool support for model animation and debug.

Scientific description: Kermeta is used in several cases:
– to give a precise semantic of the behavior of a metamodel, which then can be simulated,
– to act as a model transformation language,
– to act as a constraint language.

Functional description: Kompren is a domain-specific modelling language to model model slicers for a particular domain (captured in a metamodel). The knowledge gained from practical experience and current model slicers, lead to the design choices of the Kompren language. The primary objective of Kompren is the selection of classes and properties in an input metamodel. Kompren promotes the definition of slicers that slice all necessary elements to make the slice a valid instance of the input metamodel. Kompren also facilitates the relaxation of the conformance required by the input metamodel. Kompren offers a set of language features to generate model slicers that can still be parameterized to process the model slice for a specific purpose.

Scientific description: Inspired by program slicing, model slicers are tools that extract a subset of model elements for a specific purpose. Model slicers provide a mechanism to isolate and focus on parts of the model, thereby improving the overall analysis process. Model slicers find application in different domains. For instance in model-driven engineering, given a model operation on a large metamodel, model slicing can extract the effective metamodel used by the operation, for various purposes: model operation comprehension, analysis, etc. Similarly in human-computer interaction, understanding and manipulating large models require visualization techniques to provide meaningful navigation capabilities. Model slicing can be used to slice large models graphically. It thus permits users to focus on model elements of interest thanks to visualisation techniques based on model slicing.

Functional description: Malai is a Java and implementation of the architectural design pattern of the same name. Malai can be viewed as an major step beyond MV* patterns where the controller/presenter has been completely rethought to explicitly consider user interactions and actions as components of the architecture.

Functional description: Melange is a language workbench which helps language engineers to mashup their various language concerns as language design choices, to manage their variability, and support their reuse. It provides a modular and reusable approach for customizing, assembling and integrating DSMLs specifications and implementations.

Scientific description: Melange is a follow-up of the executable metamodeling language Kermeta, which provides a tool-supported dedicated meta-language to safely assemble language modules, customize them and produce new DSMLs. Melange provides specific constructs to assemble together various abstract syntax and operational semantics artifacts into a DSML. DSMLs can then be used as first class entities to be reused, extended, restricted or adapted into other DSMLs. Melange relies on a particular model-oriented type system that provides model polymorphism and language substitutability, i.e. the possibility to manipulate a model through different interfaces and to define generic transformations that can be invoked on models written using different DSLs. Newly produced DSMLs are correct by construction, ready for production (i.e., the result can be deployed and used as-is), and reusable in a new assembly.

Melange is tightly integrated with the Eclipse Modeling Framework ecosystem and relies on the meta-language Ecore for the definition of the abstract syntax of DSLs. Executable meta-modeling is supported by weaving operational semantics defined with Xtend. Designers can thus easily design an interpreter for their DSL in a non-intrusive way. Melange is bundled as a set of Eclipse plug-ins.

Scientific description: Sirius Animator technology focuses on the basic execution framework and model debugging environment. It contains a set of generic runtime services that can be shared among the different execution engines (facilities for debugging, graphical/textual animation and execution trace management). It also contains a Java-based execution engine.