R151 - modelint/shlaer-mellor-metamodel GitHub Wiki

R151 / Generalization

Formalizing Class Role is a Subclass, Referring Class or Association Class


The formalization method varies for each type of Relationship.

A Generalization is formalized using the Subclass role where the Subclass refers to the Superclass.

A non-associative Association (one formalized without an Association Class) is formalized by designating one of the participating classes as the Referring Class. This class refers to the Class at the opposing Perspective.

And, in an associative Association, the Association Class is designated as the formalizing role referring to the Class on each Perspective.

Formalization

Subclass.(Name, Rnum, Domain) -> Formalizing Class Role.(Class, Rnum, Domain)
Referring Class.(Class, Rnum, Domain) -> Formalizing Class Role.(Class, Rnum, Domain)
Association Class.(Class, Rnum, Domain) -> Formalizing Class Role.(Class, Rnum, Domain)