• Aucun résultat trouvé

State of the Art: Tools

3.2 Domain Specific Languages Development EnvironmentsEnvironments

3.2.1 Generic Modeling Environment (GME)

GME is an modelling environment developed at Vanderbilt University. In GME, a DSML is described as a paradigm which is essentially a metamodel.

GME comes with a DSML plugin that, according to our defined criteria, is characterised as:

Language Evolution High: Evolving paradigms can be preserved if ele-ments, links and references are not renamed or removed;

Verification Medium: It provides a model and a metamodel checker for their structure and constraints.

No test case or Oracle generator is provided.

Custom validation categories can be added and the code generators can be modified to allow test and oracle generation;

Graphical Mapping Medium: This IDE supports decorators for both ele-ments and connections. The visual drawing of an object is achieved with the definition of Component Object Model (COM) also called decorators. In addition simple bitmaps can be used as icons;

Composition Medium: GME provides some syntactical constructs for com-position:

• Metamodel Merge operator that identifies metamodel join points as metamodel elements with identical names;

• Interface Inheritance;

• Implementation Inheritance.

It also allows re-use of registered paradigms by importing them into paradigms under development.

Transformation High: Transformations in GME are possible by using one of two possibilities:

1. Integrating with the GReAT system;

2. Using the generated C++ and Java interfaces generated from the metamodel structure.

Composition of transformations is not available.

3.2.2 Atom3

The Atom3 IDE is a Tool for Multi-formalism and Meta-Modelling. The main idea behind this tool is ’Everything is a model’. Models and metamodels are always manipulated as graphs. The metamodel based formalism is based on a Entity-Relationship model with additional constraints. Defined metamodels (formalisms) can by used as the base formalism for defining new metamodels.

Language Evolution Low: Language Evolution is not supported by Atom3;

Verification Medium: This tool provides neither test case nor oracle genera-tor. Model validation is executed on-the-fly during specification: model integrity and constraint solver are applied to the graph;

Graphical Mapping High: All elements defined in an Atom3 metamodel can be provided with a graphical representation.

In this development environment, the user can easily create or import new graphical elements. Bitmaps can be used to represent any kind of objects and connections and an internal graphical editor is made available for designing graphical elements.

Tool bars can be defined and generated;

Composition None: No explicit composition mechanisms are available within the Atom3 framework;

Transformation Medium: Only graph grammars can be used to perform model to model manipulation or to generate textual representations.

In order to express a model transformation, Python scripting language must be used.

No explicit functions of transformation composition is available.

3.2. Domain Specific Languages Development Environments 31

3.2.3 EMF/GMF

The Eclipse Modeling Framework (EMF) project is a modelling framework and code generation facility for building tools based on a structured data model. The metamodel formalism which is used for defining metamodels is the Ecore formalism.

The Graphical Modeling Framework (GMF) provides a generative com-ponent and runtime infrastructure for developing graphical editors based on EMF.

Language Evolution High: Evolving paradigms can be preserved if ele-ments, links and references are not renamed or removed. User can perform manual modifications and, by using a special comment in the Java source code, the modifications will be kept even if modifications are performed in the metamodel;

Verification High: Within the EMF/GMF, framework it is possible to eas-ily use JUnit test case generator and Oracle generator for the JUnit tests generated.

Simple serialisation tests are generated automatically from the meta-model. A functionality for model and metamodel validation is available by user action.

Taking into account that EMF/GMF are part of the Eclipse framework, it is easy to integrate with EclEmma a Java Code Coverage tool;

Graphical Mapping Very-High: In this metamodelling development frame-work all elements present in a metamodel can be graphically repre-sented. Groups of objects are possible to define as well as compart-ments and containers. An associated behaviour can be defined to each one of these;

Tool bars which may include menu items can be generated.

The user can easily use new graphical elements in most of the image formats including Scalable Vector Graphics (SVG). GMF allows to import an extensive set of Icons and Connection elements present in the standard Eclipse repository;

Composition None: The EMF/GMF environment does not support any kind of composition mechanisms;

Transformation High: Most of the transformation languages available are Ecore-based and can be installed as an Eclipse plug-in. This is an

advantage of using EMF/GMF. Graph grammars and QVT-based lan-guages are available (e.g. ATL and Kermeta).

In addition, it is possible to use the generated Java interfaces and to extend the automatic generated Java programs for model manipulation.

Functionalities for transformation composition are not available.

3.2.4 MetaEdit+

MetaEdit+ is a multi-user and multi-platform environment that supports simultaneously both system development and method development. It is a commercial tool developed by MetaCase. It is know for its successful case studies at Nokia, AT&Tm Fusjitsu Siemens, etc.

This environment uses Graph-Object-Property-Port-Role-Relationship (GOP-PRR) as the formalism for defining metamodels. Each one of these are de-nominated metatypes.

Language Evolution High: Generated and hand written code can be sep-arated. Protected blocks can be defined into the generated result;

Verification Medium/High: Provides metrics and model checking.

Does not generate automatically test cases but the code generator is configurable.

This tool also allows model animation for simple validation operations;

Graphical Mapping High: This tool provides a Symbol Editor and an extensive Library of available symbols. Symbols can be changed ac-cording to model data. Functionalities of Import/Export symbols are also available.

The user can create and configure menus, toolbars and a printing auto-layout is present;

All elements in the metamodel can be mapped into a graphical repre-sentation using multiple behaviours;

Composition Low: Provides a library of 70+ metamodels that can be re-used;

Transformation Medium: Transformation under MetaEdit+ is possible by using the Generator Editor, i.e. customisation of code generators. An-other option is to use the automatically generated interfaces.

There is no support for transformation composition.

3.2. Domain Specific Languages Development Environments 33