Model
elements link to other elements in a wide variety of ways: relationships, shared
properties, objects as properties, subgraphs, and so on. The exact set of link types
and their semantics will be determined by the tool??™s meta-metamodel. The metamodel
may specify additional information about some of these links, for example, an object
might be held in a property as a simple reference or as a strict aggregation. This
information can be used to make choices about which subelements should also be
copied and in which cases the copy should share the same subelement as the original.
However, even with this information from the meta-metamodel and metamodel,
there will often be choices that could be left to the modeler. The choice to use copy by
value rather than copy by reference tends to be a concession to pragmatic needs, and so
too with the choice to copy deeper than normal. For these cases it is useful if a tool
offers the ability to choose what kinds of links to follow and how deeply.
One possible cause for deep copying is ad hoc, opportunistic time saving: an
element to be created may be similar to an existing element. Although many kinds of
similarities like this can be factored out into their own variation points, allowing a
simple reference or higher level object to make the difference, there will always be
cases that the modeling language cannot handle perfectly.
Pages:
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771