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/

Frequently Asked Questions (FAQs)

  • 1. UML: what is it, and why is it so crucial in the world of software engineering?
    UML, which stands for "Unified Modeling Language," is a visual modelling language that is widely used in the software industry for purposes such as requirements analysis, design, and documentation. It's crucial to software development because it standardises the language and notation used to describe and discuss software designs among engineers, business analysts, and other interested parties.
  • 2. When and why would you utilise a sequence diagram vs. a class diagram in UML?
    Class diagrams, use case diagrams, sequence diagrams, activity diagrams, state machine diagrams, component diagrams, and deployment diagrams are all different kinds of UML diagrams. Different kinds of diagrams are used to depict various features of a software system, such as its structure, behaviour, or deployment surroundings.
  • 3. What is the procedure for making UML diagrams?
    Dedicated UML modelling software, such Visual Paradigm, Enterprise Architect, or Lucidchart, are just a few examples of the many programmes that may be used to draw UML diagrams. These programmes help you generate code automatically and reverse engineer your programmes with a visual editor that lets you drag and drop components to make UML diagrams.
  • 4. What benefits do UML diagrams bring to software testing?
    Testing software is made easier with the use of UML diagrams, which depict the software system's interactions and behaviour in a clear and plain manner. To ensure the software system is functioning as expected, test cases, and requirements can be validated and tested using UML diagrams.
  • 5. How should I apply UML in software development, and what are some best practises?
    Using UML diagrams as a communication tool, keeping diagrams simple and focused on the key aspects of the system, using consistent notation and modelling conventions, and updating diagrams frequently to reflect changes in the system design are all examples of best practises for using UML in software development. Developers, business analysts, and end-users should all be included in the UML modelling process to guarantee that the final product satisfies the requirements of all parties involved.

 

Advised Skills - Tech Trends News

Sharing knowledge is essential
for our team

Training with Advised Skills

Customized Training Solutions with Advised Skills

Businesses must continuously learn and develop to succeed and stay ahead in today's fast-changing business world. As markets evolve and industries transform, the need for upskilling and reskilling has never been more pressing.

AdvisedSkills

NewsSeptember 19, 2023

The Rising Demand for In-Person Training

In-person learning is becoming popular again, and Advised Skills is at the forefront of this trend.

AdvisedSkills

NewsSeptember 13, 2023

Business Analyst

The Evolution of the Business Analyst Role

The evolving business and technology environment influences the role of the Business Analyst (BA). This role must adapt to new trends and demands. The Business Analyst's role has changed a lot because of the growing use of Agile methods by many organizations.

AdvisedSkills

NewsSeptember 07, 2023

Release Management - Planning, Scheduling, Control, Testing, Deployment

The Role of Agile Release Management in Continuous Delivery

In the modern, swiftly evolving tech landscape, businesses are constantly seeking methodologies that ensure both efficiency and excellence in software delivery. Step in Agile Release Management (ARM) - an approach tailored to facilitate smooth software rollouts without compromising on product quality. With the ever-changing nature of businesses, ARM's significance in the realm of continuous delivery is increasingly underscored.

AdvisedSkills

NewsSeptember 06, 2023

First Project as a Project Manager

Navigating the Challenges of Your First Project as a Project Manager

Stepping into the role of a project manager is both an exciting and challenging experience, especially when it comes to managing your first project. Overseeing your inaugural project as a project manager may feel like a daunting task, but it's an essential step in shaping your career.

AdvisedSkills

NewsAugust 21, 2023

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!