Table 3. OntoUML anti-patterns and the correction way.
| The anti-pattern | The method of correction |
|---|---|
| Association cycle | Chang the cycle to be closed or open cycle |
| Binary relation with overlapping ends | Declare the relation as anti-reflexive, asymmetric, and anti-transitive |
| Imprecise abstraction | Add domain-specific constraints to refer to which subtypes of the association end to be an instance of the other end may be related |
| Relation composition | Add OCL constraints which guarantee that if there is a relation between two types and one of them has subtypes, there must be constraints says that the subtypes are also in a relation with the other type |
| Relation specialization | Add constraints on the relation between the type and the super-type, declaring that the type is to be either a specialization, a subset, a redefinition or disjoint with relation SR |