使用 MATLAB 和 Simulink 进行验证、确认和测试

使用基于模型设计验证和确认嵌入式系统

工程团队使用基于模型设计以及 MATLAB® 和 Simulink® 设计复杂的嵌入式系统,生成产品级 C、C++ 和 HDL 代码。MathWorks 工具使用仿真测试和基于形式化方法的静态分析,在严谨性和自动化方面完善基于模型的设计,以尽早发现错误,达到更高的质量。

借助 MATLAB 和 Simulink,您能够:

  • 追踪需求到架构、设计、测试和代码
  • 证明您的设计符合需求且不存在严重的运行时错误
  • 检查合规性并测量模型和代码的质量
  • 自动生成测试用例,以提高测试覆盖率
  • 生成报告和工件,并对照标准(例如 DO-178ISO 26262)进行认证。

“对比我们过去的手工编码经验,基于模型的设计让我们的人工成本降低了 30%,测试成本缩减了 20%,而生产效率却得到了 30% 以上的提升。我们早于原计划完成了 ECU 开发,同时还建立了自己的自主软件开发团队。”

Daming Li, Weichai Power

使用 MATLAB 和 Simulink 进行验证和确认

需求验证

非形式化文本需求可以存储在文档、电子表格或需求管理工具(例如 IBM® Rational® DOORS®)中,用于启动开发流程。Simulink Requirements™ 可用于查看、创建和管理需求以及您的架构、设计、生成的代码和测试工件。您可以在 System Composer™、Simulink、Stateflow® 或 Simulink Test™ 中的 MATLAB 测试中创建从需求到设计的数字主线。通过这种可追溯性,您可以识别实现或测试缺口,快速了解更改对设计或测试的影响。  您可以查看、同步和管理来自第三方工具的需求,以建立与开发流程中其他工具之间的可追溯性。

借助 Simulink Test 中的临时评估,您可通过可被评估和调试的自然语言格式的精确语义来指定评估,从而验证文本需求。


认证标准合规性

对照标准自动验证模型和代码,这些标准包括 DO-178、ISO 26262、IEC 61508、IEC 62304 和 MathWorks Automotive Advisory Board (MAAB) 风格指南等。Simulink Check™ 提供行业认可的检查和规范,用于识别开发过程中违反标准和指南的情况。您可以创建自定义检查以符合自己的标准或指南。IEC Certification Kit(适用于 ISO 26262 和 IEC 61508)和 DO Qualification Kit(适用于 DO-178)提供了工具资质审查工件、证书和测试套件,帮助您对代码生成和产品验证进行资质审查,并简化嵌入式系统认证。


证明不存在错误和形式化验证需求

形式化验证可找出导致整数溢出、死逻辑、数组访问越界和被零除的隐藏设计错误,无需对设计进行仿真。Simulink Design Verifier™ 可以形式化验证您的设计中不存在错误或安全漏洞。Simulink Design Verifier 还可以证明您的设计符合关键需求。如果发现设计违反需求,它会自动生成反例进行调试。


自动测试生成

它对于识别测试中的漏洞、非预期功能或需求错误具有重要意义。Simulink Coverage™ 可以计算测试期间执行多少模型或生成的代码。它应用行业标准指标,例如条件、判定、修正条件/判定覆盖(MCDC) 以及自定义的覆盖率目标等。Simulink Design Verifier 可以自动生成测试用例来解决测试覆盖率不完整的问题,以实现结构性和功能性覆盖率目标。


静态代码分析

为了验证手写代码和生成的代码,Polyspace® 产品可以使用形式化方法找出缺陷并证明不存在严重运行时错误 - 无需执行测试用例或代码。Polyspace Bug Finder™ 可以检查是否符合 MISRA®、ISO 26262、IEC 61508 和 DO-178 等标准以及 FDA 法规并记录到文档。您可以检查软件安全漏洞,以及是否符合 CWE、CERT-C、ISO/IEC 17961 和其他标准。PolyspaceCode Prover™ 可以执行静态分析,证明在 C 和 C++ 源代码中不存在溢出、被零除、数组访问越界和其他运行时错误。