620 likes | 1.21k Views
Model-based Development. By Ryan Mowry. Modeling Basics. Graphical models of system Entire system or just parts Complex systems easier to understand “Capture key requirements and demonstrate correct behavior in simulation”. Software Process. Starts after requirements
E N D
Model-based Development By Ryan Mowry
Modeling Basics • Graphical models of system • Entire system or just parts • Complex systems easier to understand • “Capture key requirements and demonstrate correct behavior in simulation”
Software Process • Starts after requirements • Can cover design, development, and testing
Design and Analysis • 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
Simulation • Simulate model based on inputs and parameters • Observe actual outputs of the model compared to expected • Allows testing parallel to design
Simulation Advantages • Earlier error detection • Easy to test all input ranges • Improve Verification • Able to make changes to the model to reach expected results
Model-in-the-Loop Testing • 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
Software-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 • 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
Implementation • 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
Is Model-based Development Worthwhile? • High costs in new software • Time and cost to learn the model-based approach • Greater time spent during analysis and design of the system
Research in Automotive Industry • 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
Goals of Research • Cost difference in each software phase • Analysis of amount of modeling used • Error Detection • Cost Difference • Quality Criteria • Overall Cost
Research Study Findings • 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
Advantages of Model-based • Do not need to know programming languages • Testing sooner leads to earlier bug detection • Better overall quality • Design reuse for upgraded systems
Disadvantages of Model-based • New Software costs • Training on new software and approach • Abstract code • Lengthy Simulations • Advantages outweigh disadvantages
Simulate, then Design • New methodology in automotive industry • New technologies create major design changes • Simulations help find balance in subsystems • Design comes after balance found through simulating
Model-based Embedded Tools • LMS Imagine Lab • Modelica • CyDesign • Dymola • MapleSim • VisSim • MATLAB and Simulink • EicasLab • Rational Rhapsody
MATLAB and Simulink • Block diagram of desired system • Diagram hierarchy of components • Useful in sharing components with other models
Running Simulation • Graphical output to view results • Debug Simulation • Step forward to find when state changes • Or step backwards (Rewind Simulation) • Run on target hardware
Generating Code • 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
Simulink demo • Demo Simulink Simulation process
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/>.