One of the most common questions about SysML v2 is whether it is a textual language or a diagram language. The answer is both – and that is not a compromise but an architectural choice. Understanding the three aspects of the language explains why graphical and textual notations are based on the same model structure rather than being two independent models to maintain.

Three Aspects: Concrete Syntax, Abstract Syntax and Semantics

SysML v2 can be described in terms of three aspects. Concrete syntax describes how a model is represented – graphically or textually. Abstract syntax describes which model elements a model can contain and how those elements may be related. Semantics describe what the model elements and their relationships mean.

This separation makes it possible to distinguish the concrete representation from the structure and meaning of the model.

Two Representations, One Model Structure

Both notations are formally specified and can represent the same model structure. The textual notation has a BNF grammar; the graphical notation has a graphical BNF. Tables in the specification provide concrete examples for both.

In SysML v1, the graphical notation was the standard that shaped the representation. In SysML v2, there are two representations of the same model structure.

In practice, one team can work with a textual representation in version control and compare changes, while another reads and discusses the same model graphically. The point is not to keep two independent models in sync. Whether this works in practice also depends on the tools used and their support for the relevant standards.

The Metamodel Describes the Abstract Syntax

A SysML model describes things in the real world. The metamodel describes the structure of the model itself. It defines which model elements exist, which properties they have and how they may relate to one another.

The metamodel therefore describes the language’s abstract syntax: its permitted model elements and their relationships.

The M0 to M3 Levels

The architecture is layered. The levels are easier to understand when viewed through an example:

  • M0 represents real or planned things – for example, a specific drone.
  • M1 is the model describing that drone – for example, a SysML v2 part.
  • M2 contains the metaclasses that describe the model elements at M1 – for example, PartUsage.
  • M3 is the meta-level at which the structures of M2 are described. In the Meta Object Facility (MOF), this is the level of metametamodels.

This layering is not academic scaffolding. It helps explain how standardised model representations such as XMI are intended to support the exchange of models between tools. Whether that exchange works also depends on the relevant standards and the tools’ implementations.

KerML: The Language Behind the Language

SysML v2 does not stand alone; it is built on the Kernel Modeling Language (KerML). KerML is a modelling language for defining modelling languages.

KerML provides general modelling concepts, while SysML v2 adds systems-engineering-specific concepts. The architecture is therefore not limited to SysML v2 but can serve as a foundation for further modelling languages.

SysML v2 is thus an application of KerML – a significant one, but not the only conceivable application.

Model Libraries: Semantics You Do Not See

The KerML and SysML v2 libraries contain definitions and structures that models can use. How these libraries are mapped onto the M0-to-M3 layering depends on the meta-level perspective being used. For practical modelling, the key point is that the library elements are available without modellers having to create every relationship themselves.

When you create a part, you use relationships defined by the language and its libraries. Which relationship applies in a particular case – for example, specialisation or subset – depends on the language element and the specific modelling context.

SysML v2 also provides predefined libraries, for example for units and other modelling concepts. The libraries and elements available depend on the SysML v2 version and the library definitions being used.

Why This Matters in Practice

You do not need to memorise the M0 to M3 levels to use SysML v2. The architectural background nevertheless helps answer three questions:

  • Why can graphical and textual notations be based on the same model structure?
  • Why do modellers use libraries instead of modelling basic concepts from scratch every time?
  • Why does the architecture support extensions and domain-specific modelling?

The architecture therefore explains not only how SysML v2 is described. It also explains why different representations, libraries and extensions can work together within the same modelling environment.

Do you have a topic you would like us to write about? Let us know.