HomoFunc anti-pattern
- Full name
Homogeneous Functional Complex
- Type
Classification; Scope
- Feature
Part-Whole
- Description
A functional complex type connected to a single part through a «ComponentOf» relation.
- Justification
If a whole is composed by a unique type of part, it is most likely that all of the part’s instances play the same role w.r.t. their whole. That homogeneous structure is not a characteristic of a functional complex.
- Contraints
Only functional complexes may instantiate the Whole.
Only functional complexes may instantiate the Part.
Whole is not indirectly connected, at the whole end, to any componentOf.
partOf’s lower bound multiplicity of the part end must be greater or equal to 2.
- Examples
- Refactoring Plans
[Mod] Set as membership: Change the functional nature of Whole to and change the stereotype of the «ComponentOf» to «MemberOf».
[New] Add functional parts: Create one or more functional parts for Whole.
[New] Add part subtypes*: Create one or more subtypes of Part and connected them to Whole through exclusive «ComponentOf» relations. The original relation might be kept, but if so, the new relations must subset, redefine or specialize it.
References:
Prince Sales, Tiago. (2014). Ontology Validation for Managers.