A good
metamodeling language will allow the metamodeler to easily specify a range of
common rules. Since these types of rules will be known by the generic modeling tool,
they can also be checked ef?¬?ciently.
No matter howwide the set of rule types offered, it will always be possible to invent
a rule that cannot be expressed with them. It can therefore be useful if the tool offers
the metamodeler a language to express arbitrary constraints. Using this language will
however be harder work for the metamodeler, and checking the constraints will be
harder for the tool??”particularly in large models or multiuser situations.
Various kinds of language have been used for this task:
. Tool programming language
. Higher-level or logic language
. OCL
. Generator language
The na?±??ve initial choice is often the same programming language the tool itself is
written in. While clearly easiest for the tool vendor, this language will not be well
suited to the task: it knows nothing of the domain of modeling languages and models.
Writing constraints will require a large amount of low-level code, and debugging this
mass will be a major dif?¬?culty.
For this reason several tools have turned to higher-level programming languages
such as LISP or Prolog. A problem here is that the metamodeler will normally have to
learn this newlanguage, and these languages are generally found to be hard to pick up.
Pages:
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712