Reuse also changes some preconceptions that we may have from simpler cases of
modeling. For instance, looking at the case where an object is reused in several graphs,
it is clear that an object cannot itself store all of its connections to other objects. In one
project an objectAmay connect to B and C, but whenAis reused in a different project
370 TOOLS FOR DSM
that may have changed. The information about connections should thus be stored in
each graph, and when we ask questions like ???what are the subclasses of X,??? we must
provide extra context: ???. . . in graphs of project 1.??? To take a concrete example from
Chapter 9, we cannot simply ask ???what application follows the Time application????,
since the Time application is reused in several Logical Watches. We must provide
more context: ???. . . in the TASTW Logical Watch.???
Links to Subgraphs A main reason to support multiple graphs is to allow the
partitioning of a large model into several graphs. An immediate extension of this is to
build a top-level graph where each object links to the corresponding lower-level
graph. This kind of structure is found in many modeling languages, for example Data
Flow Diagrams (Gane and Sarson, 1979) and the various kinds of hierarchical state
transition diagrams.
The metamodeler must be able to specify which object types can link to subgraphs,
andofwhichtypes.
Pages:
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709