14. Language Customization Mechanisms

Every specific purpose and usage of an architecture modeling language brings about its own specific demands on the language. Yet, it should be possible to use a language for only a limited, though non-specific, modeling purpose. Therefore, the ArchiMate language, specified in the ArchiMate metamodel and described in Chapter 4 to Chapter 12, contains only the basic elements and relationships that serve general Enterprise Architecture modeling purposes. However, the language should also be able to facilitate, through customization[1] mechanisms, specialized, or domain-specific purposes, such as:

  • Support for specific types of model analysis

  • Support for the communication of architectures

  • Capture the specifics of a certain application domain (e.g., the financial sector)

The argument behind this statement is to provide a means to allow customization of the language that is tailored towards such specific domains or applications, without burdening the language with a lot of additional concepts and notations which most people would barely use. The remainder of this chapter is devoted to the customization mechanisms that are part of the ArchiMate language, and to a series of illustrative examples of such customizations.

14.1. Adding Attributes to ArchiMate Concepts

As stated earlier in this standard, the ArchiMate language contains only the elements and relationships that are necessary for general architecture modeling. However, users might want to perform model-based performance or cost calculations to attach supplementary information (textual, numerical, etc.) to the model concepts. Every concept in an ArchiMate model can have attributes attached to it. ArchiMate concepts can be enriched in a generic way with supplementary information by means of a “profiling” specialization mechanism (see also [9]).

A profile is a data structure which can be defined separately from the ArchiMate language but can be dynamically coupled with concepts; i.e., the user of the language is free to decide whether and when the assignment of a profile to a model concept is necessary. Profiles are specified as sets of typed attributes. Each of these attributes may have a default value that can be changed by the user.

Two types of profiles can be distinguished:

  • Pre-defined profiles: these are profiles that have a predefined attribute structure and can be implemented beforehand in any tool supporting the ArchiMate language

    Examples of such profiles are sets of attributes for ArchiMate concepts that have to be specified in order to execute common types of analysis.

  • User-defined profiles: through a profile definition language, the user is able to define new profiles, thus extending the definition of ArchiMate elements or relationships with supplementary attribute sets.

At least the following basic data types are allowed for these attributes:

  • String

  • Integer

  • Real

  • Boolean

  • Currency

  • Date

  • URL

In addition, the following complex types are supported:

  • Structure, consisting of one or more fields of a basic type

  • List, consisting of elements of one of the other types

The ArchiMate Model Exchange File Format [20] defines how these types are encoded and exchanged.

Examples

Table 10 shows possible profiles with input attributes needed for certain types of cost and performance analysis of architecture models [13]. Each “serving” relationship may have a weight (indicating the average number of uses); each (business, application, or technology) “service” may have fixed and variable costs and an (average) service time; and each structure element (e.g., business role, business actor, application component, device) may have fixed and variable costs and a capacity.

Table 10. Profile Examples
“Serving” Profile “Service” Profile “Structure Element” Profile

Attribute

Type

Attribute

Type

Attribute

Type

Weight

Real

Fixed cost

Currency

Fixed cost

Currency

Variable cost

Currency

Variable cost

Currency

Service time

Time

Capacity

Integer

Table 11 shows a generic profile that can be used to model cardinalities and role labels of relationships.

Table 11. Relationship Profile Example
Cardinality and Relation Roles Profile

Attribute

Type

‘From’ cardinality

Structure (lower bound, upper bound), e.g. 0..0, 0..1, 0.., 1..

‘To’ cardinality

Structure (lower bound, upper bound)

‘From’ relation role

String

‘To’ relation role

String

14.2. Specialization of Concepts

Specialization is a simple and powerful way to define new elements or relationships based on the existing ones. Specialized elements inherit the properties of their generalized elements (including the relationships that are allowed for the element), but some of the relationships that apply to the specialized element need not be allowed for the generalized element. Also, new graphical notation could be introduced for a specialized concept, but preferably with a resemblance to the notation of the generalized concept; e.g., by adding an icon or other graphical marker, or changing the existing icon. A specialized element or relationship strongly resembles a stereotype as it is used in UML. The stereotype notation with angled brackets may also be used to denote a specialized concept. Finally, for a specialized concept, certain attributes may be predefined, as described in the previous section.

