2.2 Expressing Correspondences
Different authors have dealt with the problem of defining and expressing correspon-
dences between viewpoints, mainly when trying to address the issue of viewpoint con-
sistency checking. Some of the proposals, e.g., [10, 1], highlight the need to explicitly
define and establish these correspondences but do not represent them as independent
entities. Rather, they form part of the logical framework they define for checking the
consistency of viewpoint specifications.
Other authors explicitly represent the correspondences, specially when viewpoint
specifications are expressed as UML models, using different alternatives. One inter-
esting possibility is the use of OCL to define relationships between the metamodel
elements that represent the appropriate modeling concepts, as suggested by, e.g., [11].
This approach works very well when the correspondences are defined between all the
instances of certain modeling concepts, e.g., when every computational interface corre-
sponds exactly to one engineering interface (correspondence CN-2). However, there are
cases in which correspondences need to be established between particular objects of an
specification. The problem is that it is not possible at the metalevel to determine which
particular objects should be related. Therefore, it is important that correspondences can
be established between specific model elements, too.
UML 2.0 abstraction dependencies, possibly constrained by OCL statements, are
the natural mechanism provided by UML to represent a relationship that relates two
elements or sets of elements that represent the same concept at different levels of ab-
straction or from different viewpoints. Thus, ODP correspondences between viewpoint
specifications (for example, between enterprise objects and information objects, or be-
tween enterprise policies and information schemata) can be expressed as UML abstrac-
tion dependencies between the corresponding UML model elements.
However, as suggested by [12,13], viewpoint correspondences can also be used for
other purposes, e.g., change management in multi-view systems. Change management
implies consistent evolution of system specifications: if a view is modified for any rea-
son (e.g., change of some business rules or some QoS requirements), several changes
may need to be performed in other views in order to maintain the overall viewpoint con-
sistency. In this context, correspondences act as “binds” that link together the related
elements, transforming them if a change in one of them occurs, i.e., propagating the
changes to maintain consistency.
UML abstraction dependencies show to be insufficient for these purposes. The main
reasons are that they cannot store all the required information about the correspondence
they represent, and because they can be used to express existence of the correspon-
dence but not to enforce it. Therefore, Yahiaoui et al. define a new viewpoint, the link
viewpoint, whose elements are “links” that establish binds between elements in differ-
ent viewpoints. These links explicitly represent the ODP correspondences, and store
the relevant information about the relationships between the views and the information
related to each one (as attributes of the class that represents the link), thus guarantee-
ing traceability. A (change manager) tool has been developed for defining and enforcing
these links, thus providing automated support for change management and propagation.
We do not think that such correspondences constitute another ODP viewpoint. ODP
explicitly states that correspondences do not form part of any viewpoint. In addition,
19