Demo avatar
Abstract

Brief project description

Modelling and meta-modelling assistance with Extremo

New
Evaluation

Tool Performance

We evaluate the tool performance by measuring the execution time for different tasks

Boy
Evaluation

User Study

We evaluate the usefulness of Extremo perceived by engineers to construct or modify a model

Boy
Examples

Case Studies

We evaluate the project's usefulness by presenting a set of demonstration cases.

Sites avatar
Wiki

Instructions, screenshots and video demos

Examples of how to import resources, querying, constraint interpretation and integration with a modelling tool

Eclipse avatar
Tool support

Extending the tool

... with a new assistant, a new constraint interpreter, a new search or integrate the tool with an editor

Eclipse avatar
Contributions

Github and published contributions

Get an installable version of the project

Logo

Extremo

A tool for modelling and meta-modelling assistance

Ángel Mora Segura

A project made by MISO group in collaboration with BIG group and supported by the Ministry of Education of Spain (FPU grant FPU13/02698), the Spanish MINECO (TIN2014-52129-R), The RandD programme of the Madrid Region (S2013/ICE-3006), the Austrian agency for international mobility and cooperation in education, science and research (OeAD), by funds from the Austrian Federal Ministry of Science, Research and Economy - BMWFW (ICM-2016- 04969).

Contributions

This project has already (3) journal publications and (1) contribution to an international conference:

leader avatar

Modelling assistants based on information reuse: a user evaluation for language engineering. Ángel Mora Segura, Juan de Lara, Manuel Wimmer. Software and Systems Modeling.

link to publication
leader avatar

Extremo: An Eclipse plugin for modelling and meta-modelling assistance. Ángel Mora Segura, Juan de Lara. Science of Computer Programming.

link to publication
leader avatar

Automated modelling assistance by integrating heterogeneous information sources. Ángel Mora Segura, Juan de Lara, Patrick Neubauer, Manuel Wimmer. Computer Languages, Systems and Structures.

link to publication
leader avatar

An Extensible Meta-modelling Assistant. Ángel Mora Segura, Ana Pescador, Juan de Lara, Manuel Wimmer. In IEEE 20th EDOC, 2016. Viena, Austria.

link to publication

Get the tool

Research prototype and examples are available on Github

You can find installation details in the Wiki

Abstract

Model-driven engineering (MDE) often relies on domain-specific languages (DSLs) to develop complex systems. DSLs usually serve to build models that contain primitives and concepts specifically tailored to a particular domain. The abstract syntax of DSLs is described through a meta-model (which is itself a model), and hence the construction of models and meta-models is a common activity in MDE.

Constructing DSLs requires deep domain understanding, typically involving two roles: a domain expert, who has in-depth knowledge of a particular domain, and a meta-modelling expert, who is experienced in object-oriented design, class-based modelling, and language engineering. However, the latter may lack domain expertise, leading to uninformed decisions and compromised language quality.

Under the hypothesis that reusing heterogeneous knowledge helps build more accurate models more efficiently, this work proposes building a (meta-)modelling assistant. This way, the proposed system represents heterogeneous information sources with a common data model, supports its uniform querying and reusing information chunks for building (meta-)models. Moreover, to understand how and whether modelling assistants help in designing a new DSL, an analytical and empirical evaluation has been conducted. The evaluation tested whether a modelling assistant for information reuse would be useful to obtain more complete and correct (meta-)models, built in a more efficient way, facilitating the labour of the (meta-)modelling expert and demonstrating the benefits of introducing reusability practices in the early phases of software development.

The ideas proposed in this work have been implemented in a prototype application called Extremo, a modelling assistant that helps reuse information from heterogeneous artefacts, like models, meta-models, ontologies, or XML documents.

Integration

Handling heterogeneous sources

The tool supports models represented in Ecore/XMI, XSD/XML and ontologies. However new model representations can be supported with the definition of an extension point. To extend the tool follow the next instructions:

Eclipse > New > Other > Plugin project > ... > Finish

In the MANIFEST insert a Dependency to uam.extremo.core.extensions and to uam.extremo.core. Both dependencies give access to the core classes of Extremo.

Add an extension to extremo.core.extensions.assistant and then a new Assistant. Give the assistant a name, a class implementation, and list the file extensions the assistant will be applied to.

A new all-methods-empty class should be created implementing the IFormatAssistant class. This class needs to parse your format to our class structure (shown in the metamodel above).

Adding the dependencies
Selecting the extension
Assistant definition
Class implementation

Query Extensibility

The tool supports predicate-based searches and custom searches to query the common data model. New model queries can be supported with the definition of an extension point. To extend the tool follow the next instructions:

Eclipse > New > Other > Plugin project > ... > Finish

In the MANIFEST insert a Dependency to uam.extremo.core.extensions and to uam.extremo.core. Both dependencies give access to the core classes of Extremo.

Add an extension to extremo.core.extensions.search and then a new Predicate Based Search / Custom Search. Give the query a name, a class implementation, and a type from the data model to indicate in which level the query will be applied to.

A new all-methods-empty class should be created implementing the ExtensiblePredicateBasedSearch/ExtensibleCustomSearch class. In the predicate based search case, this class needs to return a boolean if the parametrized element matches with a condition. The Custom Search is open to interpretation.

Integration with an Eclipse modelling tool

actions

drag and drop

extremo.ui.extensions.actions

Illustrated with the UML2 Tree Editor, Extremo has an extension point to add an action contribution to the views (1). The extension point needs to implement the method execute(IEditorPart editorPart, ISelection selection) and create new elements into the model under construction (2). Then, the Editor Part will receive the selected elements, conceptually working as a model to model transformation (3).

extremo.ui.extensions.drop

Illustrated with an example of integration between Extremo and DSL-tao (1). Extremo has an extension point to add a drop support into a Graphical Editor based on GEF (2). The extension point needs to implement a handledrop(...) method that receives the list of semantic elements dragged to the editor (3).