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
“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 |
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.
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. |
14.2.2. Examples of Specializations of Application Layer Elements (Informative)
Table 13 shows examples of 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.
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.
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.
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. |
14.2.6. Examples of Specializations of Strategy Elements (Informative)
Table 17 shows examples of 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.
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.
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. |
14.2.9. Examples of Specializations of Relationships and Relationship Connectors (Informative)
Table 20 shows examples of 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. |