MathWorks Vision for Systematic Verification and Validation

Size: px
Start display at page:

Download "MathWorks Vision for Systematic Verification and Validation"

Transcription

1 MathWorks Vision for Systematic Verification and Validation Bill Aldrich Senior Development Manager Simulink Verification and Validation, Simulink Design Verifier 2016 The MathWorks, Inc. 1

2 Growing Complexity of Automotive Controls Emergency Braking Body Control Module Voice Recognition Power Window Vehicle-to- Infrastructure Power Liftgate Power Seat Battery Management Stability Control Automatic Parking Instrument Panel Adaptive Cruise Control Smart Junction Box Airbag Electric Power Steering Engine Management Infotainment DC/DC Converter Propulsion Motor Control Navigation Transmission Control Forward Camera Adaptive Front Lighting HVAC Control Back-up Camera Long-Range Radar All-Wheel Drive Active Damping 4-Wheel Steer Smart Junction Box Stability Control Vehicle-to-Vehicle E-Call Keyless Entry Short-Range Radar Tire Pressure Monitor Ultrasonic Sensor Source of graphic: 2

3 Growing Complexity of Automotive Controls Emergency Braking Body Control Module Voice Recognition Power Window Battery Management Stability Control Automatic Parking Instrument Panel Adaptive Cruise Control Smart Junction Box Airbag 16 M Electric Power Steering Infotainment DC/DC Converter Propulsion Motor Control Engine Management Navigation Transmission Control Vehicle-to- Infrastructure Power Liftgate 2-3M 6 M Forward Camera Adaptive Front Lighting Power Seat Back-up Camera Long-Range Radar All-Wheel Drive Lines of Code Active Damping 4-Wheel Steer Smart Junction Box Stability Control Siemens, Ford Motor Company Case Study, Siemens PLM Software, 2014 Tire Pressure Monitor Ultrasonic Sensor McKendrick, J. Cars become datacenters on wheels, carmakers become software companies, ZDJNet, 2013 HVAC Control Vehicle-to-Vehicle E-Call Keyless Entry Short-Range Radar 3

4 Growing Complexity of Automotive Controls Emergency Braking Body Control Module Voice Recognition Power Window Vehicle-to- Infrastructure Power Liftgate Today cars Ford Taurus 2012 Boeing 777 Space Shuttle Battery Management Stability Control Automatic Parking Instrument Panel Adaptive Cruise Control Smart Junction Box Airbag 3-4M 500K 50M+ 2-3M 100M 6 M 16 M Electric Power Steering Engine Management Infotainment DC/DC Converter Propulsion Motor Control Navigation Transmission Control Forward Camera Adaptive Front Lighting Power Seat Back-up Camera Long-Range Radar All-Wheel Drive Active Damping 4-Wheel Steer Source: Tire Pressure Monitor Ultrasonic Sensor Lines of Code Smart Junction Box Stability Control HVAC Control Vehicle-to-Vehicle E-Call Keyless Entry Short-Range Radar 4

5 Growing Complexity of Automotive Controls Emergency Braking Body Control Module Voice Recognition Power Window Vehicle-to- Infrastructure Power Liftgate Power Seat Battery Management Stability Control Automatic Parking Instrument Panel Adaptive Cruise Control Smart Junction Box Airbag Electric Power Steering Engine Management Infotainment DC/DC Converter Propulsion Motor Control Navigation Transmission Control Forward Camera Adaptive Front Lighting HVAC Control Back-up Camera Long-Range Radar All-Wheel Drive Active Damping 4-Wheel Steer Smart Junction Box Stability Control Vehicle-to-Vehicle E-Call Keyless Entry Short-Range Radar Tire Pressure Monitor Ultrasonic Sensor Source of graphic: 5

6 Development Challenges 6

7 Development Challenges Representing complex systems 7

8 Development Challenges Representing complex systems Coordinating work across teams 8

9 Development Challenges Representing complex systems Coordinating work across teams Working efficiently 9

10 Development Challenges Representing complex systems Coordinating work across teams Working efficiently Ensuring quality 10

11 Traditional Development Process Textual Requirements Design Specification C/C++ Hand code Object code Manual Coding Compilation and Linking 11

12 Models for Specification Textual Requirements Executable Specification C/C++ Hand code Object code Manual Coding Compilation and Linking 12

