Monday, April 26, 2010

EMF Facet, a new project for model customization and extensibility

How to dynamically extend and combine existing Ecore definitions without having to modify them?

EMF Facet, a new project we have proposed to create under EMFT, will propose dynamic extension mechanisms for all EMF-based tools exposing a view on a model:
  • Navigation tools (browser, navigator, etc);
  • Graphical modeling tools;
  • Code or documentation generation (M2T) tools;
  • Model-to-model transformation (M2M) tools.

Our proposition provides a solution to introduce new viewpoints (or "facets") on existing models:

  • Extending an existing metamodel (Ecore model) in a non-intrusive way by adding new types, attributes, operations and relations. New relations could be used to compose several models by linking their elements.
  • Computing an extension by executing queries against an existing model; queries will be implemented by making use of existing query mechanisms (e.g. considering Java, ATL, EMFQuery, Xpath, etc)
The Query "subClassifiers" visible as a "virtual" relation on Class

Some of these mechanisms have already been developped in the MoDisco project. But, as they could be reused by tools not related to software modernization (the scope of the MoDisco project), we have decided to contribute the corresponding components to EMF Facet.

In a previous post, I have presented these components (Facet Manager and Query Manager).

In another post, I have also illustrated how Facets can be used to extend the Java metamodel to highlight JUnit concepts.

1 comment:

  1. Hi I've been trying to find about MoDisco for months I'm a Computer Science post-graduate student in UK at University of Leicester and we’ve chosen MoDisco as a theme for an essay. My name is Renata Brogan and I would like to ask you a few questions If I can... Or if you can indicate a source of information where I can research about MoDisco!!!
    1 - In Mo Disco software metrics are based in SMM, so I can't find any source of information about how the metrics are generated, if there is a specific compiler to generate the metrics from a specific legacy system.
    2 - How the SMM in MoDisco is related to KDM and the discovery managers.