Model-based design challenges old software development methods. The more demanding the development task, the more interesting model-based design becomes. This is usually because model-based design provides a good way both to simulate different situations and to test the software out in them. More and more people are starting to see the benefits that this brings.
What model-based design actually means, however, is not altogether clear for everyone.
What is model-based design?
It could be explained by saying that in model-based design, software creation is brought up a level of abstraction so its closer to your ideas than simply producing code. In case this doesn’t exactly clarify it enough, I will delve a little deeper:
In traditional software development, the division of labour is usually so that an architect or main designer is in charge of the software application being developed, while separate developers are working on particular functions – sometimes not even aware of what the whole application is for. In model-based design this division is ditched, and developers can be designing at the same time.
- In model-based design the developer models functions as bigger entities than code
- Model-based design tools often generate code automatically based on a visual model
- The architect or software designer can test the entity along the way before completion
A developer using model-based design can take a larger responsibility for the entity’s overall functionality and find potential pitfalls through simulation right from the start of the project.
What is the benefit of model-based design?
In the end, the biggest benefits of model-based design are that it ensures quality while allowing developers to work faster. The end result is achieved more easily when the software design produces code that can be tested straight away.
Model-based design tools also ensure automatic validation of the system, traceability of the requirements, and versatile testing – enabling product development to be verified at the earliest possible stage.
In terms of benefits, the most important element of model-based design is that it allows the developer to move ideas from the drawing board into practice and test them out straight away.
Possibility 1: Testing an idea out with model-based design
In model-based design the system or application can often be simulated with visual elements, and these can be used to generate code automatically if and when needed. A significant advantage of this, especially at the start of product development, is that creative ideas can be tested out quickly.
So now we know what needs to be done and the tools that will be used, but we still don’t know HOW this will be done.
Model-based design allows the developer to test out ideas for achieving the desired outcome until the best solution is found. In a traditional development model, the process would rely on the ability of the application or system designer to come up with a theoretically viable solution, and the testing would only take place much later.
Of course Finland has many of these very capable designers, so this development model works perfectly well too, but this is the fundamental difference between them.
Possibility 2: Simulation of practical situations and model-based testing
Because model-based design is based on creating a functioning virtual environment, it enables the simulation and testing of different kinds of scenarios at a much earlier stage than the traditional model.
When talking, for example, about the control unit of a mobile machine, the chances of testing it out in the actual machine are very limited. Testing like this is often also very slow, and if mistakes in the control unit system are only found at this stage, it can set timetables back significantly.
Because the virtual device is always available to the developer in model-based design, functions can be tested out as a part of the design process. If faults are found, it is sufficiently early on in the process to alter the design without upsetting the timetable.
Possibility 3: When practical testing is not an option
The advantages of model-based design really become apparent in those cases where testing out the functions of a system or piece of software in the field is simply neither possible nor safe to carry out.
- Factory production lines, for example, cannot be tested out for every possible situation that might arise using existing lines.
- Systems responsible for the safety of human lives, for obvious reasons, cannot have all their features tested out in practice either.
In model-based testing it is possible to simulate these situations accurately and safely.
Dark lining to a silver cloud
The tools used in model-based design are not cheap, and this is why its benefits are often approached with some skepticism by those involved with software development. It is also true that model-based design might not be the best way forward for every single person, in every situation. Nor is it always possible to show the benefits that will be gained in advance.
The benefits are most apparent when ideas need to be implemented quickly, so simulation and testing will be important. If the system has very specific requirements, and there are no special challenges that would be best tackled through simulation, then there are no significant benefits to be gained by investing in model-based design tools.
Model-based design will never completely replace manual coding work, and nor is it designed to do so – integrating completed software into the final environment needs to be done manually.
Model-based design means higher quality product development
In model-based design, coding and design are simultaneous, so functions of the system to be tested out right from the start. Creative designs can therefore be tested out in a variety of simulated situations before the functions of the actual system can be actually decided on.
And because a separate testing phase is not necessary, assumptions made at the design stage do not need to apply to all cases. When software is tested from the beginning, design-related problems can be spotted swiftly too.
At the later stages of product development, model-based simulations can also be used to test out functions in more precise virtual scenarios. This often helps to get to the end result earlier than when testing is only done on the final device.
If you are thinking about using model-based design in your organisation or you have other needs related to the challenges of software development, simply get in touch! We will help you find the best solutions.
About the writer
Ville Ahola studied hydraulics and engineering design at Tampere University. Ville has extensive experience of simulation and software development for demanding devices and off-road machines. Ville can be contacted at firstname.lastname@example.org.