Validating ArchiMate

When to consider the use of ArchiMate?

Validating ArchiMateThe Open Group recently released the ArchiMate 2.1 specification; I think that there are five principle reasons to consider using the notation to describe the architecture of your enterprise. By design, ArchiMate is focused toward:

  • Providing a high-level of abstraction
  • Facilitating the construction of a layered enterprise architecture
  • Illustrating how business concepts are supported by IT systems, comprising both hardware and software
  • Tracing stakeholder concerns through to their realisation by the enterprise architecture
  • Showing the possible, and actual, evolution of an enterprise architecture through a number of recognisable intermediate states.

How does ArchiMate handle these things?

Approaching abstraction

In a similar way to modeling notations such as the UML and SysML, ArchiMate relies on a simple but powerful approach to creating a useful abstraction of a complex domain:

  • Identify the specific types of things that are pertinent
  • Identify the relationships between the types of things
  • Provide a graphical notation to illustrate the above

Types of concept

ArchiMate divides the specific types of things to be modelled into three core layers:

  • Business concepts (including actor, role, function, process, service and interface)

Validating ArchiMate - ArchiMate: Business Layer

Figure 1: A subset of the business layer concepts

  • Application concepts (including component, function, service and interface)

Validating ArchiMate - ArchiMate: Application Layer

Figure 2: A subset of application layer concepts

  • Technology concepts (including device, system software, function and interface)

Validating ArchiMate - ArchiMate: Technology Layer

Figure 3: A subset of the technology layer concepts

ArchiMate supplements the core types of things with two extensions for:

  • Motivation (including driver, goal, requirement, principle and constraint)
  • Implementation and migration (work package, deliverable, plateau and gap)

Relationships between concepts

ArchiMate specifies ten types of relationship that may be used between elements:

  • Composition
  • Aggregation
  • Assignment
  • Specialisation
  • Realisation
  • Used by
  • Access
  • Association
  • Triggering
  • Flow

Direct relationships

ArchiMate specifies the set of valid relationships that may exist between concepts. Relationships are restricted for both concepts belonging within a single core layer or extension, and also across layers. The detailed specification of all valid relationships between types is tabulated in Appendix B: Relationship Tables of the ArchiMate 2.1 specification (ISBN 978-94-018-0003-7).

Validating ArchiMate - ArchiMate - Direct Relationships

Figure 4: A syntactically (but not necessarily semantically) correct example showing all the available ArchiMate relationships

Derived relationships

ArchiMate also specifies rules for abstracting over a chain of relationships between three or more concepts:

Transitively applying this property allows us to replace a “chain” of structural relationships (with intermediate model elements) by the weakest structural relationship in the chain. – p. 94, ArchiMate 2.1 specification

Validating ArchiMate - ArchiMate - Derived Relationships

Figure 5: A chain of relationships, along with the derived relationship

How using an ArchiMate modeling tool can help

In theory, it is not necessary to use a dedicated modelling tool in order to draw ArchiMate diagrams. You could create a custom stencil with Microsoft Visio (for example) containing all the basic shapes of the elements and relationships. However, a good modelling tool can be used to positively enhance both:

  • Productivity in creating models
  • The correctness of the models

Both enhancements depend on automated model validation, at either the syntactic or semantic level.

Checking for errors in direct relationships [enhance correctness]

Ideally, your modelling tool should not allow you to draw an invalid relationship between two concepts in the first place. This can be prevented a priori whilst creating the initial drawing, by greying out or eliding the options to create invalid relationships. Alternatively (or additionally), the modelling tool can validate the relationships between elements within each diagram, highlighting where invalid relationships have been made, and suggesting valid alternatives.

Automatically deriving relationships between elements [enhance productivity]

Due to ArchiMate’s rules for abstracting over a chain of relationships, your modelling tool should be able to insert a correctly derived relationship between any two elements in a diagram, or at least inform you that no relationship can be derived at all.

Automating ArchiMate viewpoints

ArchiMate specifies twenty-six viewpoints that may be constructed using different combinations of element types and relationships. Ideally, your tool should be able to:

  • Validate any viewpoint(s) that you have already created. [enhance correctness]
  • Provide automated assistance with creating new diagrams through re-using existing model elements and their relationships. [enhance productivity]

How to do it? Let us help you!

The existing functionality of Sparx Enterprise Architect provides a good basis for fully automating the validation of ArchiMate models. Please contact us at info@dthomas.co.uk if you would like to discuss how you can gain access to our solution.