Section: Software and Platforms

EMF Views (Model Views)

URL: http://emfviews.jdvillacalle.com/

The Eclipse Modeling Framework (EMF) is widely used in the Eclipse community: defining domain models and generating corresponding source code, modeling software architectures, specifying DSL concepts or simply representing software/user data in different contexts. This implies that any software project involves a large number of heterogeneous but interrelated EMF models.

To make matters worse, not all participants in the project should have the same kind of access/views on the models. Some users only need to see some parts of one model, others have to get the full model extended with data from another model, or simply access to a combination of information coming from different interconnected models. Up to now, creating such perspectives transparently in EMF was almost impossible.

Based on the unquestionable success/usefulness of database views to solve similar problems in databases, EMF Views aims to bring the same concept to the modeling world. Thanks to the three main constructs (inspired from SQL) offered by the tool, designers can create new model views: SELECTing a subset of elements from a model, PROJECTing only some of the properties of those elements and/or JOINing them with elements from other models. A model view is a special type of model whose instances are directly computed at runtime based on the model view definition and concerned actual model(s).

EMF Views is currently being developed in the context of the TEAP industrial project http://www.teap-project.org/ , by showing different possible applications of model views including:

  • Software architect/developer views relating UML design models and Java code models (cf. Eclipse MoDisco);

  • Enterprise architect views linking (BPMN) business process models, (ReqIF) requirements models and (TOGAF) architecture models;

  • View querying using dedicated technologies (e.g. Eclipse IncQuery);

  • View transformation using dedicated technologies (e.g. Eclipse ATL).