7 modelling languages for software architecture
Tags: architecture, tooling
Published: 2023-02-28 15:18:31

Comparing 7 popular languages for designing and modelling software systems

## 🚀 Let’s kick-off

Due to the complex nature of software, there has always been a need to graphically visualize and communicate software architectures with others. Modelling and diagramming these systems and their abstractions allows us to analyze and improve the designs, resulting in higher-quality implementations when building them.

In this article, we’ll compare 7 popular visual modelling languages.

## 1️⃣ Unified Modeling Language (UML)

The [Unified Modeling Language](https://en.wikipedia.org/wiki/Unified_Modeling_Language) was created by a group of software engineers and researchers in the 1990s and is now maintained by the [Object Management Group](https://www.omg.org) (OMG). UML is a graphical language that provides a standard set of symbols and notations for modelling software systems. UML 2.5 includes 14 different diagram types to model various parts of the software development life cycle.

**👍 Advantages**

- UML offers a powerful and wide range of standardized notation, which can improve communication in a large organization.
- Flexibility to use only specific parts of the notation when required.
- The tooling usually supports code generation, which can speed up development.

**👎 Disadvantages**

- Complex notation is a steep learning curve for beginners to learn and use effectively.
- UML can be overly complex and time-consuming, especially for small and simple software systems.
- The tooling is often expensive, difficult to use and requires training.

![UML!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/uml.png "UML")

## 2️⃣ C4 Model

The [C4 Model](https://c4model.com) is a lightweight structured approach for visualizing software architecture for specific audiences. It was created in 2011 by a software architect and author named [Simon Brown](https://twitter.com/simonbrown). The C4 model is essentially just two things, a hierarchical set of common abstractions and four standard diagram types. The C4 model is notation-independent, meaning there are no standard shapes, colours or styles prescribed.

**👍 Advantages**

- The hierarchical structure allows zooming into more technical detail for the audiences that need it.
- Simple and easy to learn, making it great for engineers, stakeholders and non-technical team members to understand.
- The C4 model is flexible and adaptable, so it can be used in various tooling and notations.

**👎 Disadvantages**

- A limited set of features might be a limitation for larger organizations that need a wide range of diagram types, such as use case, activity and class diagrams.
- The C4 model is still growing in popularity and is not as widely adopted compared to standards such as UML.
- There are some C4 model tools, but there is still a relatively limited set compared to more established modelling languages.

![C4 model!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/c4-model.png "C4 model")

## 3️⃣ ArchiMate

[ArchiMate](https://en.wikipedia.org/wiki/ArchiMate) is an open and independent modelling language for enterprise architecture. It was developed in 2011 by [The Open Group](https://www.opengroup.org), an industry consortium that develops and maintains several open standards. It provides three layers of abstraction (business, application and technology), standard modelling elements (including business actors, business processes and application components) and relationships between them.

**👍 Advantages**

- ArchiMate provides a comprehensive framework with a wide range of abstractions and notations to describe and communicate architectures.
- Includes a colour coding scheme for differentiating between types of architecture components.
- Designed to be compatible with other enterprise architecture standards such as TOGAF and BPMN.

**👎 Disadvantages**

- Adoption is still limited in parts of the world, though widely used in Europe.
- ArchiMate is a complex modelling language, and can take time to learn how to use it effectively, which can be a barrier to entry for some.
- Often used with specific software tools, which can sometimes limit the portability of ArchiMate models.

![ArchiMate!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/archimate.png "ArchiMate")

## 4️⃣ The Open Group Architecture Framework (TOGAF)

[The Open Group Architecture Framework](https://en.wikipedia.org/wiki/The_Open_Group_Architecture_Framework) or TOGAF is an enterprise architecture framework split into 4 key domains: business, application, data and technology. It was first created in 1995 by [The Open Group](https://www.opengroup.org), which is also responsible for maintaining ArchiMate. TOGAF provides a comprehensive and systematic approach and includes a step-by-step process for the development and implementation of enterprise architecture.

**👍 Advantages**

- Provides a comprehensive and adaptable language, meaning organizations can tailor it to their specific needs over time.
- Vendor-neutral, meaning it can be used with any technology or vendor solution, giving organizations flexibility.
- TOGAF is an industry standard that is widely recognized and used by organizations around the world, which can provide assurance and credibility to stakeholders.

**👎 Disadvantages**

- TOGAF and the ADM process can be particularly difficult to learn for those unfamiliar with the framework and may require significant time to implement.
- TOGAF’s emphasis on standards and governance can be great for consistency, but also runs the risk of becoming too rigid and inflexible.
- Certification and training can be expensive, which may be a barrier for some organizations that want to use the framework.

![TOGAF!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/togaf.png "TOGAF")

## 5️⃣ Business Process Model and Notation (BPMN)

[BPMN](https://www.bpmn.org) is a graphical modelling language that provides standard notation for business processes, activities, events, gateways, flows and artifacts. It’s a powerful tool for analyzing and improving business flows. BPMN was first created in 2004 by a group of organizations and invidiously and has since been maintained by the [Object Management Group](https://www.omg.org) (OMG).

**👍 Advantages**

- BPMN is designed to be easily understood by technical and non-technical stakeholders, making it great for a wide range of audiences.
- Provides a standard notation that’s easily understood and bridges the communication gap for designing and implementing business processes.
- Sub-models divide diagrams in a way that viewers can easily discover areas that are the most applicable to them.

**👎 Disadvantages**

- The notation is comprehensive and can be difficult to learn end to end, meaning there may be a steep learning curve for those producing models.
- Some vendors implement and execute BPMN diagrams slightly differently, even though there is a clear standard.

![BPMN!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/bpmn.png "BPMN")

## 6️⃣ Systems Modeling Language (SysML)

[SysML](https://sysml.org) is an open-source modelling language that extends UML and was designed to analyze complex systems. It was first created in 2001 and was later adopted by the [Object Management Group](https://www.omg.org) (OMG). Systems engineers use SysML to communicate and analyze a wide range of systems, for example: software, hardware, information, process and personnel.

**👍 Advantages**

- Removes the software-specific restrictions of UML to allow the modelling of a wider range of systems, such as physical and personnel.
- SysML removes some of the features of UML, making it simpler and easier to learn.
- Provides extensive support for models, views and viewpoints which is limited in UML.

**👎 Disadvantages**

- As SysML is based on UML, it inherits many of the difficulties and disadvantages of UML.
- Ambiguous rules about how complete the diagrams need to be can cause errors.
- The lack of interoperability across various SysML tooling makes it difficult to share models.

![SysML!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/sysml.jpg "SysML")

## 7️⃣ 4+1 View Model

The [4+1](https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf) is a [view model](https://en.wikipedia.org/wiki/View_model) for describing large systems using multiple concurrent views, each from the perspective of a different stakeholder. It was first proposed in 1995 by Canadian software engineer, Philippe Kruchten. The 5 views it defines are the logical view, process view, development view and scenarios. 

**👍 Advantages**

- The method allows stakeholders to easily consume areas of the model that are most important to them.
- 4+1 is great for organizing and providing structure to diagrams and system information.
- Views can be omitted if they don’t contribute to the model.

**👎 Disadvantages**

- 4+1 does not enforce a formal notation or standard, which can lead to inconsistencies in how the model is applied.
- May not provide enough detail for some areas of design decisions, for example, security, performance or scalability.
- Not suitable for very small systems or those with a very specific focus.

![4+1 view model!](https://assets.icepanel.io/blog/7-modelling-languages-for-software-architecture/4+1.png "4+1 view model")

## 🏁 To wrap up

I’m sure there are other visual modelling languages that we didn’t get time to cover in this article. Let us know in the comments if you have any other favourites, and what you did or didn’t like when using it.

Stay chill 🧊