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 pCypher 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

Tags
business, application, technology, between elements, automatic detection