Archimate vs. UML

The ArchiMate language has derived a number of concepts from UML [1]. For other concepts, straightforward correspondences can be defined.

In the Business Layer, the ArchiMate business process concept can be mapped onto UML activity diagrams, where more detailed specifications of such processes can be given (although BPMN would be the preferred language for detailed process and workflow modeling). The ArchiMate business actor and role concepts can both be mapped onto UML actors, although the latter can also be used for modeling automated actors. Business collaborations have been inspired by collaborations as defined in the UML standard [1], although the UML collaborations apply to components in the Application Layer [2].

In the Application Layer, the application component element corresponds to the UML component. This facilitates the direct linkage between higher-level Enterprise Architecture models described in ArchiMate notation and lower-level solution architecture and implementation models in UML in one continuous development chain. In a less direct manner, the ArchiMate application function concept can be mapped onto UML activity diagrams, and an application service to a use-case diagram. Application collaborations also correspond to UML collaborations [2].

Many of the elements of the ArchiMate Technology Layer correspond directly to UML. The node, artifact, device, system software, and path elements have a direct counterpart in UML (where system software is called execution environment) [2].

In addition to these elements, many relationships in the ArchiMate language have close ties to UML as well. The ArchiMate association, composition, aggregation, specialization, and realization relationships have a direct counterpart in UML [2].

There are also some notable differences between the two languages. The ArchiMate serving relationship (formerly used by) is different from UML dependency. Although their notations are similar, their directions are different. UML dependency is often used to model, for example, function calls in software programs, but in ArchiMate notation, the direction of the serving relationship denotes the direction of service delivery, independent of whether this service is called by the user or offered pro-actively by the provider. At the architectural level at which the ArchiMate language is aimed, the run-time operational details of such call graphs is less important than the more stable and generic notion of service provision [2].

This also points to another important difference: UML does not have a separate service concept, since in its object-oriented paradigm the behavior expressed by a service is encapsulated within the interface offering that behavior (i.e., its operations). The ArchiMate language differentiates between interfaces and the services they provide to allow, for example, specifying that the same service is offered through multiple interfaces. Hence, an ArchiMate application interface does not equate directly with a UML interface [2].

Finally, UML has a predefined, fixed set of diagram types, whereas the ArchiMate viewpoint mechanism allows for the construction of custom, stakeholder-oriented views on an architecture [2].

Questioned about “ArchiMate vs UML”, Nick Malik says:

The diagramming model that is included in Archimate clearly overlaps with UML.  On the other hand, they solve different problems.  Archimate is a mechanism for understanding the meta-architecture of a technology environment.  UML fits nicely under the covers, describing the implementation of the systems (both technical and process systems) from various viewpoints.

In effect, Archimate describes the structure of cities, while UML describes the structure of houses and office buildings.  Both are needed, and they solve different problems.  In that way, they do not intersect at all.  Unfortunately, the diagramming notations are not so consistent.

For those who are curious about using Archimate with UML, I suggest the following white paper: How to Use the ArchiMate® Language with UML® [4].

Useful links:

[1] Unified Modeling Language®: Infrastructure, Version 2.4.1 (formal/201-08-05), Object Management Group, August 2011.

[2] http://pubs.opengroup.org/architecture/archimate3-doc/apdxd.html

[3] Nick Malik (2009): https://blogs.msdn.microsoft.com/nickmalik/2009/04/17/will-there-be-a-battle-between-archimate-and-the-uml/

[4] Chris Armstrong et al. (2013). How to Use the ArchiMate® Language with UML®. Disponível online em: https://publications.opengroup.org/w134

Related Stories