Verification and Validation Automating Best Practices To Improve Design Quality
Verification and Validation Automating Best Practices To Improve Design Quality
Battery Management
Stability Control Automatic Parking Infotainment
Emergency Braking Instrument Panel
Adaptive Cruise Control Smart Junction Box Airbag DC/DC Converter
Body Control Module Electric Power16 M
Steering Propulsion Motor Control
Voice Recognition Engine Management Navigation
3
Using Simulink Models for Specification
Find requirements defects
earlier in the process
Executable
Requirements C/C++
Specification
Hand Code
4
Complete Model Based Design
Find requirements defects
earlier in the process
Equivalence
Component and Design Review and Testing
System Level Testing Static Analysis
Equivalence
Simulink Models Checking
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated Code
6
Key Takeaways
7
Why do 71% of Embedded Projects Fail?
Sources: Christopher Lindquist, Fixing the Requirements Mess, CIO Magazine, Nov 2005
8
Challenges with Requirements
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated Code
9
Gap Between Requirements and Design
Requirements
Simulink Models
Model used for
Executable
production code C/C++
Specification
generation
Generated Code
10
Simulink Requirements
Author
Manage Updates
11
Requirements Editor
12
Requirements Editor
13
Import Requirements from External Sources
Import
Simulink Requirements Editor
IBM Rational
DOORS
14
Requirements Perspective View of Model
15
Requirements Perspective View of Model
16
Requirements Traceability
High Level Reqs
Derives
Low Level Req
REQ 3.1 ENABLING CRUISE CONTROL ENABLE SWITCH DETECTION
Cruise control is enabled If the Enable switch is
when ….. pressed ……
Implemented Verified
By By
Design Model
x
Generated Code
Test Case
17
Track Implementation and Verification Status
Implemented Passed
Failed
Justified
No Result
Missing
Missing
18
Respond to Requirements Change
Implements
Original Requirement
If the switch is pressed and the counter reaches 50
then it shall be recognized as a long press of the switch.
Updated Requirement
19
Verify Design to Guidelines and Standards
Review and
static analysis
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
20
Automated Static Analysis of the Design
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
21
Navigate to Problematic Blocks
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
22
Guidance Provided to Address Issues w/ Auto-Correct
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
23
Modeling Guidelines for High-Integrity Systems
http://www.mathworks.com/help/pdf_doc/simulink/hi_guidelines.pdf 24
Built in Checks for Industry Standards and Guidelines
• EN 50128
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
25
Configure and Customize Static Analysis
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
26
Generate Reports for Reviews and Documentation
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
27
Checks for Standards and Guidelines are often
Performed Late
Rework
Static
Analysis
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
28
Shift Verification Earlier with Edit-Time Checking
Static
Edit-Time
• Avoid rework
Checking
Analysis
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
29
Find Compliance Issues while you Design
30
Modeling Standards Checking with Simulink Check
Additional Checks
– Model Metrics
– Tool Bug Reports (Cert Kit)
– Requirements Consistency
31
Assess Quality with Metrics Dashboard
• Consolidated view
of metrics
• Size
• Compliance
• Complexity
• Identify where
problem areas may
be
32
Grid View for Metrics Analysis
Visualize Standards
Check Compliance
– Find Issues
– Identify patterns
– See hot spots
Legend:
Red: Fail
Orange: Warning
Green: Pass
Gray: Not run
33
Static Analysis for Detecting Design Errors
Integer Overflow Dead Logic
Static
Analysis
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
35
Systematic Functional Testing
Test Case
Inputs Assessments
36
Test Execution and Results Analysis
37
Coverage Analysis to Measure Test Completeness
Simulink
• Identify testing gaps
• Missing requirements
Stateflow
• Unintended Functionality
Generated Code
• Design Errors
Coverage Reports
38
Test Case Generation for Functional Testing
Test Objective
Specify functional test
objectives
– Define custom objectives that signals
must satisfy in test cases
Test Objective
39
Prove Design Meets Requirements
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
40
Static Code Analysis
Is integrated Is interface between
Is the code code free of generated and other
compliant run-time code fully tested?
to MISRA? errors?
Hand Code +
Simulink Models
Model used for C/C++
Executable
Requirements production code C/C++
Specification
generation
Generated Code
42
Equivalence Testing
Equivalence
Checking
Simulink Models
Model used for
Executable
Requirements production code C/C++
Specification
generation
Generated code
43
Equivalence Testing
Software in the Loop (SIL) Re-use tests developed for model to test code
– Show functional equivalence, model to code
– Execute on desktop / laptop computer Check for equivalent outputs model to code
Target
Board 44
Qualify tools with IEC Certification Kit and
DO Qualification Kit
Qualify code generation and verification tools
45
Lear Delivers Quality Body Control Electronics
Faster Using Model-Based Design
Challenge
Design, verify, and implement high-quality automotive
body control electronics
Solution
Use Model-Based Design to enable early and
continuous verification via simulation, SIL, and HIL
testing
Lear automotive body electronic control
Results unit.
Requirements validated early. Over 95% of “We adopted Model-Based Design not only to deliver better-
issues fixed before implementation, versus 30%
quality systems faster, but because we believe it is a smart
previously
choice. Recently we won a project that several of our
Development time cut by 40%. 700,000 lines of competitors declined to bid on because of its tight time
code generated and test cases reused constraints. Using Model-Based Design, we met the original
throughout the development cycle delivery date with no problem."
Zero warranty issues reported - Jason Bauman, Lear Corporation
Link to user story
46
Customer References and Applications
49
Thank You!
50