In practice, this means that to make a reference, or at least
to save a ?¬?le containing a reference, we must also save any changed ?¬?les for all other
models whose elements it refers to. Similarly, we must also make sure that these ?¬?les
are placed immediately into version control: otherwise even though an element made
it onto disk, it may never have made it into the version control system. If the referring
?¬?le did then make it into version control, the version there would be inconsistent.
The reference to the element must be by some automatically generated unique
identi?¬?er. In a textual programming language, it is clear to all developers which names
may not be changed. In a graphical model, users are used to being able to change
names freely and have other elements cope with the change. If the referring elements
are within this model, that would indeed be true, but for elements outside it cannot be.
Using a GUID or similar approach will allow users to change names freely where that
is desired. Where it is not, the metamodel can use reuse by name reference anyway,
and the ?¬?le will contain no explicit link.
Using a GUID may also reduce the need to store the target ?¬?le??™s version information
in the link. If a simpler counter index is used, there is the risk that another
version of the same ?¬?le could contain the same index for a different object.
Pages:
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774