MixRig anti-pattern

Full name

Mixin With Same Rigidity

Type

Classification; Scope

Feature

Hierarchy; Mixin

Description

A class stereotyped as «Mixin» specialized only by other classes that have the same rigidity property, i.e., are all rigid or all anti-rigid.

Justification

As all non-sortals, mixins aggregated individuals that follow different identity principles. Its distinguishing characteristic, though, is that is semi-rigid, i.e., it behaves as a rigid type for some individuals as an anti-rigid for others. This anti-pattern analyzes mixins that, despite their capabilities, only generalize types with the same rigidity.

Contraints
  1. All sortals are rigid («Subkind», «Kind», «Quantity», «Collective» and «Category») or all sortals are anti-rigid («Role», «Phase» or «RoleMixin»)

Examples

Examples

Refactoring Plans
  1. [conditional] [Mod] Change mixin to category: if all subtypes are rigid, and no anti-rigid subtype is expected to specialize «Mixin», change the stereotype to «Category».

  2. [conditional] [Mod] Change mixin to roleMixin: if all subtypes are anti-rigid, and no rigid subtype is expected to specialize «Mixin», change the stereotype to «RoleMixin».

  3. [Mod] Change subtypes stereotypes: this solution is a recognition that the semi-rigidity of «Mixin» is correct and consists in changing the stereotype of one or more subtypes of «Mixin» to properly characterize the semi-rigidity.

  4. [New/Mod] Add subtypes: set new or existing types as direct children of «Mixin» in order to properly characterize the semi-rigidity.

References:

Prince Sales, Tiago. (2014). Ontology Validation for Managers.