Simple Constraints
Simple constraints that involve one object, or two objects and their link, provide the foundation for working with more complex constraints that involve multiple objects and their links.
Attributes
To specify a rule about the values of an object’s attributes, you can refer to an object’s attribute from the object itself by using the name of the attribute.
Within the context of an organization, the following expression indicates that the name of an organization may not be an empty string:
Name <> ''
Using the keyword self, this rule may be described
as follows:
self.Name <> ''
Notice that a literal string is enclosed in single quotes.
Figure 10-2 updates Figure 10-1 to
show how the rule is captured. Look specifically at the top
compartment for Organization.

Figure 10-2. Organizations with an OCL expression indicating that organizations must have names
Within the context of a person, the following expression indicates that a person must work more than 10 hours and less than or equal to 40 hours:
HoursAvailable > 10 and HoursAvailable <= 40
Using the keyword self, this rule may be described
as follows:
self.HoursAvailable > 10 and self.HoursAvailable <= 40
Notice that the keyword self is used at the
beginning of each occurrence of the HoursAvailable attribute. Also notice that I can access this attribute even though it is private, because the expression is written within the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access