Strict Layers Violation

Written by

in

Description

Archimate’s specification offers certain relationships between it’s core layers. They are realization and serving relationships. Serving is used when an element from upper layer use the services from lower layer and realization is used when a lower level realizes or implements the more abstract concept from the upper layer. The application and technology layers must communicate with the business layer with these two types of relations. Using other relation types is not syntactically restricted, although not suggested.

Context

Derived from: “Strict Layers Violation”
This violation very often occurs in the real world, although the model itself defined the layers and processes precisely.

Cause

Layers must be built based on conventions.

Consequences

Alterability is affected. The number of a layer’s potential clients will increase, and the dependency between layers will grow.

Detection

Check whether a relationship except serving and realization exists between core layers in the ArchiMate.

Cypher query

MATCH p = (a)-[r]-(b) <br /> WHERE a.ArchimateLayer <> 'null' and b.ArchimateLayer <> 'null' <br /> and a.ArchimateLayer <> b.ArchimateLayer <br /> AND NOT (r.Label = 'ServingRelationship' or r.Label ='RealizationRelationship') <br /> return p

Cypher count query

MATCH p = (a)-[r]-(b)  WHERE a.ArchimateLayer <> 'null' and b.ArchimateLayer <> 'null' and a.ArchimateLayer <> b.ArchimateLayer AND NOT (r.Label = 'ServingRelationship' or r.Label ='RealizationRelationship') return count (Distinct a)

Diagram

Diagram for Strict Layers Violation

Tags

business, application, technology, between elements, automatic detection

Related smells

    All smells