Specialization of relationships is also allowed. Similar to specialization of elements, a specialized relationship inherits all properties of its “parent” relationship, with possible additional restrictions. For example, two specializations of the assignment relationship may be used to model responsibility versus accountability. Another example is a specialization of the flow relationship to model material flow in a supply chain.

Specialization of concepts provides extra flexibility as it allows organizations or individual users to customize the language to their own preferences and needs, while the underlying precise definition of the concepts is preserved. This also implies that analysis and visualization techniques developed for the ArchiMate language still apply when the specialized concepts are used.

Specialization of concepts is done by using the profile mechanism described in Section 14.1. The name of the profile is the name of the specialization, and it may have other attributes if relevant to the specialization. The specialized concept is modeled by assigning such a profile to the general concept.

The profile may also define a specific notation to denote the specialization. The default is the guillemet notation of UML for stereotypes (“«specialization name»”). Other options include specific icons, colors, fonts, or symbols. Note that multiple specialization profiles may be assigned to the same generalized concept; in the default notation, these are shown as a comma-separated list (“«specialization 1, specialization 2»”).

14.2.1. Examples of Specializations of Business Layer Elements (Informative)

Table 12 shows examples of specializations of Business Layer concepts.

Table 12. Example Specializations of Business Layer Elements
Parent Concept Specialized Concept Description

Business Actor

Individual

A natural person capable of performing behavior in the context of an enterprise.

Organizational Unit

Any named subdivision of an organization (e.g., a department).

Organization

An entity such as an institution, corporation, or association that has a collective goal and is linked to an external environment.

Threat Agent

Anything (e.g., an object, substance, individual, or group) that is capable of acting against an asset in a manner that can result in harm. This can be intentional; i.e., an attacker, but also unintentional; e.g., a well-intentioned, but inept, computer operator who trashes a daily batch job by typing the wrong command.

Business Service

Business Decision

A conclusion that a business arrives at through business logic and which the business is interested in managing.

Business Collaboration

Social Network

A social structure made up of social actors (individuals or organizations) and the connections between these actors.

Business Process

Business Activity

Atomic internal behavior element (at the considered abstraction level) that will not be decomposed any further.

Business Event

Threat Event
(Risk & Security Overlay)

Event with the potential to adversely impact an asset. An attack is a specific type of threat event that is the result of an intentional malicious activity of an attacker, which is a specific type of threat agent.

Loss Event
(Risk & Security Overlay)

Any circumstance that causes a loss or damage to an asset.

14.2.2. Examples of Specializations of Application Layer Elements (Informative)

Table 13 shows examples of specializations of Application Layer elements.

Table 13. Example Specializations of Application Layer Elements
Parent Concept Specialized Concept Description

Application Component

Logical Application Component

An encapsulation of application functionality that is independent of a particular implementation.

Physical Application Component

An application, application module, application service, or other deployable component of functionality.

Application Interface

Application-to-Application Interface

Interface that is used to communicate between application components.

Graphical User Interface

On-screen interface (GUI) with which a human user can interact with an application component.

14.2.3. Examples of Specializations of Technology Layer Elements (Informative)

Table 14 shows examples of specializations of Technology Layer elements.

Table 14. Example Specializations of Technology Layer Elements
Parent Concept Specialized Concept Description

Node

Logical Technology Component

An encapsulation of technology infrastructure that is independent of a particular product. A class of technology product.

Physical Technology Component

A specific technology infrastructure product or technology infrastructure product instance.

Device

Mobile Device

A portable device such as a smartphone or tablet.

Embedded Device

A computing device that is part of a piece of equipment.

Network

Wi-Fi Network

Wireless Local Area Network (WLAN).

Wide Area Network

Long-range data communication network.

Technology Service

Processing Service

Service used for processing data by a node.

Storage Service

Service used for storing data on a node, typically offered by a database or file system.

Communication Service

Service used for transporting information (e.g., voice, data) between nodes.

14.2.4. Examples of Specializations of Physical Elements (Informative)

Table 15 shows examples of specializations of physical elements.

Table 15. Example Specializations of Physical Elements
Parent Concept Specialized Concept Description

Equipment

Vehicle

A movable piece of equipment used for transportation purposes.

Train

A vehicle intended for use on a rail network.

Facility

Factory

A large-scale physical resource used for receipt, temporary storage, and redistribution of goods.

