show all comments


More or less languages: panel at MODELS 2012

November 26, 2012 14:18:46 +0200 (EET)

This year MODELS conference had a panel discussion “unified vs. domain-specific” - a topic that has been touched earlier at MODELS too. This year audience was asked at the end of the panel share their opinions and the result was clearer than in 2005 panel: Vast majority (over 80%) voted towards more languages.

While everybody can vote and have an opinion, obviously the best approach would be listening those who have truly applied both approaches. While I’ve also tried to twist UML with stereotypes and tagged values - and always found profiles more complex and less powerful than plain metamodeling - it was particularly nice to read thesis of Kirsten Mewes as she had applied both language design approaches with MetaEdit+.

Since I have never went so far that I would implement the same language in two ways, it was good to find someone who had done that: defined the concepts, rules (semantics) and notation along with tool support for a railway domain. This effort nicely demonstrates the difference between UML+profiling and metamodeling:

Using RCSD in MetaEdit+ by Kirsten Mewes

1) Some of the rules presented with metamodeling tools of MetaEdit+ takes place in two pages, and with UML profiles along with OCL that would take tens of pages. If we count all the rules from the language defined as found from the appendix, profiles require at least 2 times more space than plain metamodeling. The exact comparison is bit hard since the checks implemented with MetaEdit+ also describe how the model should be corrected whereas the profiles with OCL constraints perform checking only.

2) Usability between the resulting languages is huge: the metamodel-based language mimics closely the notation of the domain whereas UML-models with profiles stay as … classes.

3) Changing the metamodel reflects automatically to rules and can be also traced to rules defined with MERL (generator) whereas OCL lives in different space than the metamodel. This causes the usual problem in UML tools supporting profiles that if the metamodel is changed the rules do not update or cannot be traced. (* this happens also in the UML itself as its definition has OCL rules for elements that have actually been removed half-decade ago… Well, it is called a standard :-(

The conclusion of the thesis says it well: “In comparison, the usage of language frameworks [MetaEdit+ metamodeling] has been proven superior to profiles”. Keeps me wondering why some people still considers the use of UML profiles. If you are considering different ways to define langauges, even with UML profiles, drop me an email (jpt@meta...) and let’s look together what the language would look like when defined with pure metamodel approach.