Veuillez patienter...

Accueil  >  Ressources  >  MAD

MAD: Model Aggregator eDitor for EMF Models



The creation or modification of EMF models is performed interactively with the EMF generated editors or graphical modelers. These editors can easily construct model elements and the relationships between them. Unfortunately, the features they make available to set the element properties are much less convenient to use. Some editors offer specific GUIs but most of them provide only the generated standard properties view.

This properties view is not all the time adapted to the needs because it often involves a lot of information that can be useless depending on the use case. Therefore, the search for a particular property can be quite tedious. Another shortcoming appears when assigning a value to a reference, the selection of an element performed from a very large candidates list is not very user friendly.

MAD is a tool that was created to replace the standard properties view in order to make model editing easier. It allows using a configuration to provide custom edition form for each type of item to edit. MAD doesn't require code generation and any configuration change is applied immediately. The edition form is composed of configurable widgets, the elements to edit and their features are obtained from query made on the edited models. MAD is fully scalable, it provides a set of basic widgets but it' s possible to create your own widgets, it comes with OCL and some MAD macros as query language but it's possible to create your own language and interpreter to extend your MAD configuration.


MAD provides a form view composed of widgets for displaying and updating any properties owned by an editing model and its linked models.

Compatibility and interoperability:

MAD Form:

  • Set of configurable Widgets:

    • Input widgets:
      • - Text, Number, Date and timestamp, Boolean.
      • - Combo, List and PickList form embedded or popup.
      • - Xtext element Editor.

    • Navigation between elements:
      • - Navigation list.

    • Output widgets for read only or computed values:
      • - Text.
      • - Internet link.
      • - Google Map.

    • Composite elements rendering:
      • - Flexible widget.

    • Command Button for launching actions (command).

    • Extensible by creation of custom widget.

  • Widgets layout:
    • Configurable displaying order.
    • Tab separation for improving clarity.
    • Concept of Layers providing filtered logical view point.

MAD Configuration concept:

  • View configuration: specification of template (widgets group) for metamodel types to edit.
    • - Widget type definition.
    • - Widget values are defined by queries for obtaining model elements and their properties.
    • - Visibility and editability defined by constraints.
    • - Add commands and their action queries for acting on the model (create, delete, move elements or else).
  • All configurations are reusable using implicit (Ecore inheritance) or explicit inheritance, composition is also allowed.

Query languages and evaluators:

  • Custom specific evaluators can be easy created and added to MAD.
  • Queries provide multi-languages, multi-models and sub queries support.
  • Queries can be declared and shared by several configurations.

Models handling by MAD:

  • Main model / Foreign model : the editing model is considered as the main model for others models linked
    by a semantic relation. These models are called Foreign models. Mad can manage both main models and
    foreign models.
  • Models elements and their properties are accessed using queries.
  • Element creation, deletion or moving are processed in MAD transactional queries.
  • MAD can also use and handle DSL Xtext models.

Other Functionalities:

  • I18N support for all labels and messages.
  • Validation rules.
  • Referencial for queries, commands and constants.

How to Install

  • First download an Eclipse Indigo.
  • Before installing MAD you need to install Xtext (minimum version 2.3.1).
  • Finally, install the MAD feature available on Sysord update site at

If you want to use MAD with UML Designer you need to also install the feature UML Designer Support.
If you want to use MAD with a modeler generated with GMF you need to install the feature GMF Support.