eclipse-gemoc / gemoc-studio

gemoc-studio
Eclipse Public License 1.0
25 stars 22 forks source link

Unified Melange-less approach to represent and access dynamic data (ie. model state) #41

Open ebousse opened 6 years ago

ebousse commented 6 years ago

We (Benoit and me) discussed how to unify in the GEMOC Studio how dynamic data are defined in the language, and how they are manipulated at runtime for a given executed model.

Each metalanguage has its own way to define dynamic data (eg. aspect weaving, inheritance, separate metamodel, etc.), and its own way to represent dynamic data at runtime (one unique extended EMF model with both static and dynamic data, one static EMF model + one dynamic EMF model, one static model + non-EMF dynamic data, etc.).

The main problem is that we want to manipulate dynamic data (both its definition at design time, and the actual data at runtime) in a generic way to define generic tools, and in a specific way to define domain-specific tools.

At the moment, domain-specific manipulation is obtained through Melange (that generates the extended ecore at design time + convert into an extended model with a MelangeResource at runtime). But (1) this means extending Melange for each metalanguage (eg. the xmof keyword), and (2) Melange will soon be out of GEMOC.

Therefore, instead, we could aim for the following services provided by the metalanguage GEMOC integration:

One problem would remain: while it's probably do-able to provide a one way propagation of the model state to the GEMOC representations of the model state (specific and generic), but a bidirectionnal relationship would be quite annoying (eg. a tool that arbitrarily changes the dynamic data, without going through the interpreter of the language)

dvojtise commented 6 years ago

the following feature request in melange would probably contribute to that direction https://github.com/diverse-project/melange/issues/117