Blog

ArchiMate vs Other Notations - #2 - UML: Software modelling

ArchiMate vs Other Notations - #2 - UML: Software modelling 

Welcome to second article in our ArchiMate vs Other Notations series. In last article '#1 - Why you might need ArchiMate?' we set a common ground between notations and explored what is the purpose of ArchiMate. Today we start with head-to-head comparison between notations. First in line is UML - Unified Modelling Language - a modelling technique for broad range of use cases. Published in 1997 and maintained by Open Management Group. It is a graphical notations standard with single meta-model aimed for system modelling. It covers many types of diagrams, each designed to cover specific subset of use cases. As UML is so wide in scope we need to look at certain aspects of it. This article would cover one of them, which is software modelling. We will explore similarities and differences in that area between UML and ArchiMate.

Understanding the context

First, let us describe the context. In The Open University course on software development we find a decent definition of a model. Models are forms of description often adopted in software development. They are abstractions we use to represent and communicate what is important. Limited to necessary details they help developers deal with the complexity. By software modelling we mean modelling technical solutions and systems. We create those to get some kind of business value. You could think of following examples of systems or solutions:

  • Application or particular functionalities of it
  • Software interfaces
  • Systems built using many applications
  • Software services for business users

Now, as we have set the common ground, we explore foundations of both notations. 

Software Modelling in UML

As mentioned before we have plenty of diagram types in UML. There are 14 unique types divided into two categories: behavioral and structural. Not all used as often as others. In fact, according to All You Need to Know About UML Diagrams article, in 80% of cases developers use only three. Most used were: Use Case Diagram, Class Diagram and Sequence Diagram.

Use Case diagram show us what kind of use cases we have and how users are involved in them. Class diagram helps us define objects and their attributes. Sequence diagram shows information flow aligned to time. It helps to show the logic behind use cases.

Software Modelling in ArchiMate - application layer

In ArchiMate we do not have diagram types - we have layers and viewpoints. We place all elements and relationships connected to software modelling on Application Layer. Please mind the fact, that we talk about software that supports business. System software such as OS or DBMS are part of technology layer, often called infrastructure layer.

Table below shows what elements of language are defined on that layer:

Element

Definition

Notation

Application component

An encapsulation of application functionality aligned to implementation structure, which is modular and replaceable. It encapsulates its behavior and data, exposes services, and makes them available through interfaces.

Application Component

Application collaboration

An aggregate of two or more application components that work together to perform collective application behavior.

Application Collaboration

Application interface

A point of access where application services are made available to a user, another application component, or a node.

Application Service

Application function

Automated behavior that can be performed by an application component.

Application Function

Application interaction

A unit of collective application behavior performed by (a collaboration of) two or more application components.

Application Interaction

Application process

A sequence of application behaviors that achieves a specific outcome.

Application Process

Application event

An application behavior element that denotes a state change.

Application Event

Application service

An explicitly defined exposed application behavior.

Application Service

Data object

Data structured for automated processing.

Data object

Source: http://pubs.opengroup.org/architecture/archimate3-doc/chap09.html

UML vs Archimate – Component Diagrams

Now we will focus on comparison between those two notations in context of software modelling. When compared, UML and ArchiMate share a lot of similarities, especially in software modelling. Many concepts present in ArchiMate were derived directly from UML. The main element that is a common one is the main active structure element called Application Component. It is the same as UML concept of Application Component. Thanks to that we have a direct relationship between Enterprise Architecture model and implementation models in UML. Example below shows how you could combine ArchiMate and UML based on Application Component element.

ArchiMate and UML based on Application Component

Source: https://www.uml-diagrams.org/examples/component-example-retail-website.png

Source 5

You could model UML Component Diagram as a single Application Component in ArchiMate. Due to that you can present the application in some broader context. When building architecture repository, you could add a reference to Online Shop element that points to external document with detailed UML model that could be used for implementation purposes.

ArchiMate vs UML – Use Case Diagrams

There are some minor similarities regarding Use Case diagrams as well. Application Services could be easily mapped to Use Cases from UML. Thanks to that you could depict use cases in broader context. In the example below, you will see UML Use Case Diagram and corresponding ArchiMate model.

UML Use Case diagram example

UML Use Case diagram example

In this simple example you could notice three actors: Client, Hotel and a system called Booking System. In this diagram we described the use case when client wants to book a hotel room. If Guest is contacting hotel then he can book a room or check its availability. When using Booking System directly he could also get a list of suggested places. Now, look on corresponding ArchiMate example of the same situation

ArchiMate example of the same situation

On ArchiMate view you could clearly see more elements. We used two layers - both Business and Application - to depict two ways the Client could get what he wants. He could contact Hotel over the phone to use services Book and Check Availability. He could also directly use Booking System and its Web FrontEnd Interface to get access to same services and additional Suggested Places service. Mind the fact that Book service on business layer is being realized by corresponding service on application layer - they have the same function, but the context is different - one service is serving Client using business interface while another trough an application interface.

Other examples

Another similarity could be found in Application Function element and Sequence or Activity Diagram. For instance, Activity Diagram could be modelled as single Application Function.

Class Diagrams in UML are very detailed from ArchiMate point of view. In ArchiMate we could use Data Object elements to create class hierarchy, but to create an implementation model those objects needs to reference to appropriate Class Diagrams as shown on example below.

Class Diagrams

ArchiMate example of the same situation

In ArchiMate you rather model the overview of data structure. In UML you could model the rest – solution and implementation details needed for creating the system.

Takeaways

To sum up, let’s take a look on main takeaways from this article:

  • When modelling software in most cases we use UML. In 80% of cases users choose one of three diagrams: Use Case Diagram, Class Diagram and Sequence Diagram
  • ArchiMate has a dedicated layer for software modelling called Application Layer
  • Many ArchiMate elements were derived from UML, like Application Component or Interface
  • Application Component in ArchiMate could represent whole Component Diagram done in UML. Thanks to that we could have a direct linkage between Enterprise Architecture and implementation models.
  • Use Case diagram could be modelled using Services and Actors in ArchiMate
  • Sequence or Activity Diagram could be modelled as Application Function in ArchiMate
  • Classes in UML could be depicted using Data Objects in ArchiMate.

This article is one of articles from ArchiMate vs Other Notations series. Check others:

ArchiMate vs Other Notations - #1 - Why you might need ArchiMate?

ArchiMate vs Other Notations - #3 - UML - business processes

ArchiMate vs Other Notations - #4 - UML - infrastructure modelling

ArchiMate vs Other Notations - #5 - BPMN - overview

ArchiMate vs Other Notations - #6 - UML/ERD - database modelling


Piotr Szpilkowski - trainer at Architecture Center LtdAuthor: Piotr Szpilkowski - Change Leader / Agile Coach, Trainer at Architecture Center Ltd

https://www.linkedin.com/in/szpilkowski/

Quality-oriented leader equipped with both technical and soft skills. Eager to create teams, organize things and make them happen. Experienced in managing various IT projects scattered all around the world. ArchiMate and SAFe trainer.

Architecture Center

Architecture Center Ltd provides consultancy and training services in the following areas: enterprise architecture, business processes management and IT systems integration.