Reference - modelint/shlaer-mellor-metamodel GitHub Wiki
A Reference is a collection of Attributes (referential attributes) defined in some source (formalizing) Class that collectively refer to all or, in special circumstances, part of an Identifier in some referenced Class.
Each referential Attribute in the formalizing class refers to an Identifier Attribute in the referenced Class, with all of the Identifier Attributes in the Reference composing the same Identifier.
Depending on how the Relationship is formalized (Generalization, simple or associative Association) the number of required References varies.
Here is an example of a simple Association formalization using a Simple Association Reference:
images/formalization-subsystem/reference-10.png
As shown in the second example below, the mapping is injective and not bijective. That is to say, each referential attribute is mapped in a Reference, but not every Identifier Attribute in the referenced Identifier need be mapped, even though they usually are.
images/formalization-subsystem/reference-20.png
Identifiers
- Ref + From class + To class + Rnum + Domain
Attributes
Ref
Each type of Reference has its own name. These names are G
for generalization, R
for simple (reference) and T
and P
for the association class reference types.
A G
Reference will originate in a subclass and refer to a superclass.
An R
Reference will originate in a participating class in an Association not formalized by an Association Class, referring to the Class at the opposing Perspective.
A T
and P
Reference will originate in an Association Class. Each Reference will refer along a distinct Perspective, thus,T
will refer to the T
Perspective and P
will refer to the P
Perspective. With a symmetric reflexive Association, however is only one Perspective, T
. In that case, both the T
and P
references are aligned on this single Perspective.
Type: Reference Type [ G | R | T | P ]