Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[gmt-dev] GMT and MOF/XMI, FAQ

Dear all.
Thank you very much for your answers to my questions, it was very interesting
and I think all my questions have been answered.

Regarding XMI, I think there is a misunderstanding about what it is. XMI is a mapping
from MOF to XML, which in its early version mapped MOF models to a DTD, and now
maps MOF models to a Schema. The Schema generated for MOF Model A is normally
called XMI-Schema of A, like the Schema generated from the MOF Model of UML is
what is commonly know as the XMI-Schema of UML, or for some people just XMI.

There is no XMI without MOF.

>From a practical point of view, MOF can be seen as a subset of the class-modeling
constructs of UML. MOF models look like UML, and its as easy to write a simple
MOF model as it is to write a simple UML model. If your model consists of
classes, their attributes and relations, they will look almost the same. The subtle and
less subtle differences between class-modeling in UML, MOF, MOF2 and EMF
are more of academic interest.


As someone looking from outside to your FAQ, I could have the following objections
to the formulations of your answers:

In your answer to "Is GMT intended as MDA tool platform?" you write:
  "where MOF etc. is certainly relevant, and where pragmatically a subset of
   MOF such as the Ecore from EMF should be sufficient for representing *models*..."

Objection:
(I think there was a typo here, the sentence starts wrong)
With MOF you define meta-models, and with EMF you generated from
the definition (in a subset of MOF2 called Ecore) an implementation
where models are represented as instances of generated Java classes, and
a persistence code is generated, which allows to serialize them in
the XMI-Schema generated from the MOF meta model. The sentence
gives the impression that you are not following this industrial view of MOF.
>From an academic point of view, your sentence of course makes sense,
in principle there is no difference between models and meta-models,
but you will loose industry people here.

In your answer to "What is the use of MOF within GMT?" you write:
  "In most commercial projects that use modeling, UML is used to define the models, not
   MOF. In the last years there has emerged a standard to exchange models: XMI."

Objection:
Given the fact that XMI is a mapping from MOF to XML, people may be confused after
this answer.

Further in your answer to the same question you write:
  "Users of the GMT tool set will model in a Domain Specific Language and are probably
  not concerned in what language the meta-model for this DSL is made."

Objection:
This is really dangerous. Look at what happened in academic, research and science: people have
30 years of success-stories about applications of Domain Specific Languages, and still, it is considered
as exotic, and in industry, they are not widely using it. The problem of all this academic work was
exactly that people where not concerned in what language the meta-model for their DSL was made.
MDA gives one standard way for defining the abstract syntax of domain-specific languages: MOF.
MOF is a chance, of making DSL applications main-stream.

I worked 5 years on a PhD thesis about a DSL specification framework, and we wrote a lot of
software for this. One thing I learned was, that all this academic work is useless in industry if you
rely on the knowledge of things like EBNF or, even worse, formal methods. Now there is the
chance to use what has been defined by industry for industry: MOF.



Taking a tool like Fuut-je as starting point is certainly a good idea. As well, things like explicitly writing
down all MOF models, or generate some of the code from a MOF model do not need to be made in
the beginning. However, making the kind of statements you made about MOF could be contra productive.

Especially the way how Fuut-je is compared to EMF at the end opens more questions than it answers:
- why is making a difference whether I generate the XML with Fuut-je  or EMF?
- is the velocity template part a independent component, or is Fuut-je monolytic? It sounds like
  model to XML in the first step and XML to any code with Velocity in the second.

Please do not misunderstand me: a code generation tool using Velocity templates sounds useful,
transforming data of data-models into XML sounds useful as well.

General Model Transformer sounds like transform models of meta-model A into models
of meta-model B. EMF gives no answers to this, it only allows to map meta-models into
implementations including a graphical editor, and an XMI serializer. With the EMF add-on
XSD, one can start with a Schema, generate a meta-model for the schema, and have the
resulting serialization implementation comply with the initial Schema. Interesting are as
well developments, where things are integrated with GEF, and one uses GEF to do
advanced visual editors for models, whose meta-model is done with EMF.

The example of use for Fuut-je sounds more like traditional code generation technology.
Is this a misunderstanding? If your understanding is that code is a model as well, then,
yes, from an academic/research point of view I can agree. But again, you will loose
people from industry, if you have such a view.

Best Regards,
Philipp Kutter

A4M applied formal methods AG
www.a4m.biz
kutter@xxxxxxx

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


Back to the top