If the name of the referred object should change, all other model elements
using it will still refer to the correct object. In some cases, of course, the extra level of
indirection provided by a string can be useful, but the facility to refer directly to an
object when necessary is vital. Any tool supporting strings will allow references by
name; only by also supporting direct references can the metamodeler be given the
choice of which method is most appropriate in each case.
Constraints on Property Values Although most properties are strings, they
are by no means all free-form strings. In early versions of tools, there is often noway to
check the input for a given property, and generators tend to spit out the value as is. If
the value contains characters that are illegal in the context of the output ?¬?le, this will
368 TOOLS FOR DSM
lead to errors either during compilation or, worse, at runtime. For instance, a string
property to be used as a variable name may contain a space.
There are two possible solutions, discounting the idea that modelers should simply
remember which characters to use in which ?¬?elds. Either the generator facility must
allow ?¬?ltering or translation of strings from the model, or the metamodeling language
must allow the speci?¬?cation of checks on property values. The former is probably
better, as it allows more human-readable names in the model, but the latter approach is
also useful.
Pages:
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704