Model-Driven Engineering (MDE) uses models as its main assets in the software development process. The structure of a model is described through a meta-model. Even though modelling and meta-modelling are recurrent activities in MDE and a vast amount of MDE tools exist nowadays, they are tasks typically performed in an unassisted way. Usually, these tools cannot extract useful knowledge available in heterogeneous information sources like XML, RDF, CSV or other models and meta-models.
We propose an approach to provide modelling and meta-modelling assistance. The approach gathers heterogeneous information sources in various technological spaces, and represents them uniformly in a common data model. This enables their uniform querying, by means of an extensible mechanism, which can make use of services, e.g., for synonym search and word sense analysis. The query results can then be easily
incorporated into the (meta-)model being built. The approach has been realized in the Extremo tool, developed as an Eclipse plugin.
Extremo has been validated in the context of two domains -- production systems and process modelling -- taking into account a large and complex industrial standard for classification and product description. Further validation results indicate that the integration of Extremo in various modelling environments can be achieved with low effort, and that the tool is able to handle information from most existing technological spaces.
The tool supports models represented in Ecore/XMI, XSD/XML and ontologies. But 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
The tool supports predicate based searches and custom searches in order 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.
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).
Get the tool
Research prototype and examples are available on Github
You can find installation details in the Wiki
Contributions
This project has already (1) contribution and (1) journal publication:
|
Automated modelling assistance by integrating heterogeneous information sources, Ángel Mora Segura, Juan de Lara, Patrick Neubauer, Manuel Wimmer. Computer Languages, Systems and Structures. JCR: 1.615 (Q2)
|
download |
|
|
An Extensible Meta-modelling Assistant, Ángel Mora Segura, Ana Pescador, Juan de Lara, Manuel Wimmer. In IEEE 20th EDOC, 2016. Viena, Austria.
|
download |
slides |