Sand Pile

Written by

in

Description

An EA is implemented with one elementary service per component resulting in many small components that are sharing data.

Context

Derived from: “Sand Pile”

Cause

Sand Pile may be caused by a wrong grouping of “atomic” capabilities.

Consequences

The large amount of small components may cause inefficiencies and maintenance problems.

Detection

Many small components exist that share data.

Solution

Regroup related elementary services into one component with a common interface.

Example

Many highly specialized car service workshops are working separately. It is not an enterprise that provides all car repair services at one spot.

Cypher query

MATCH (c)-[r2:AccessRelationship]-(d:DataObject) <br /> WITH  d, count(c) as cntCmps <br /> WHERE cntCmps>1 <br /> MATCH p =(s)<-[r1:RealizationRelationship]-(c)-[r2:AccessRelationship]-(d:DataObject) <br /> WITH c, count (d) as dataCnt  <br /> where dataCnt = 1  <br /> MATCH p =(s)<-[r1:RealizationRelationship]-(c)-[r2:AccessRelationship]-(d:DataObject) <br /> RETURN p

Cypher count query

MATCH (c)-[r2:AccessRelationship]-(d:DataObject) <br /> WITH  d, count(c) as cntCmps <br /> WHERE cntCmps>1 <br /> MATCH p =(s)<-[r1:RealizationRelationship]-(c)-[r2:AccessRelationship]-(d:DataObject) <br /> WITH c, count (d) as dataCnt  <br /> where dataCnt = 1  <br /> MATCH p =(s)<-[r1:RealizationRelationship]-(c)-[r2:AccessRelationship]-(d:DataObject) <br /> RETURN COUNT (DISTINCT d)

Diagram

Diagram for Sand Pile

Tags

soa, business, application, technology, cohesion, The Couplers

Related smells

All smells