Model-Based Software Development: A New Norm For Automotive
08-09-2022
<p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">Connected devices and electronic control systems have revolutionized the vehicles and the driving experience as such. However, not only the final products but also the process of </span><a href="https://www.fpt-software.com/industries/automotive/" style="outline: none; text-size-adjust: 100%;">automotive software development</a><span style="outline: none; text-size-adjust: 100%;"> has undergone a dramatic change. Now, traditional development methodology fails to meet the market needs and is ousted by a viable alternative – model-based software development. </span></font></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">What is the meaning and the relevance of the model-based design? This is one of the common </span><a href="https://www.fpt-software.com/automotive-tech-blog/10-questions-to-ask-your-potential-automotive-it-consultants/" style="outline: none; text-size-adjust: 100%;">questions to ask an automotive IT consulting company</a><span style="outline: none; text-size-adjust: 100%;">, and we are eager to give a comprehensible answer to it. </span></font></p><h2 style="outline: none; font-family: BROmega, sans-serif; line-height: 1.1; margin-top: 20px; margin-bottom: 10px; font-size: 30px; text-size-adjust: 100%;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Current Automotive Software Development Needs </font></span></h2><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">Modern automotive systems are packed with electronic control systems starting from engine control units and finishing with </span><a href="https://www.fpt-software.com/automotive-tech-blog/the-latest-trends-in-in-vehicle-infotainment-2019-2020/" style="outline: none; text-size-adjust: 100%;">in-vehicle infotainment</a><span style="outline: none; text-size-adjust: 100%;">. This is mainly achieved with the help of embedded systems, developed around a central processor or control unit. The number and complexity of embedded systems continuously increase and pose new challenges to the automotive engineers and developers: </span></font></p><ul style="outline: none; margin-bottom: 10px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Complexity</span><span style="outline: none; text-size-adjust: 100%;">: The market competition drives the demand for more complex embedded systems that would be able to complete more tasks </span></font></li><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Customization</span><span style="outline: none; text-size-adjust: 100%;">: Engineers need to make hardware and software more customizable to increase the product range and allow systems’ application in various solutions </span></font></li><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Compliance</span><span style="outline: none; text-size-adjust: 100%;">: The developed products should be innovative, yet compliant with strict standards and regulations </span></font></li><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Affordability</span><span style="outline: none; text-size-adjust: 100%;">: The common task is to reduce development and testing costs to increase the competitive edge of a final product </span></font></li><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Time to market</span><span style="outline: none; text-size-adjust: 100%;">: Innovative solutions are now rather common on the market, which places additional pressure on automotive developers to bring the product to the market as soon as possible and gain the advantage of the first mover. </span></font></li></ul><h2 style="outline: none; font-family: BROmega, sans-serif; line-height: 1.1; margin-top: 20px; margin-bottom: 10px; font-size: 30px; text-size-adjust: 100%;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Development Methodologies Compared </font></span></h2><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><img loading="lazy" class="_2zEKz alignnone" src="https://images.unsplash.com/photo-1561483522-921b3e2af541?ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&q=80" alt="Automotive Software Development" width="1051" height="701" style="outline: none; border: 0px; text-size-adjust: 100%; max-width: 100%; height: auto;"></font></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">To see how model based development methodology can help to tackle these challenges, it is necessary to understand how it differs from a traditional software development methodology used in automotive. </font></span></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Traditionally, development progressed from software to model and, eventually, to a physical prototype, and software was given a primary focus. In model-based design, the key focus is given to the mathematical model that takes part in simulation or system-testing on each stage of development. When the model has undergone a necessary number of iterations, the code is automatically generated and incorporated into a microprocessor. </font></span></p><h3 style="outline: none; font-family: BROmega, sans-serif; line-height: 1.1; margin-top: 20px; margin-bottom: 10px; font-size: 24px; text-size-adjust: 100%;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">The Use of Computer Modeling Techniques </font></span></h3><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">In a traditional design methodology, computer modeling techniques are used only in the first stage of development to create a controller design. Thus, this design is implemented in the programming language and the resulting controller is integrated with a plant model, which further takes part in simulation and controller adjustment.</font></span></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">In model-based software development, computer modeling is used throughout the design process. Graphical design and simulation tools like </span><a href="https://www.mathworks.com/products/matlab.html" style="outline: none; text-size-adjust: 100%;">Matlab</a><span style="outline: none; text-size-adjust: 100%;">, </span><a href="https://www.mathworks.com/products/simulink.html" style="outline: none; text-size-adjust: 100%;">Simulink</a><span style="outline: none; text-size-adjust: 100%;">, and </span><a href="https://www.mathworks.com/products/stateflow.html" style="outline: none; text-size-adjust: 100%;">Stateflow</a><span style="outline: none; text-size-adjust: 100%;"> allow creating a mathematical model of a component and the entire system as one dynamic system. This allows testing and perfecting the model before the actual code or prototype are created. </span></font></p><h3 style="outline: none; font-family: BROmega, sans-serif; line-height: 1.1; margin-top: 20px; margin-bottom: 10px; font-size: 24px; text-size-adjust: 100%;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Testing</font></span></h3><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Another notable difference is that traditional methodology carries out testing on the final stage of development after a controller is simulated and adjusted. Contrary to that, in model-based design, the reaction of the system to the model alterations are seen right away. Thus, the functionality of a component is tested synchronously with the development process. </font></span></p><h2 style="outline: none; font-family: BROmega, sans-serif; line-height: 1.1; margin-top: 20px; margin-bottom: 10px; font-size: 30px; text-size-adjust: 100%;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Why Model-Based Design?</font></span></h2><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">We have mentioned in one of our </span><a href="https://www.fpt-software.com/automotive-tech-blog/pros-and-cons-of-model-based-software-development/" style="outline: none; text-size-adjust: 100%;">recent articles</a><span style="outline: none; text-size-adjust: 100%;"> that model-based design is a fundamental change, which makes some companies resist the change. However, we, in </span><a href="https://www.fpt-software.com/" style="outline: none; text-size-adjust: 100%;">FPT Software</a><span style="outline: none; text-size-adjust: 100%;">, think that this transition is inevitable. Here are the top advantages of model-based software development that prove the methodology is here to stay:</span></font></p><ul style="outline: none; margin-bottom: 10px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;"> </span><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Productivity</span><span style="outline: none; text-size-adjust: 100%;"> </span></font></li></ul><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">The methodology cuts the time for the development of sketches, mockups, and prototypes. Design tools allow easier manipulation with a model and automate many processes, including testing, documentation and code generation. On top of this, the generated models, simulation blocks and even vehicle tests can be saved and reused in the process of development of other components. All these factors have a dramatic impact on the overall effectiveness of the development team. </font></span></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"> </font></p><ul style="outline: none; margin-bottom: 10px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><li style="outline: none; text-size-adjust: 100%;"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;"><font color="#ffffff">Coding </font></span></li></ul><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"> </font></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">The great advantage of the model-based design is that it eliminates the need for coding. Considering that modern cars now need around </span><a href="https://www.visualcapitalist.com/millions-lines-of-code/" style="outline: none; text-size-adjust: 100%;">100 million lines of code</a><span style="outline: none; text-size-adjust: 100%;">, the change reduces development time and cost dramatically and results in fewer coding errors. </span></font></p><ul style="outline: none; margin-bottom: 10px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><li style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;">Change Management </span><span style="outline: none; text-size-adjust: 100%;"> </span></font></li></ul><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff"><img loading="lazy" class="_2zEKz alignnone" src="https://images.unsplash.com/photo-1567789884554-0b844b597180?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1000&q=80" alt="Model-Based Software Development for Automotive" width="1050" height="700" style="outline: none; border: 0px; text-size-adjust: 100%; max-width: 100%; height: auto;">Block-oriented workflow and the ability to test the model functionality in a system early in the development process makes it easier to spot issues and make changes. Since the code is generated after the model is validated, manufacturers avoid wasting time and resources on coding components that are based on erroneous specifications. This way, the model-based design allows making major changes even in the late stages of product development. </font></span></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"> </font></p><ul style="outline: none; margin-bottom: 10px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><li style="outline: none; text-size-adjust: 100%;"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;"><font color="#ffffff">Consistency </font></span></li></ul><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"> </font></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">This methodology reduces documentation cost and errors, as system documentation is generated automatically from a model description. Since both documentation and the actual code stem from a single model description, the implementation phase is easier and more consistent. </font></span></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"> </font></p><ul style="outline: none; margin-bottom: 10px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><li style="outline: none; text-size-adjust: 100%;"><span style="outline: none; font-weight: 700; text-size-adjust: 100%;"><font color="#ffffff">Reliability</font></span></li></ul><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"> </font></p><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">The great idea behind a model-based design is that it continuously looks at how an individual component affects the functionality of the system as a whole. Such focus on the multiple dependencies makes the performance of the system more reliable. Multiple simulations, continuous testing and automatic code generation contribute to system reliability too. </font></span></p><h2 style="outline: none; font-family: BROmega, sans-serif; line-height: 1.1; margin-top: 20px; margin-bottom: 10px; font-size: 30px; text-size-adjust: 100%;"><span style="outline: none; text-size-adjust: 100%;"><font color="#ffffff">Concluding Ideas</font></span></h2><p style="outline: none; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-size-adjust: 100%; font-family: BROmega, sans-serif; font-size: 14px;"><font color="#ffffff"><span style="outline: none; text-size-adjust: 100%;">Despite certain </span><a href="https://www.fpt-software.com/automotive-tech-blog/what-challenges-has-the-model-based-design-faced-in-2019/" style="outline: none; text-size-adjust: 100%;">challenges to model-based design</a><span style="outline: none; text-size-adjust: 100%;">, this approach to automotive software development is definitely preferred over a traditional approach focused on code generation. It allows to increase the development time, reduce the cost, and make the system more complex yet reliable – this is what the market requires of </span><a href="https://www.fpt-software.com/industries/automotive/" style="outline: none; text-size-adjust: 100%;">automotive IT consulting</a><span style="outline: none; text-size-adjust: 100%;"> now. </span></font></p>