Model-based methods are gaining more and more popularity in development. Why is that? And what are they exactly?
At IMT, we always strive to make our development process efficient so that we can optimally support our customers in the implementation of their projects. There is no way around model-based methods, as they can improve or simplify the most diverse aspects of system development.
There is a very wide range of model-based methods, which are intended for a wide variety of purposes and it depends very much on the project which methods bring any added value (if any). It is therefore important to choose the right set of model-based methods for each project.
In this article, we try to clarify all the terms surrounding model-based methods and demonstrate how they can be used.
What is a Model?
“A model is a simplified image of reality. Images can take the form of concrete objects or be represented in a purely abstract way.” Wikipedia
A good model shows all relevant properties of the real object, but simplified in the best way possible.
However, it also follows that a model is always optimized for a specific purpose.
Figure 1: Three models of a car, each for a different purpose.
As we can see in Figure 1, models can take a very different form to the real object. There is an almost unlimited number of possible models—the more complex an object, the more possibilities naturally arise. But even for very small things like atoms or light, different models are used in physics.
This may be one of the reasons why the term “model” in “model-based methods” is open to so many different interpretations.
However, the core is always the same and corresponds more or less exactly to the above definition. A model is a simplified representation that depicts all relevant properties of the real object. A model of this kind is less complex and thus simplifies work in relation to the specific purpose.
It is therefore only logical that there is a whole range of “model-based methods” for different areas of application. In the following, we will try to clarify the somewhat confusing terminology that arises.
How can the different approaches be classified?
According to everything we now know about models, the purpose of use as the central property of a model is a suitable parameter for a classification.
This also makes it clear from the outset that we only want to consider approaches for the development of technical systems here. So we can safely disregard the model car from Figure 1. However, the other two models demonstrate two important purposes. These purposes could be subdivided as follows:
- Behavioral description
- Information exchange
Even though there is some overlap, the model-based methods can be divided into these two groups based on their basic intention.
Behavioral model-based methods
In starting from a software application, it is obvious that a behavior-describing model can be used to automatically implement this application.
If this approach is extended by a second behavior-describing model, which represents the environment, i.e. the behavior of all interfaces of the first model, it is possible to simulate the behavior of the entire system.
The most common term for such an approach is:
- Model-based design (MBD)
This also makes it possible to carry out simulations or tests for different development stages. The possible approaches are referred to as:
- Model in the loop (MIL)
- Software in the loop (SIL)
- Processor in the loop (PIL)
- Hardware in the loop (HIL)
A description of these approaches can be found in the glossary below.
Since the behavior is described by the model, it is not only possible to have the software application generated automatically, but also to verify the implementation in different development phases.
Model-based methods for information management
The third model in Figure 1 shows a highly abstracted structure of a car. A car consists of 2 front wheels, 2 rear wheels and an engine, whereby 2 wheels are driven by the engine via an axle. This type of model is very suitable for representing structures and relationships.
Model-based methods that use similar types of models to manage information include:
- Model-based enterprise (MBE)
- Printed Circuit Board (PCB) models in ECAD applications
- Model-based system engineering (MBSE)
The first two methods are used in the specific disciplines of mechanics and electronics and are integrated in the corresponding development tools. MBSE, on the other hand, is a method for describing architectures of complete systems and thus in principle starts one level higher.
So, which is the best mode-based method?
After the above explanations, it is clear that this is the wrong question. Each of the above methods has its specific purpose. The question should therefore be:
Which model-based methods should I use?
Model-based methods offer many advantages, but often require appropriate tool support. If this is given, it is also possible to use all the above methods without further ado.
If all of these methods are used, the following overall picture emerges:
- Architecture/design: MBSE
- Mechanics: MBE
- Electronics: ECAD
- Software: Model-based design
|Model-based design||MBD||Model-based software development method, in which two behavioral models are used to describe the behavior of the software and the behavior of the environment.
This is also the basis for the use of “in-the-loop” procedures (MIL, SIL, PIL, HIL).
|Model-based enterprise||MBE||Model-based mechanics development method in which the 3D model serves as the central source of information.|
|Model-based system engineering||MBSE||The system engineering methodology, in which information about a system and its structure is stored in a central model. Model-based system-engineering.|
|Model in the loop||MIL||The simulation of an embedded system in an early development phase, where the model of the software is simulated along with the model of the environment.
Assumes model-based design.
|Software in the loop||SIL||The simulation of an embedded system in a very early development phase, where the generated code of the software model is simulated along with the model of the environment. The generated code runs on development hardware that is not identical to the target hardware. Assumes model-based design.|
|Processor in the loop||PIL||The simulation of an embedded system in a very early development phase, where the generated code of the software model is simulated along with the model of the environment. The generated code runs on the target hardware (processor). Assumes model-based design.|
|Hardware in the loop||HIL||The testing of an embedded system at a late stage of development, whereby the generated code of the software model is tested on the target hardware in an interaction with a real environment recreated by a HIL simulator. Assumes model-based design.|
|Electronic computer-aided design||ECAD||Software for the design of electronics. Also referred to as Electronic Design Automation (EDA).|
|Printed circuit board||PCB||A printed circuit board or circuit board.|
The terms model and model-based can be interpreted very broadly. This has not least to do with the fact that a model is always created for a specific purpose and the set of legitimate models is at least very large, if not infinite.
What they all have in common, however, is that they are simplified or reduced to what is essential. The aim is always to facilitate the activities it carries out.
General advantages and disadvantages of model-based methods:
The advantages lie in the improvement or support of work processes.
The necessary tool support can be considered a disadvantage. This can be further subdivided into tool costs, familiarization with new tools and the danger of tool lock-ins (strong ties to proprietary data formats, etc.).
However, the disadvantages mentioned can be greatly reduced with a considered choice of tools/development tools. Of course, even then it is still necessary to weigh up the advantages and disadvantages. At IMT, we are convinced that every project, regardless of size, can benefit from the use of model-based methods.
Examples for application of model-based methods at IMT:
For the development of specific electronic and mechanical components, we use CAD systems such as “Altium Designer” or “SOLIDWORKS 3D CAD”. The majority of such systems are already established on the market.
When developing larger systems, we mostly use MBD. In addition to the benefits of rapid prototyping, this also enables early fault detection through the simulation/testing approaches offered by the “in-the-loop” processes. Among other things, IMT relies on “MATLAB/Simulink” for this. For example, this is used in the development of measuring instruments.
If the product also has to meet strict standard requirements, it makes sense to combine this with an MBSE approach, which supports proof of conformity with the standard. For example, this is the case in the development of medical technology products.
Model-based methods are often used to implement smaller projects such as test automation tools, which allows “boilerplate code” to be generated. Among other things, IMT uses its own “DATAFLOW Designer” software tool, which follows an MBSE approach.