top of page

A Beginner's Guide to Model-Based Development

Author: Sachin Kushwaha, William VanSolkema, Joe Schulte

Image shows a conceptualization of model-based systems engineering (MBSE)

A Brief History of Model-based Engineering

Model-based systems engineering (MBSE). Model-based design. Model-based development. Have these terms ever entered your professional conversations or crossed your LinkedIn page? Or perhaps you heard the latest buzzword, digital engineering?

For the past two decades the aerospace industry, specifically commercial aerospace, has utilized a model-based approach for embedded software development and testing. Companies gradually adopted this method due to the many advantages provided by this kind of software development and its strengths over traditional or legacy software development. Over the last several years, other industries have begun to follow suit.

In 2015, Denise Duncan published an influential article advocating for the use of models for virtual prototyping within the Department of Defense. In the publication, “DoD as a Model-Based Enterprise,” the defense acquisitions community was introduced to the advantages that model-based engineering could provide such as greater collaboration, shared virtual environments, enhanced configuration management, and product support.

Later in 2018, the DoD authored its “Digital Engineering Strategy,” advocating for the use of model-based product support models. Fast forward to 2023, we are seeing U.S. military branches incrementally championing this engineering approach. For instance, the Army is leveraging MBSE to reach accelerated capabilities with autonomous ground vehicles, which our team at Array of Engineers is currently supporting. The Navy and Marine Corps employ model-based engineering to improve ship and armament logistics. Air Force programs have leveraged models to reconstruct original equipment manufacturer (OEM) technical data for the A10 Wing Replacement Program, while the Space Force has pledged to become the first digital service with a digital engineering ecosystem.

What is Model-based Development?

Defense Acquisition University defines digital engineering as an integrated digital approach that utilizes authoritative systems and models throughout a product’s lifecycle. For a more simple definition, MBSE is essentially using software tools to build models and simulations of new software.

In a model-based approach, software is created in a simulated environment. Developers or software engineers construct virtual models to simulate how software code would perform given a series of inputs and outputs. The software components can also be simulated and tested independently of each other, or in other words separate from the larger model. Changes can be made and tested seamlessly without taking apart the entire model.

Essentially virtual models can be built up and disassembled like Lego blocks or modules, which provides countless advantages for development and testing. This modular software can be easily broken down into smaller parts, allowing you to add onto these components over time.

Since all software components or modules are in a simulated form, you can start with something small. Once you have a prototype working you can share this with other teams offering instant data sharing and collaboration. Depending on the type of software used, these models may also be capable of auto-generating code for each software requirement. Let’s expand on some of the primary benefits of model-based development.

Five Powerful Benefits of Model-based Development

1. Automated code generation saves resources and reduces design errors

Certain model-based development software suites such as Ansys SCADE can auto-generate code in C, eliminating the need for writing manual code or even being fluent in C. This automation enables you to focus more resources on the functionality of the software and not so much of the tediousness of implementation. According to Ansys, utilizing SCADE can ultimately reduce costs by up to 50%.

It’s more efficient to have software auto-generated because it is done so in a consistent and qualified manner. SCADE is certified to the DO-178C level, the standard for flight safety-critical software aboard commercial aircraft.

2. Model components can be tested independently.

With a model-based approach, you can have large components of the model split up and tested independently of each other, thereby streamlining integration testing, which ensures the model fits in with the wider system. This results in ultimately more control of testing by allowing main models and byte models to be tested separately, making it easier to investigate, identify, and resolve any issues encountered during testing.

3. More intuitive and user-friendly.

SCADE and Simulink tool suites are both highly intuitive to work with because you primarily use diagrams and graphical programming to build models instead of manually writing code. This approach is also highly flexible. If you need to add or edit code manually, most environments give you the option to do so. At any given time, you can implement changes to the code. If you are stuck on a particular model, you can easily create a temporary build to debug roadblocks. You can also run simulations of the model alongside the compiled versions of the software build.

4. Provides more collaborative environments.

Modular environments are great at seeing system reactions when one component or interface is modified. For example, if you have an engine related system modeled and an electric power distribution system modeled, if there are two different teams working on it they can see the reaction of both the systems in parallel if the changes are done in one of them (think Google Docs). This approach provides parallel development of the system with respective requirements and interface control document (ICD) for the software development with greater understanding of system behavior which was unavailable in most traditional development where each system was developed separately.

5. Streamlines testing and verification.

Testing a model-based system is inherently easier because testing each requirement corresponds to a single software module. There is a way to tag each model with the requirements set being implemented, therefore traceability can easily be established between high level requirements, design, and test specifications. Tests can also be purely requirements based. Development teams have the option to provide a build instead of a full model to the test team thus providing security to the model repository.

How to Develop Model-Based Software

Model-based software development programs follow a similar v-diagram trajectory as a traditional manual development cycle. In other words, you start with system level requirements, design the high-level requirements, design the low-level requirements, manually write and implement code, conduct unit testing, perform integration testing, and then conduct system testing and field tests using the actual end system (e.g. aircraft, vehicle, machine, etc.).

Array of Engineers V diagram showing a software development process

The key differences between a model-based program and a traditional program comes down to requirements, writing and implementing the actual code, and testing the software. For these kinds of programs, requirements are written specifically with model development in mind. Every single requirement will correspond with a single operator in the software environment. In other words, if you have a requirement defining a specific function, that specific function is implemented in the model, with each requirement matching with an associated operator.

Unit tests are performed in a simulated environment, which provides several advantages to the project. There is no need for additional hardware to provide inputs to the model because every input is already incorporated into the model. When modular software is eventually loaded onto hardware during integration testing, the model can simply remain a simulation or it can be used as an actual software build that is loaded onto embedded hardware. Additionally, simulated unit testing is all the more valuable because it allows you to see the inner workings of software logic prior to integration testing.

Closing Thoughts

Any system can be modeled if you have sufficient data and understand how the data behaves and interacts within a system. With all the advantages that digital engineering offers it’s no surprise to see it being embraced across numerous industries. Expect to see increased MBSE job reqs, digital engineering lectures, seminar opportunities, and aspirations for adopting model-based approaches in the coming years.