Properties

Properties (Attributes)

The ArchiMate 3.1 Specification [1], talks about adding additional attributes to ArchiMate elements and relations:

“…​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 3.1 Specification
Section 15.1 “Adding Attributes to ArchiMate Elements and Relationships”

The specification also suggests a method to combine these attributes into sets of “profiles”:

“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.”

— Archimate 3.1 Specification
Section 15.1 “Adding Attributes to ArchiMate Elements and Relationships”

The ArchiMate Exchange File Format supports a mechanism for defining referenceable Property Definitions that declare Property Name and Property Type. These may be referenced by ArchiMate concepts and relations (and also by other artifacts, such as the model itself and the graphical nodes and connections) and given actual values.

The ArchiMate Exchange File Format uses the word “Properties” and “Property” together with the XML tags properties and property. These can be regarded as “attributes” and “attribute” in ArchiMate terms. This is also to avoid possible confusion with XML (or similar binding) attributes.

An Example

As shown in Table 1, the ArchiMate 3.1 Specification provides an example of a set of attributes for a “Service Profile”:

Table 1. Attributes for a “Service Profile”
Attribute Type

Fixed Cost

Currency

Variable Cost

Currency

Service Time

Time

Possible data values for these attributes might be:

  • Fixed Cost: $5,000

  • Variable Cost: $6,000

  • Service Time: 09:00:00

The ArchiMate Exchange File Format can represent these attributes and types by the use of Property Definitions, and references to these with actual Property Values; see Table 2.

Table 2. The Use of Property Definitions
Property ID Property Name Property Type Property Value

pid-1

Fixed Cost

currency

$5000

pid-2

Variable Cost

currency

$6000

pid-3

Service Time

time

09:00:00

The three Property Definitions are declared in the XML file as follows:

<propertyDefinitions>
    <propertyDefinition identifier="pid-1" type="currency">
        <name xml:lang="en">Fixed Cost</name>
    </propertyDefinition>
    <propertyDefinition identifier="pid-2" type="currency">
        <name xml:lang="en">Variable Cost</name>
    </propertyDefinition>
    <propertyDefinition identifier="pid-3" type="time">
        <name xml:lang="en">Service Time</name>
    </propertyDefinition>
 </propertyDefinitions>

The <propertyDefinitions> tag is the container tag for all Property Definition declarations. It occurs only once. Each Property Definition is declared in a <propertyDefinition> tag together with a unique identifier, a name, and a type.

Supported data types for the ArchiMate Exchange File Format are:

  • string

  • boolean

  • currency

  • date

  • time

  • number

Once the Property Definitions have been declared they may be referenced and given actual values within ArchiMate concepts or other objects. For example, the following Business Service element references the three Property Definitions and adds actual values:

<element identifier="id-e1" xsi:type="BusinessService">
    <name xml:lang="en">Provide a Service</name>
    <properties>
        <property propertyDefinitionRef="pid-1">
            <value>$5000</value>
        </property>
        <property propertyDefinitionRef="pid-2">
            <value>$6000</value>
        </property>
        <property propertyDefinitionRef="pid-3">
            <value>09:00:00</value>
        </property>
    </properties>
</element>

The Property Definitions can of course be referenced by other ArchiMate concepts and other objects more than once. For example, another Service may contain only one “Fixed Cost” property and yet contain a different value. In this case it need only reference the required Property Definition and provide a new instance value:

<element identifier="id-e2" xsi:type="BusinessService">
    <name xml:lang="en">Provide another Service</name>
    <properties>
        <property propertyDefinitionRef="pid-1">
            <value>$100</value>
        </property>
    </properties>
</element>

Property Definitions can be re-used and referenced as many times as required in the ArchiMate Exchange File Format.

Multi-Language String Values

Multi-language string keys and values for Properties are declared by using more than one value declaration for the given Property with an xml:lang attribute.

For example:

<propertyDefinitions>
    <propertyDefinition identifier="pid-4" type="string">
        <name xml:lang="en">Comment</name>
        <name xml:lang="fr">Commentaire</name>
    </propertyDefinition>
 </propertyDefinitions>
<element identifier="id-e3" xsi:type="BusinessService">
    <label xml:lang="en">Provide another Service</label>
    <properties>
        <property propertyDefinitionRef="pid-4">
            <value xml:lang="en">A comment in English.</value>
            <value xml:lang="fr">Un commentaire en français.</value>
        </property>
    </properties>
</element>

Representing Stereotypes and Specialization of Concepts

The ArchiMate 3.1 Specification allows the specialization of elements and relationships, so that new concepts may be used that derive from existing ArchiMate 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…​ 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.”

— ArchiMate 3.1 Specification
Section 15.2 “Specialization of Elements and Relationships”

There is no predefined strategy to represent a specialized concept, stereotype, or profile when exporting an ArchiMate model using the ArchiMate Exchange File Format, and a future version of the exchange file format may provide more comprehensive support for these. In the meantime, Properties may be used to describe the concept. The following is a suggested approach, note that there may be alternate ways to represent this in the ArchiMate Exchange File Format:

  1. Declare a Property Definition:

<propertyDefinitions>
    <propertyDefinition identifier="pid-1" type="string">
        <name>Stereotype</name>
    </propertyDefinition>
</propertyDefinitions>
  1. For the specialized element, use an existing ArchiMate concept and add a Property that references the Property Definition and a value that provides a name for the specialized element or stereotype:

<element identifier="PG_354820954" xsi:type="BusinessEvent">
    <name xml:lang="en">Work-Related Safety Incident</name>
    <documentation xml:lang="en"></documentation>
    <properties>
        <property propertyDefinitionRef="pid-1">
            <value xml:lang="en">«Threat Event»</value>
        </property>
    </properties>
</element>