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

ArchiMate vs Other Notations - UML Software modelling  - Part 2

Welcome to second article in our ArchiMate vs Other Notations series. In last article '#1 - Why you might need ArchiMate?' [1] 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 [2] 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] [3] 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 collaboration An aggregate of two or more application components that work together to perform collective application behavior.  
Application interface A point of access where application services are made available to a user, another application component, or a node.  
Application function Automated behavior that can be performed by an application component.  
Application interaction A unit of collective application behavior performed by (a collaboration of) two or more application components.  
Application process A sequence of application behaviors that achieves a specific outcome.  
Application event An application behavior element that denotes a state change.  
Application service An explicitly defined exposed application behavior.  
Data object Data structured for automated processing.  

 

 (Source: [4])

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.

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

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

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

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.

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 - Why you might need ArchiMate? - Part 1
ArchiMate vs Other Notations - #3 - UML - business processes
ArchiMate vs Other Notations - #4 - UML - infrastructure modelling

[1] https://www.advisedskills.com/about/news/267-archimate-vs-other-notations-why-you-might-need-archimate-part-1

[2] https://www.open.edu/openlearn/science-maths-technology/introduction-software-development/content-section-6 

[3] https://tallyfy.com/uml-diagram/

[4] https://pubs.opengroup.org/architecture/archimate3-doc/chap09.html

[5] https://www.uml-diagrams.org/examples/component-example-retail-website.png

[6] https://bizzdesign.com/blog/combining-archimate-3-0-with-other-standards-uml-sysml-erd/

 

The Knowledge Centre

Sharing knowledge is essential
for our team

Enterprise architects have a ton of responsibilities within an organization or business. Find out exactly what an enterprise architect does.

What Do Enterprise Architects Do?

Enterprise Architects have a ton of responsibilities within an organization or business. Find out exactly what an enterprise architect does.

AdvisedSkills

NewsNovember 30, 2022

Enterprise Architecture: 3 Things of Note in Changing Times

Enterprise Architecture: 3 Things of Note in Changing Times

40% of organizations have Enterprise Architects on their staff. The business world now recognizes its benefits. New tools and standards changed how Enterprise Architects do their job.

AdvisedSkills

NewsNovember 25, 2022

Scaled Agile Exam Prep Tips for Certification

Beyond Agile Training: Scaled Agile Exam Prep Tips for Certification

Have you almost completed your Agile training? Are you looking to get ready for the exam? Click here for some tips that will help you succeed.

AdvisedSkills

NewsNovember 23, 2022

What is Open Agile Architecture? Watch Video

Watch video what is Open Agile Architecture

The Open Group's latest standard, Open Agile Architecture™ offers an approach to architect at scale with agility.

AdvisedSkills

NewsNovember 22, 2022

Agile is a software development methodology that many software developers follow. Learn about the best practices of this method here.

What Are Agile Practices in Software Development

Agile is a software development methodology that many software developers follow. Learn about the best practices of this method here.

AdvisedSkills

NewsNovember 21, 2022

Become a trainer

We are looking for Instructor who will be responsible for delivering classroom and online live courses. Positive and efficient working environments are key to our trainers' success.

Get started now!