Topic 6 – Archimate Overview

I was recently asked to put together an overview of Archimate to present to an audience of systems engineers and enterprise architects.  I have long been interested in modeling languages, so this was right up my alley.  I’d like to share some of what I put together for the readers not familiar with Archimate.  Please not this was put together before I had time to digest the newly released ArchiMate 3.0 specification.

ArchiMate is an open and independent enterprise architecture modeling language maintained by The Open Group. It is partially based on the IEEE 1471 standard. The language is used to describe, analysis and show a visual representation of the architecture within the enterprise and across the various business domains. Because ArchiMate is billed as an enterprise architecture language we are spending more time reviewing it.

ArchiMate differs from UML and BPMN in that it is used to describe the relationships between concepts in different architecture domains. UML is for modeling more detailed concepts such as software products and BPMN is used for modeling business processes.

ArchiMate uses the concepts of layers, services, and core elements. The higher layers make use of the services provided by the lower layers. So in other words, the services flow from the bottom up. There are three main layers:

  • Business Layer: Deals with business processes, services and the functions of business units. This layer offers its products and services to external customers, which are in turn used in the organization by “business actors and roles.”
  • Application Layer: Deals with software applications that support the business and application services which are realized by software applications.
  • Technology Layer: Offers infrastructure services (processing, storage, network communications) needed to run applications, realized by computer and communication hardware and system software3.

Each of these layers gets further divided into sub-layers. For example, the business layer could have a secondary layer supporting business processes.   The application layer maybe sub-divided into end-user applications that might make use of services that support applications.

And each of these three layers has three core element types: Passive structure, Behavior, and Active structure.

  • Active Structure Elements are entities capable of performing behavior.
  • Behavior Elements are units of activity performed by one or more Active Structure Elements.
  • Passive Structure Elements are elements which Active Structure Elements perform behavior.

The ArchiMate 2.0 specification adds two more extensions: Motivation and Implementation & Migrations (Figure 1).

  • Motivation models the elements that “motivate” enterprise design and operation. Part of its concepts are: stakeholder, driver, assessment, goal, requirement and principle.
  • Implementation & Migration allow for the models to implement all aspects of EA, as well as migration between generations of implemented architectures. It’s concepts include: work package deliverable, plateau and gap.


Figure 1. Archimate 2.0 Layers

While ArchiMate is an important standard, it is not without its criticisms for lacking such things are capability mapping, ambiguity of concepts (multiple uses of the same concept) and a lack of execution semantics5. Additionally, ArchiMate is criticized for having morphed from a general purpose EA language to an overly IT centric language.

Even more importantly, ArchiMate does not provide any validation means of the models with respect to their correctness, consistency, completeness or comprehension. While languages such as UML and SysML provide validation mechanisms of their models through hooks into simulation tools, no such pathway exists in ArchiMate.

An additional problem with ArchiMate is that it’s support in tools varies from vendor to vendor and does not appear to be as consistent as languages standards supported by the Object Management Group (OMG). There is some talk about The Open Group and OMG working together to link ArchiMate with UML, however at this time there seems to be very little progress on that front.