Engineering teams use Model-Based Design with MATLAB® and Simulink® to design complex embedded systems and generate production-quality C, C++, and HDL code. MathWorks tools use simulation testing and formal methods-based static analysis to complement Model-Based Design with rigor and automation to find errors earlier and achieve higher quality.
With MATLAB and Simulink, you can:
- Trace requirements to architecture, design, tests, and code
- Prove that your design meets requirements and is free of critical run-time errors
- Check compliance and measure quality of models and code
- Generate test cases automatically to increase test coverage
- Produce reports and artifacts, and certify to standards (such as DO-178 and ISO 26262).
“Compared with our past experience with hand-coding, Model-Based Design enabled us to reduce labor costs by 30%, cut testing costs by 20%, and increase productivity by more than 30%. We completed ECU development ahead of schedule while establishing our in-house software development team.”Daming Li, Weichai Power
Using MATLAB and Simulink for Verification and Validation
Informal text requirements that can be stored in documents, spreadsheets, or in requirements management tools, such as IBM® Rational® DOORS®, initiate the development process. Requirements Toolbox™ allows you to import, view, author, and manage requirements together with your architecture, designs, generated code, and test artifacts. You can create a digital thread from requirements to design in System Composer™, Simulink, Stateflow®, or tests in Simulink Test™. With this traceability, you can identify implementation or testing gaps and quickly understand the impact of a change on the design or test.
You can formalize requirements and analyze them for consistency, completeness, and correctness to validate them earlier using the Requirements Table block in Requirements Toolbox. With Temporal assessments in Simulink Test, you can verify text requirements by specifying assessments with precise semantics in a natural language format that can be evaluated and debugged.
Certification Standards Compliance
Automate verification of models and code to standards such as DO-178, ISO 26262, IEC 61508, IEC 62304, and MathWorks Advisory Board (MAB) style guidelines. Simulink Check™ provides industry-recognized checks and metrics that identify standard and guideline violations during development. You can create custom checks to meet your own standards or guidelines. The IEC Certification Kit (for ISO 26262 and IEC 61508) and DO Qualification Kit (for DO-178 and DO-254) provides tool qualification artifacts, certificates, and test suites to help you qualify code generation and verification products and streamline certification of your embedded systems.
- 11 Best Practices for Developing ISO 26262 Applications with Simulink
- Developing ISO 26262 Process Deployment
- Model Quality Objectives for Collaboration between OEM and Suppliers (24:13)
- MathWorks Advisory Board (MAB) Guidelines
- Enabling Model-Based Design for DO-254 Certification Compliance - White Paper
- How to Define Custom Edit-Time Checks (3:58)
Prove Absence of Errors and Formally Verify Requirements
Formal verification finds hidden design errors that result in integer overflow, dead logic, array access violations, and division by zero without simulating the design. Simulink Design Verifier™ can formally verify that your design is free from errors or security vulnerabilities. Simulink Design Verifier can also prove that your design meets critical requirements. If the tool finds an exception, it generates a counterexample for debugging.
Automatic Test Generation
It is important to identify gaps in testing, unintended functionality, or requirements errors. Simulink Coverage™ calculates how much of the model or generated code is exercised during testing. It applies industry standard metrics such as condition, decision, modified condition/decision (MCDC), and custom coverage objectives. Simulink Design Verifier can automatically generate test cases to address incomplete coverage to achieve structural and functional coverage objectives.
Static Code Analysis
For verification of handwritten and generated code, Polyspace® products use formal methods to find bugs and prove the absence of critical run-time errors—without test cases or code execution. Polyspace Bug Finder™ checks and documents the compliance to standards such as MISRA®, ISO 26262, IEC 61508, DO-178, and FDA regulations. You can check for software security vulnerabilities and standards such as CWE, CERT-C, ISO/IEC 17961, and others. Polyspace Code Prover™ performs static analysis to prove the absence of overflow, division-by-zero, out-of-bounds array access, and other run-time errors in C and C++ source code.
Go from basic tasks to more advanced maneuvers by walking through interactive examples and tutorials.