6.2.2 Representation independence
The second rule extends the tool independence, allowing you to
have multiple representations of the same graph made with the same
tool
. For example we could have
two different diagram representations of a graph: the first representation could
be aimed at programmers and the second, omitting some details, at
managers.
To understand representation independence two aspects need
to be separated: the concept and its representation.
Table 6-1 illustrates the difference.
Information in the Object Repository can be viewed as a two-by-two grid. The
vertical axis represents the distinction between types and instances, i.e.
between languages and the models made with them. The horizontal axis represents
the distinction between concepts and representations, e.g. between a given
conceptual object and a particular representation of that object as a symbol at
a certain place in a diagram. A conceptual object is one that just has a type,
properties and maybe a decomposition, appears in generators and browsers, and in
other modeling tools would have been considered as an entry in a Data
Dictionary.
|
Concept
|
Representation
|
Type
|
Language components, e.g. a graph type
|
Property dialogs, symbols
|
Instance
|
Model components, e.g. a graph
|
Diagrams, matrices, tables and their contents
|
Table 6-1. Representation independence.
In MetaEdit+ each
concept can have multiple representations, and all representations of a given
concept refer to the same concept. For example at the graph level (graph can be
loosely equated with model) each graph in MetaEdit+ can be viewed and edited
either as a graphical diagram, as a matrix, or as a table. Because the graph is
conceptually the same in all the representations, changes of the graph’s
properties in one representation will also affect other representations of the
same graph.
Moreover, each model can have multiple representations of
the same paradigm: diagram, matrix or table. For example, the object model of a
sales system can have multiple diagram representations, and the conceptual
information is common for all of them.
Creating and modifying representations of graphs
Representation management for graphs is accessible in two
ways: when they are created or used, and when they are removed. An example of
the former can be found every time a graph is opened with a selected editor and
a dialog for creating new representations or selecting one of the available
representations opens.
Deleting graph representations
Another aspect of managing representations is their deletion.
Graph representations can be removed through browsers by selecting the graph and
choosing
Delete Representations... from its pop-up menu. This operation
opens a dialog showing a list of representations together with information about
their type (i.e. diagram, matrix or table) and creation
date.
Element representations
The conceptual graph also includes information about the
elements of the graph, such as its objects and
relationships
. Representation
independence also covers these elements: any element can have multiple
representations in the same representation, in the same representation paradigm,
or it can be represented in different tools differently.
An example of the first can be found from
Figure 6–2 in which a concept
tempOffset can have multiple representations in the same diagram. An
example of the second is the situation in which the concept
tempOffset is
represented in several different diagram representations. An example of the last
element representation is a situation in which the concept
tempOffset is
represented as a rectangle in a selected place of the diagram, and in a matrix
representation the same entity can form part of the axis of the matrix. Still in
all of these representation alternatives the design information about the
tempOffset is the same and changes to that information through any of
these representations will also affect other representations of the
tempOffset.
Figure 6–2. Three representations for the concept ‘tempOffset’.