13 Model Abstraction Work at an appropriate level of detail Simscape Multibody Simulink Simscape Fluids Simulink Simscape Driveline Stateflow MATLAB 13

14 Complete Model Based Design Workflow, Concept to Code Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 14

15 Complete Model Based Design Workflow, Concept to Code How do you ensure correctness? Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 15

16 Model-Based Design Maturity, Automotive Industry Modeling Enterprise Management Simulation and Analysis 20 0 Process, Tools and Infrastructure Implementation Verification and Validation 16

17 Model-Based Design Maturity, Automotive and Aerospace Enterprise Management Modeling Simulation and Analysis Automotive Aerospace 0 Process, Tools and Infrastructure Implementation Verification and Validation 17

18 Model Based Design Verification Workflow Component and system testing Textual Requirements Executable Specification Review and static analysis Simulink Models Equivalence testing Model used for production code generation Equivalence checking Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 18

19 Model Based Design Verification Workflow Component and system testing Perform simulation Link and review requirements Isolate and test components Measure model coverage Address missing coverage Property proving Simulink Models Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 19

20 Ad-Hoc Simulation: Explore Behavior Virtually 20

21 Model Based Design Verification Workflow Component and system testing Perform simulation Link and review requirements Isolate and test components Measure model coverage Generate tests for missing coverage Manage and organize tests Property proving Simulink Models Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 21

22 Test Harnesses From any subsystem 22

23 Test Harnesses From any subsystem Isolate it with content it to drive inputs and analyze outputs Simulate independently Can be embedded in design model file. 23

24 Test Sequence Block A test sequence block can drive inputs 24

25 Test Sequence Block A test sequence block can drive inputs and asses outputs 25

26 Test Sequence Block Syntax 26

27 Test Sequence Block Syntax Define Inputs 27

28 Defining Pass/Fail Criteria x 28

29 Model Coverage Identify testing gaps: Untested switch positions Subsystems not executed Transitions not taken Many more 29

30 Addressing Missing Coverage Partial Coverage Test Cases 30

31 Addressing Missing Coverage Partial Coverage Test Cases Test Generator Simulink Design Verifier 31

32 Addressing Missing Coverage New Test Cases Partial Coverage Test Cases Test Generator Simulink Design Verifier 32

33 Addressing Missing Coverage New Test Cases Full Coverage Test Cases 33

34 Model Based Design Verification Workflow Component and system testing Perform simulation Link and review requirements Isolate and test components Measure model coverage Generate tests for missing coverage Manage and organize tests Property proving Simulink Models Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 34

35 Model Based Design Verification Workflow Review and static analysis Manual review Standards compliance checking Design error detection Complexity analysis Simulink Models Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 35

36 Detecting Hidden Run-Time Design Errors Design error detection Design Model Integer overflow Division by zero Array out-of-bounds Range violations Dead Logic Highlighted Model 36

37 Detecting Hidden Run-Time Design Errors 37

38 Detecting Hidden Run-Time Design Errors 38

39 Model Based Design Verification Workflow Perform SIL Testing Measure code coverage Verify code with Polyspace Verify consistency with Simulink Code Inspector Equivalence checking Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 39

40 Coverage for Generated Code (R2016a) cruise_control (SIL) 40

41 Coverage for Generated Code (R2016a) Press Play cruise_control (SIL) 41

42 Coverage for Generated Code (R2016a) Press Play cruise_control (SIL) Generated Code Coverage 42

43 Coverage for Generated Code (R2016a) Press Play cruise_control (SIL) Can also be highlighted on model 43

44 Model Based Design Verification Workflow Perform PIL Testing Perform HIL Testing Equivalence testing Textual Requirements Executable Specification Model used for production code generation Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 44

45 Model Based Design Verification Workflow Component and system testing Textual Requirements Executable Specification Review and static analysis Simulink Models Equivalence testing Model used for production code generation Equivalence checking Generated C/C++ code Object code Modelling Code Generation Compilation and Linking 45

46 Model Based Design Verification Workflow 46

47 Systematic Verification Ensure that verification is systematically performed across: All requirements Complete model structure Complete code structure All design behaviors Simulink Design Verifier Simulink Test Simulink Verification & Validation 47

48 Test and Verification Essential activity Expensive to repeat Complex to execute Pain Points 48

49 Test and Verification Essential Expensive Complex More Complete Faster Simpler Frequent, Incremental T&V 49

50 Thank You! 50