Description
A subtle form of Duplication, this smell exists when numerous elements do the same thing using different combinations of data or behavior.
Context
Derived from: “Combinatorial Explosion”
Cause
Lack of refactoring and awareness of changing concerns, making naive design decisions.
Detection
Services implement identical behavior but rely on different data sources. According to the ArchiMate specification, if two abstractions realize the same behavior, each can fully implement the behavior. However, both services provide identical functionality in this scenario while accessing separate data sources, leading to duplication.
Solution
Factor out strategies, such that the common functionality is provided once.
Example
The existence of “Combinatorial Explosion” in the EA domain may have different reasons. According to the graphical example, two services provide the same functionality but get the data from two different sources because the data can not be shared.
Cypher query
MATCH (a)-[r:RealizationRelationship]->(b) <br /> WITH b, COUNT (a) AS implCount <br /> MATCH p = (d)-[r1:AccessRelationship|AssociationRelationship]-(a)-[r:RealizationRelationship]->(b) <br /> WHERE implCount>1 <br /> RETURN pCypher count query
MATCH (a)-[r:RealizationRelationship]->(b) WITH b, COUNT (a) AS implCount MATCH p = (d)-[r1:AccessRelationship]-(a)-[r:RealizationRelationship]->(b) WHERE implCount>1 RETURN count (distinct a)Diagram

Aliases
Missing Encapsulation
Tags
business, application, technology, The Dispensables, between elements, abstraction
Related smells
- Duplication (relates)