The concept of model-based system engineering (also referred to as model-based systems development, MBSD) is a modern approach to designing and developing complex (embedded) software. MBSE facilitates the architecture of digital system of systems products with easy to manage visual models, well-defined operation rules, and opportunities for automation. In this post, we’re taking a look at the fundamentals of model-based system design, and why it’s getting more and more popular in safety-critical product development.
Related video: codeBeamer ALM for Safety-critical Developers
What is MBSE?
Model-based Systems Engineering, or MBSE, is a systems engineering method that applies formalized modeling to support the requirements, design, analysis, verification and validation activities of software development. MBSE is used beginning right from the concept phase, and throughout development and the entire lifecycle.
Code quality in critical products
MBSE has its roots in safety-critical software development, and more specifically in the safety-obsessed aviation sector. There, the multiplication of code volume and complexity led to the simple realization early on that code is just too hard to think about. Dealing with code provides very limited transparency, not to mention the immense chance of error invoked by manually writing vast amounts of code.
In the late 1990s and early 2000s, developers of critical products were already grappling with the problem of overseeing millions of lines of code, and all the risks it could bring about. More transparency was needed, and model-based system engineering was invented to overcome the difficulties of reading code, providing a more visual approach. Today, almost all of the safety-critical code on a modern airplane like the Airbus A380 is generated by model-based system design tools such as ANSYS SCADE.
In today’s age of digital transformation, most product developers are experiencing a similar issue of burgeoning software content. Writing, understanding, and verifying the correctness of immense amounts of software code with staggering complexity is a huge challenge. Starting in the automotive industry, we’re witnessing a growing adoption of model-driven design principles to overcome these challenges.
Basics of Model-based System Engineering
In model-based design, you start out, quite literally, by drawing a blueprint (a kind of flowchart) of the system you’re developing. Instead of soliciting specific purpose-focused requirements using natural language documents and ad-hoc illustrations, you apply a formalized methodology to create visual models that describe the system’s rules of operation.
In essence, you “draw” the design, and define the rules your system should follow. Starting out with the rules makes it way easier to verify the correctness of your design early on in the process. Instead of spending time translating requirements to code, with MBSE you spend most of your efforts defining the problem and how your system should solve that problem.
Putting it bluntly, MBSE has you start by designing the boundaries and internal rules of the product, allowing a more systemic approach to engineering.
Then, code may be generated automatically. Using MBSE and the specification of rules correctly, your system will be correct by construction. This greatly simplifies the verification of product quality, and regulatory compliance in the development of critical systems. This way, you can uncover potential problems early, while they are still relatively cheap to fix.
A model contains all the requirements, behavior, structure, properties, and interconnections present in the system being designed. This makes the definition, design, and documentation of the system easier, and enables a more holistic view of product engineering. You really are designing a system from the ground up, rather than individual requirements (features) that will eventually be integrated to form a single product.
But that’s just one of the benefits of model-based system engineering.
Why MBSE is growing in popularity
System engineering approach
Managing all product information in a single central model, MBSE helps manage and oversee data relationships in the system. It enables a holistic approach to system design, and makes it easier to achieve traceability across the development lifecycle. MBSE is also consistent and provides synergies with the principles of user-focused design thinking.
More confidence in changing the system
Using models, you can flexibly add or modify requirements any time without risking to break the code – or hurting your product’s standards of safety. The rule-based approach won’t allow you to add a new requirement or feature that doesn’t fit the existing framework. It also helps remove ambiguity, and improve the precision of your system designs.
Having all system characteristics in a model enables you to test the system’s properties and behaviour early on, informing design decisions with fast feedback. Future-oriented dynamic modelling solutions today are gaining capabilities around simulation. Using such a solution, you can run simulations of your model in real-time, letting you understand the impact of your design decisions on the fly.
Enhanced communication across the lifecycle
Using MBSE also supports internal communication: having all relevant product data in a shared model enhances knowledge capture and transfer between all stakeholders involved in development. Not to mention that it makes it easier to validate the correctness, consistency, and completeness of the system.
System documentation may be (auto-)generated in an MBSE environment. Combined with advanced data management and filtering, documents aimed at different stakeholders may be generated based on the model – even automatically. Models may also be used at inspections and formal product/quality reviews or audits.
Verifying product quality, supporting compliance
By generating code automatically based on the model, you can significantly reduce the risks involved in delivering code for complex software systems. Some estimate that taking a model-based approach in combination with code generation results in 30% faster delivery, and 50% less errors than manual code written by a top programmer.
The tool writing the code may also be used to mathematically verify its correctness, essentially building quality into the design and delivery process. With MBSE, measuring the integrity, quality, and completeness of the system can also be automated.
To summarize, model-based engineering is a suitable concept with many benefits for developers of safety-critical systems. Tied in with simulation testing, it could greatly contribute to the efficient development of safe and reliable autonomous vehicles. Therefore, many see MBSE as the future of system architecture in the development of safety-critical systems.