主要特性

  • 检查是否符合 MAAB 风格指南和高完整性系统设计指南(DO-178、ISO 26262、IEC 61508 和相关行业标准)
  • 模型检查器配置编辑器,包括自定义检查编写功能
  • 用于将模型、代码和测试追溯到需求文档的需求管理界面
  • 进行模型覆盖率分析,可利用软件在环 (SIL)和处理器在环(PIL) 进行生成的代码覆盖率分析
  • 自动进行合规性检查、需求可追溯性分析和组件测试的可编程脚本接口

建立需求和设计元素之间的关系

Simulink Verification and Validation™ 可使您将 Simulink®Stateflow® 模型链接到需求文档中的文本。该工具箱支持 IBM® Rational® DOORS®、Microsoft® Word、Microsoft Excel®、PDF 或 HTML 文件中存储的需求。您可以将关键字和描述应用到 Simulink 中的链接,以便更好地记录您的设计。可自定义界面,以支持各种不同的文档类型和需求管理系统。

将模型对象、测试用例和代码链接到需求文档。

Simulink Verification and Validation 通过将这些链接布置到需求文档中的 Simulink 套件来提供双向可追溯性。该工具可同步 DOORS 等需求管理产品中的链接。要确认需求链接是否和源文档一致,您可以检查已删除或修改后的需求。应用程序编程接口(称为需求管理界面)可帮助您自动进行需求可追溯性分析。

可帮助您扩展测试并生成代码的工具也支持需求链接。您可以将需求链接到 Simulink Test™ 中的测试用例、测试组件和测试序列,并从 Simulink 画布或测试管理器访问链接。可将 Embedded Coder®、HDL Coder™ 或 Simulink PLC Coder™ 生成的代码从代码生成报告超链接到需求文档。这些链接在代码中以注释标签的形式呈现。代码生成报告中的超链接提供了从代码到需求的直接导航。

请访问 MathWorks Connections Program,了解支持 Simulink Verification and Validation 的第三方需求管理解决方案。


使用标准和指标检查模型质量

Simulink Verification and Validation 提供了用于检查的现成的库,可借此验证是否符合风格指南和建模标准。这些检查已经过预先配置,以支持 MathWorks Automotive Advisory Board (MAAB) 风格指南以及用于高集成软件开发的 DO-178、ISO 26262、IEC 61508 和 IEC 62304 标准。您可以使用模型检查器工具执行单个检查或分组检查。每个检查都带有用于解决识别出的问题、警告和错误的详细文档和建议。您可以选择让工具执行更正修复程序,以解决识别出的问题。

使用模型检查器验证是否符合建模标准

Simulink Verification and Validation 通过检查模型是否与下游工具兼容来支持开发流程。例如,
您可以确认模型是否与 Simulink Code Inspector™Simulink Design Verifier™ 等工具兼容。
“模型检查器”功能可显示这些工具检测出的设计问题,如死逻辑和被零除错误。可生成模型指标,从而有助于评估模型的大小、复杂度和可读性。这些指标为开发精简、可移植、可检查的清晰而明确的模型提供指引。

为确保您的模型符合您自己的标准或指南,您可以使用模型检查器 API 和配置编辑器创建您自己的模型检查器检查。您也可以修改内置的建模合规性和行业标准,以创建自定义验证检查。与内置检查相似,这些自定义检查允许您指定您想要模型检查器执行的操作,例如生成错误或自动将修复程序应用到模型。

要自动进行或加快合规性验证,您可以在单机上运行批处理模式检查或在多台机器上与 Parallel Computing Toolbox™ 并行执行。在模型检查器或分析运行结束时生成的 HTML 报告中查看合规性检查结果。

可使用 IEC Certification Kit(符合 ISO 26262 和 IEC 61508) 和 DO Qualification Kit(符合 DO-178)鉴定 Simulink Verification and Validation 是否符合支持的行业标准,其中包括 DO-178、ISO 26262、IEC 61508 和 IEC 62304。

模型检查器中突出显示的违反建模指南示例


测量模型和代码覆盖率

Simulink Verification and Validation 生成模型和代码覆盖率报告,以识别设计中未经测试的元素。覆盖报告测量使用测试用例或测试组件对模型进行验证的程度。该报告确定测试用例或测试组件在整个设计过程中测试执行路径的程度。它针对执行逻辑条件、转换、子系统、在模型中查找表插值区间提供了累积指标。除了模型覆盖之外,Simulink Verification and Validation 还针对 C 语言 S-function 和 Embedded Coder 已经生成的生成代码生成覆盖报告。

覆盖率高的模型表明它们已经过较为充分的测试。Simulink Verification and Validation 生成覆盖率报告并将覆盖率信息直接显示在模型中的模块和子系统上。您可以使用该信息遍历模型并找出设计中未覆盖的功能。之后您决定是否需要修改需求、测试用例或设计以满足覆盖率目标。

使用 Simulink Verification and Validation™ 中的覆盖分析功能检测设计中未经测试的元素。

Simulink Verification and Validation 生成以下覆盖指标:

执行覆盖率是最基本的模型覆盖形式。对于每一个模块或子系统,执行覆盖可确定在仿真过程中是否执行了该选项。

声明覆盖率是 C 语言 S-function 和生成代码的代码覆盖的基本形式。它识别已经执行的代码声明。

圈复杂度测量一个模型的结构复杂度,接近于模型所生成代码的 McCabe 复杂度。

条件覆盖率检查输出其输入的逻辑组合的模块(或代码),如逻辑模块和 Stateflow 转移。

决策覆盖率检查模型中代表决策点的项,如 Simulink Switch 模块、Stateflow 状态或代码中的条件声明。

查找表覆盖率 (LUT) 记录每个插值区间的使用频率。(如果一个测试用例执行每个插值和外推区间至少一次,那么它达到完全覆盖。)

修改条件/决策覆盖率(MC/DC) 分析 RTCA DO-178 中所定义的对安全性起重要作用的软件,并确定逻辑输入是否单独改变输出(对于模型和代码来讲)。

关系边界覆盖率检查模块、Stateflow 图和具有显式或隐式关系运算的 MATLAB® 函数模块。

整数溢出饱和度覆盖率记录 Abs 模块整数溢出饱和度等时间模块的个数。

信号范围覆盖率表示仿真中由每个输出模块对所有 Stateflow 数据对象生成的最小和最大值。

信号大小覆盖率记录模型中所有可变大小信号的最小、最大和分配步长。报告中只包含具有可变大小输出信号的模块。

Simulink Design Verifier 覆盖率记录 Simulink Design Verifier 模块和功能的模型覆盖率数据。