Model-based Development
description
Transcript of Model-based Development
Model-based Development
By Ryan Mowry
Graphical models of system
Entire system or just parts
Complex systems easier to understand
“Capture key requirements and demonstrate correct behavior in simulation”
Modeling Basics
Software Process Starts after
requirements
Can cover design, development, and testing
Representation of system
Inputs
Outputs
Mathematical Operations
Design and Analysis
Match model to target architecture
Correct data types for input/output
Interactions with other systems
Design and Analysis
Design Example
Simulate model based on inputs and parameters
Observe actual outputs of the model compared to expected
Allows testing parallel to design
Simulation
Earlier error detection
Easy to test all input ranges
Improve Verification
Able to make changes to the model to reach expected results
Simulation Advantages
Testing a model using input from another model
Models interact with one another so useful data can be obtained by testing current model with a working existing model
Earlier error detection
Model-in-the-Loop Testing
Testing model in conjunction with generated or handwritten code on one machine
Useful when parts of generated code are updated to test compatibility with old code
Also for handwritten code that will be used with generated code
Software-in-the-Loop Testing
Software-in-the-Loop Testing Test software algorithm using model instead
of needing actual hardware
Processor-in-the-Loop Testing Generated code executes on target
processor
Test code on target processor with system model using actual I/O (CAN)
One step from hardware testing allows for more error detecting before needing actual expensive hardware
Hardware-in-the-Loop Testing Use generated code for both target
architectures to test code functionality
Real-time system simulates actual target device to detect more errors between systems
Last testing before integrated testing
PIL and HIL
Verify model and simulation meet requirements
Auto-Generate code from model
Code and filenames very abstract
Hard to follow and understand
Implementation
Code already tested
Changes to model if necessary
Regenerate code from corrected model instead of changing code
Floating and fixed point conversion
Implementation
High costs in new software
Time and cost to learn the model-based approach
Greater time spent during analysis and design of the system
Is Model-based Development Worthwhile?
Model-based Development became popular among automotive companies
Some companies thought lowered cost, others thought no difference or even higher cost
Global research study by Altran Technologies, chair of software and systems engineering, and the chair of Information Management of the University of Technology in Munich
Research in Automotive Industry
Cost difference in each software phase
Analysis of amount of modeling used Error Detection
Cost Difference
Quality Criteria
Overall Cost
Goals of Research
Software Phase Analysis
Requirements Cost Change
Number of Errors Detected
Quality Criteria
Overall Cost
Modeling helped cut overall costs of the project
Increased quality and bug detection
Less than 60% implementation of model-based development yielded the best results but depends on project
Research Study Findings
Do not need to know programming languages
Testing sooner leads to earlier bug detection
Better overall quality
Design reuse for upgraded systems
Advantages of Model-based
New Software costs
Training on new software and approach
Abstract code
Lengthy Simulations
Advantages outweigh disadvantages
Disadvantages of Model-based
New methodology in automotive industry
New technologies create major design changes
Simulations help find balance in subsystems
Design comes after balance found through simulating
Simulate, then Design
LMS Imagine Lab Modelica CyDesign Dymola MapleSim VisSim MATLAB and Simulink EicasLab Rational Rhapsody
Model-based Embedded Tools
Block diagram of desired system
Diagram hierarchy of components
Useful in sharing components with other models
MATLAB and Simulink
Block Diagram Example
Component Hierarchy
Graphical output to view results
Debug Simulation
Step forward to find when state changes
Or step backwards (Rewind Simulation)
Run on target hardware
Running Simulation
Once model and simulation meet requirements and errors have been fixed, code can be generated for system.
Simulink allows for generating code in C,C++,HDL, and PLC
Generating Code
Demo Simulink Simulation process
Simulink demo
Sources Broy, M.; Krcmar, H.; Zimmerman, J.; Kirstan, S.: Model-based
Software Development – Its Real Benefit. EETimes, March 2011 Gegic, G,: In-the-Loop Testing Aids Embedded System
Validation. http://www2.electronicproducts.com/In_the_loop_testing_aids_embedded_system_validation-article-FAJH_Mathworks_Jul2009-html.aspx, August 3, 2009
Ledin, J.; Dickens, M.: Automatic Embedded Code Generation from Simulation Models. RTC Magazine. http://www.rtcmagazine.com/articles/view/100276, December 2004
Morey, B: ‘Simulate, then Design’ Emerges as New Engineering Methodology. SAE OHE, September 1, 2011
"Simulink." Simulation and Model-Based Design. N.p., n.d. Web. 24 Oct. 2012. <http://www.mathworks.com/products/simulink/>.