Any constraint that applies to an object must also hold for all its subtypes. In addition, all arcs require that objects at their terminals must be subtypes of the objects at the corresponding terminals of their supertypes. Figure 8 shows that the user has colored Person yellow, and this attribute has been inherited by its subtypes, Child and George . A domain description using the system description of KDraw shown in Figure 7. This problem also serves to explain some of the complexity of Figure 7.
Constraints are predicates which are associated with objects.
The constrain editor activated by the attributes dialog box. Figure 10 shows the constraint editor which the user has activated by clicking the value field of the constraints attribute in the attribute dialog box. Users may select constraints from a library by selecting them from the list on the right. If a constraint has parameters, a dialog will automatically pop up to give the user a chance to edit the parameters. The selection of possible constraints is filtered based on the type of the object being edited.