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 13, 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[2] 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.
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 be able to, for example, perform model-based performance or cost calculations, or to attach supplementary information (textual, numerical, etc.) to the model elements and relationships. Every concept in an ArchiMate model can have attributes attached to it. ArchiMate elements and relationships 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 elements or relationships; i.e., the user of the language is free to decide whether and when the assignment of a profile to a model element 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 elements and relationships 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
Example
Table 11 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 11: Profile Example
“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 |
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 elements and relationships 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 elements or relationships are used.
Specialization of concepts is done by using the profile mechanism described in Section 15.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 generalized 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»”).
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 |
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 |
Any circumstance that causes a loss or damage to an asset. |
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. |
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. |
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. |
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 |
The probability that an asset will be unable to resist the actions of a threat agent. |
Risk |
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 |
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 |
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.
Example 36: Specializations of Business Layer and Motivation Elements
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. |
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. |
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 |
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. |
Table 20 shows examples of specializations of relationships.
Table 20: Example Specializations of Relationships
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. |
Downloads of the ArchiMate documentation are available under license from the Download link within the ArchiMate information web site. The license is free to any organization wishing to use ArchiMate documentation entirely for internal purposes. A book is also available from The Open Group Library as document C197.