Material

Ore

Rock containing minerals, raw material in mining, and related industries.

Building Material

Material used in building and construction such as concrete, bricks and mortar, beams, and girders, etc.

Fuel

Material used as an energy source in, for example, production or transportation.

Distribution Network

Rail Network

Network for rail transport, on which trains are used.

Energy Grid

Network for distribution of energy, such as an electrical power grid or a gas distribution network.

14.2.5. Examples of Specializations of Motivation Elements (Informative)

Table 16 shows examples of specializations of motivation elements.

Table 16. Example Specializations of Motivation Elements
Parent Concept Specialized Concept Description

Driver

Metric

The extent, quantity, amount, or degree of something, as determined by measurement or calculation.

Assessment

Vulnerability
(Risk & Security Overlay)

The probability that an asset will be unable to resist the actions of a threat agent.

Risk
(Risk & Security Overlay)

The probable frequency and probable magnitude of future loss.

Goal

Business Objective

A time-bound milestone for an organization used to demonstrate progress towards a goal.

Control Objective
(Risk & Security Overlay)

Aim or purpose of specified control measures which address the risks that these control measures are intended to mitigate.

Principle

Business Policy

A directive that is not directly enforceable, whose purpose is to govern or guide the enterprise.

Requirement

Control Measure
(Risk & Security Overlay)

An action, device, procedure, or technique that reduces a threat, a vulnerability, or an attack by eliminating or preventing it, by minimizing the harm it can cause, or by discovering and reporting it so that corrective action can be taken.

Business Rule

An enforceable directive intended to govern, guide, or influence business behavior.

Example 36 illustrates the use of specializations of Business Layer and motivation elements to model the results of a risk analysis, and the control objectives and required control measures to mitigate the identified risks. This example uses the UML stereotype notation with angled brackets to denote specialized elements.

ex Specializations of Business Layer and Motivation Elements
Example 36: Specializations of Business Layer and Motivation Elements

14.2.6. Examples of Specializations of Strategy Elements (Informative)

Table 17 shows examples of specializations of strategy elements.

Table 17. Example Specializations of Strategy Elements
Parent Concept Specialized Concept Description

Capability

Capability Increment

A specialization of a capability realized by a specific plateau or a state in the architecture that represents a stage in the evolution of that capability.

Course of Action

Strategy

A high-level, broad-scope approach to achieve a long-term goal.

Tactic

A narrow-scope approach to achieve a short-term goal, used to detail a strategy.

14.2.7. Examples of Specializations of Implementation and Migration Elements (Informative)

Table 18 shows examples of specializations of implementation and migration elements.

Table 18. Example Specializations of Implementation and Migration Elements
Parent Concept Specialized Concept Description

Work Package

Program

A coordinated set of projects that deliver business benefits to the organization.

Project

A time- and resource-bound activity that delivers specific business benefits to an organization.

14.2.8. Examples of Specializations of Composite Elements (Informative)

Table 19 shows examples of specializations of compound elements. In addition to the specialization of single model elements, grouping can also be used to define specific compound elements.

Table 19. Example Specializations of Composite Elements
Parent Concept Specialized Concept Description

Grouping

Risk Domain
(Risk & Security Overlay)

A domain consisting of entities that share one or more characteristics relevant to risk management or security. A risk domain is also a context or set of conditions that affects a risk exposure level.

Grouping of Application Component, Application Function, and Data Object

Data Store

A repository for persistently storing and managing collections of data.

14.2.9. Examples of Specializations of Relationships and Relationship Connectors (Informative)

Table 20 shows examples of specializations of relationships and relationship connectors.

Table 20. Example Specializations of Relationships and Relationship Connectors
Parent Concept Specialized Concept Description

Flow

Money Flow

A flow of money between behavior elements.

Assignment

Responsibilities Assignment

Assignment from a business actor to a business role.

Behavior Assignment

Assignment from an active structure to a behavior element.

Or-junction

Or-join

A junction with two or more incoming triggering and one outgoing triggering relationship, representing that at least one of the incoming relationships must be triggered to trigger the outgoing one.


1. Note that this chapter was called Language Extension Mechanisms in previous versions of this standard. Since these customization mechanisms do not actually extend the language, it was decided to rename this chapter and these mechanisms.