Formalizing Class Role - modelint/shlaer-mellor-metamodel GitHub Wiki
A Class may participate in any number of Relationships. If that Class houses a Reference formalizing that Relationship, it plays a formalizing class role.
For example, if a Class plays the role of a Subclass in some Generalization, it must house a Reference to that Generalization's Superclass. A Subclass is an example of a Formalizing Class Role. The same Class may play many formalizing roles, including none at all. For each such role, the Class houses one or more required References, depending on the type of Relationship.
A Class can play a role in a Relationship which is not a Formalizing Class Role. A Superclass, for example, is a role that a Class can play within a Generalization where it does not house any Reference formalizing that Generalization.
For each type of Relationship in Shlaer-Mellor, here is each kind of Formalizing Class Role:
images/formalization-subsystem/formalizing-class-role-10.png
Identifiers
- Rnum + Class + Domain
Attributes
No non-referential attributes