BinOver anti-pattern
- Full name
Binary Relation between Overlapping Types
- Type
Logical
- Feature
Association
- Description
A binary relation whose end types are overlapping characterizes this anti-pattern.
- Justification
Modelers often do not perceive by themselves that two or more types overlap. This anti-pattern makes them aware of that and confronts modelers with the possibility to specify binary relation properties, like reflexivity, transitivity and symmetry.
- Constraints
The Binary Relation Between Overlapping Types (BinOver) corresponds to an association, of any stereotype, that connected two types that compose an overlapping set. It means that the same individual may instantiate both ends of the relationship. A given relation <R> between types <Source> and <Target> characterize a BinOver occurrence when:
<Source> equals <Target>
<Source> is a direct or indirect subtype of <Target>
<Target> is a direct or indirect subtype of <Source>
<Source> and <Target> are sortals («Subkind», «Role» or «Phase») that share a common identity provider («Kind», «Quantity», «Collective») and there is no generalization set which makes them explicitly disjoint
<Source> and <Target> are relators that share a common super-type and there is no generalization set which makes them explicitly disjoint
<Source> and <Target> are modes that share a common super-type and there is no generalization set which makes them explicitly disjoint;
<Source> and <Target> are mixins («Category», «Mixin» or «RoleMixin») that directly or indirectly generalize at least one common sortal («Kind», «Quantity», «Collective», «Subkind», «Role», «Phase»)
<Source> and <Target> are mixins («Category», «Mixin» or «RoleMixin») that share a common mixin super-type and none of their subtypes are sortals
- Examples
- Refactoring Plans
[Mod] Fix stereotype: change the stereotype of the relation to fit a desired binary property
[OCL] Enforce binary property: create OCL invariant to enforce a desired binary property (as long as it is compatible with the embedded constraints of the stereotype).
[New] Enforce disjointness: make the related types disjoint by the specification of a disjoint generalization set.
References:
Prince Sales, Tiago. (2014). Ontology Validation for Managers.