Modeling systems and software -
MBSE and MDD

Models as a common language in engineering

State-of-the-art systems consist of much more than just software—they combine mechanical, electronic, and software components to form highly sophisticated integrated systems. The development cycles often differ considerably: software is developed in short, iterative sprints, while hardware and mechanical components are developed over months or years.

These differences highlight why modeling is so important: it creates a common basis for understanding, planning, and alignment across disciplines. Models enable the visualization of technical dependencies and their early analysis, ensuring complete transparency regarding the dependencies between mechanical, electrical, and software-based components.

Whether it's mechanical structures, electrical systems, or software logic, models ensure that everyone involved is talking about the same thing.

In Model-Based Systems Engineering (MBSE), models are the central source of information throughout the entire engineering process. System models define the architecture and functions of the overall system and its components. In Model-driven development (MDD), models define the structure, behavior, and interaction of the software components included in the system.

Links between requirements, model elements at the system and software level, module and system tests, and test results connect all artifacts to form a consistent digital image of the system. This establishes a single source of truth for the entire project.

System modeling – understanding the big picture

System modeling considers the entire system with all its components, interfaces, and dependencies. It answers the question: How do mechanics, electronics, and software interact to perform the desired function?

Graphical languages such as SysML are often used for this purpose. Architectures, states, and data flows are described in diagrams that clearly visualize the system, its subsystems, and its behavior. This allows errors to be detected early on, variants to be compared, and system changes to be evaluated precisely.

System modeling ensures transparency and bridges the gap between requirements, design, and implementation.

Software modeling – accurately mapping behavior and logic

While system modeling focuses on the overall system, which consists of interacting subsystems (often from different domains), software modeling concentrates on the internal logic, behavior, and interaction of the subsystems or components that are implemented by software.

UML diagrams such as state, activity, or class diagrams are used to describe the behavior of software before source code is created. This ensures clarity, reusability, and better maintainability.

Many state-of-the-art development tools also allow for automatic code generation, which shortens development times and improves the quality of the source code. Software modeling is therefore an essential part of model-based engineering—precise, efficient, and traceable.

Why model-based working makes the difference

Given the complexity of today's systems, any attempt to describe them using text, tables, or similar means quickly hits its limits. Models, on the other hand, visualize structures, dependencies, and behavior in an easily understandable and unambiguous way. Communication between teams is simplified, misunderstandings at interfaces are reduced, and a “single source of truth” is created. In addition, models also enable execution at the model level, so that simulations can be used to verify whether the model meets the specifications. This creates a solid basis for well-founded decisions.

Systems can be validated at an early stage, errors are avoided or detected early on, and development cycles are shortened. Model-based working is therefore not just a method, but a way of thinking that makes engineering fundamentally more efficient and transparent.

Success factors for effective modeling

To leverage the advantages of a model-based approach to systems and software engineering, project teams need efficient tool-based support for creating and editing models. It is helpful to use a proven modeling method to minimize the risk of errors. The ability to simulate models in the tool allows for verification early in the development process, when fixing of errors is less expensive. 

Models are not created as an end in themselves. They deliver real added value for project teams—for example, through better communication or simulation. Integration with other development disciplines is equally crucial: requirements, variants, and tests must be linked in the models in a way that makes the relationships comprehensible.

The Systems Modeling Language (SysML) has proven to be very well suited for modeling systems, and the new version, SysML v2, incorporates a range of experience gained from real-world application scenarios using SysML v1.

The Unified Modeling Language (UML) is generally used for software modeling. Due to its wide range of extension options, it can also be adapted to specific scenarios.

How system and software modeling interact with other disciplines

The model of the overall system, including its subsystems, provides a reference description of the product to be developed throughout the entire engineering process. It is linked to the requirements and other artifacts that arise during the course of the process while implementing the subsystems. These include development artifacts as well as test sequences, test cases, and test results. The links allow you to track precisely how an individual requirement is designed, implemented, and tested at a granular level. This results in complete traceability across the entire engineering process.

Software models take on a special role in this context because, just like system models, they can be verified early on through simulation and, thanks to the possibility of linking at the module level, they help to enable complete transparency and traceability.

These capabilities in turn form the basis for a wide range of benefits, such as coverage analyses, status reports, compliance documentation, quality assurance, and much more. 

Modeling systems and software is an essential enabler for end-to-end engineering. With a tool environment that facilitates cross-disciplinary links throughout the entire process, MBSE and MDD become central “hubs” and contribute significantly to the success of a project. 

Some xamples of popular modeling tools

IBM Rhapsody

An established modeling tool for systems and software, with support for SysML and UML as well as many widely spread architecture frameworks. Highly flexible and adaptable for projects. Supports simulation at the model level and integration with other lifecycle tools.

Cameo Systems Modeler (Dassault Systèmes)

Flexible tool with broad methodology support, from SysML to domain-specific extensions. Frequently used in large systems engineering environments.

Enterprise Architect (Sparx Systems)

Known for its versatility and comparatively low entry costs. Supports UML, SysML, and BPMN and is used for both architecture and process modeling.