Class Model Descriptions
Some rules modeled
Here is a summary of some of the rules captured in this subsystem.
A class must have at least one identifier
How? R21, 1..* multiplicity
An identifier consists of at least one attribute
How? R22, 1..* multiplicity
An attribute may or may not participate in an identifier
How? R22 0..* multiplicity
An attribute may participate in an identifier only if that identifier is defined on the same class as the attribute
How? Note how the referential attributes are formalized in the Identifier Attribute class. This class refers to the identifier of Identifier (Number + Class + Domain) where Number has been renamed as “Identifier” and the identifier of Attribute (Name + Class + Domain) where Name has been renamed as “Attribute”. Since both the Attribute and the Identifier must belong to the same class, the (Class + Domain) attributes have been merged together. In other words, a single pair of values (Class, Domain) simultaneously refers to both an Attribute and Identifier instance. For example, we would say that the attribute “Name” in class “Airport” of domain “Air Traffic Control” participates in identifier “1” of class “Airport” in domain “Air Traffic Control”. But we constrain the values of class and domain to be the same for both. So we condense our statement to just say “Name” participates in identifier “1” for class “Airport” of domain “Air Traffic Control”.
An Identifier is either defined by the modeler or it is automatically constructed (and required) based on relationship formalization rules
How? R30 generalization In other words, some identifiers are defined by the modeler and others are automatically constructed. Identifiers like Student.ID on the class Student or Course Number on the class Course are defined by the modeler. So these are “Modeled Identifiers”. But consider the association class Enrollment that formalizes the many-many relationship of students enrolling in courses. The referential attributes Student -> Student.ID and Course -> Course.Number in the Enrollment class must, taken together, constitute an identifier of Enrollment. That is a “Required Referential Identifier” because the modeler doesn’t get a choice.
An attribute is either constrained to hold values referring to those of some identifier attribute or it does not
How? R21 Generalization
In other words, every attribute is either a Referential Attribute or it is not.