Simulink Code Inspector

自动审查源代码以满足安全标准

 

Simulink Code Inspector™ 自动将生成的代码与其源模型进行比较,以满足 DO-178 及其他高完整性标准中的代码审查目标。该代码检查器会系统地检查模型中的模块、状态图、参数和设置,以确定它们在结构上是否与所生成代码中的运算、运算符和数据等效。Simulink Code Inspector 提供详细的模型到代码以及代码到模型可追溯性分析。它会生成结构等效和可追溯性报告,您可以将这些报告提交给认证机构,以满足 DO-178 软件编码验证目标。

配合 DO Qualification Kit(面向 DO-178),该产品还可实现对行业标准的支持。

快速入门:

模型准备

Simulink Code Inspector™ 支持一组受约束的建模语义和代码优化,它们通常用于高完整性系统模型。Simulink Code Inspector 提供的兼容性检查器可确定您的模型是否符合该约束集。

您可以从 Simulink Code Inspector 用户界面交互式地调用兼容性检查,也可以使用 MATLAB® 命令以编程方式调用。您可以将模型中被识别为不兼容的模块及其他部分放在一个引用模型中,然后配置 Simulink Code Inspector 以在代码检查期间忽略不兼容的引用模型。然后,您可以对未经自动审查的模型执行手动代码检查。

Simulink Code Inspector 用户界面(左)和模型兼容性检查结果(右)。

代码生成和检查

代码检查独立于代码生成。默认情况下,Simulink Code Inspector 假设代码已经生成。但是,您可以配置检查器以在代码检查过程中生成代码。您还可以指定所生成源代码文件的位置,例如生产编译过程中所用的位置。您可以通过用户界面或命令行调用检查。

Simulink Code Inspector 在代码检查过程中检查以下常规类别:

  • 模型接口
  • 模块行为
  • 模块连接和执行顺序
  • 数据和文件打包
  • 局部变量和功能模型元素

执行的具体分析从高级接口评估到详细的模块执行顺序分析均有涵盖,前者包括检查是否生成了初始化和单步函数,后者用于确定所生成的代码是否保留了两个模块组件之间的数据依赖性。

您可以直接在 MATLAB 中查看检查状态消息,也可以查看详细报告(如下一节所述),报告包含细粒度可追溯性分析,内有到设计对象的交互式链接。

使用 MATLAB 命令执行代码检查,已成功(已验证)。

报告生成

使用 Simulink Code Inspector 可以生成详细描述代码检查结果的报告。您可以指定报告的存储位置。这有助于将报告存档并包含在完整的认证包中。检查报告首先使用模型校验和、路径名和日期/时间戳来确定所检查的确切模型和源代码。然后,它提供所执行的验证和每一项的状态(例如已验证、部分验证或失败)的摘要。报告的详情部分描述了每个文件、函数和所生成代码行的验证结果。

代码检查详情包括:

  • 函数接口验证
  • 模型到代码验证
  • 代码到模型验证
  • 临时变量使用情况

可追溯性详情包括:

  • 模型到代码可追溯性
  • 代码到模型可追溯性

显示代码到模型验证的 Simulink Code Inspector 详细报告。

DO-178 目标

RTCA/DO-178 标准《机载系统和设备认证中的软件注意事项》指定了源代码验证目标。Simulink Code Inspector 提供的自动代码检查可帮助您以更少的时间满足 DO-178 源代码验证目标,具体目标如下表所示。使用 Simulink Code Inspector 配合 Polyspace Bug Finder™ 提供的 MISRA C® 分析器,可以完全满足目标 (3)“源代码可验证”。此外,借助 Polyspace Bug Finder 提供的 MISRA C 分析器等工具,可满足目标 (4)“源代码符合标准”。配合 DO Qualification Kit(面向 DO-178),Simulink Code Inspector 和 Polyspace® 产品可实现对工具鉴定的支持。

与 Simulink Code Inspector 兼容的 DO-178C 目标

附录 A 表 目标 DO-331 参考* 软件等级
表 MB A-5 (1) 源代码符合低层级需求 MB 6.3.4a 节 A、B、C
表 MB A-5 (2) 源代码符合软件架构 MB 6.3.4b 节 A、B、C
表 MB A-5 (3) 源代码可验证 MB 6.3.4c 节 A、B
表 MB A-5 (5) 源代码可以追溯到低层级需求 MB 6.3.4e 节 A、B、C
表 MB A-5 (6) 源代码准确且一致** MB 6.3.4f 节 A、B、C

*DO-331:《DO-178C 和 DO-278A 的基于模型开发与验证补充文档》
**不包括需要编译器和目标代码分析的目标。

DO Qualification Kit。

最新特性

代码生成设置

消除对 Remove Disable Function(移除禁用函数)和 Remove Reset Function(移除重置函数)的限制

Simulink 模块

增加了支持枚举数据类型的模块,并在 Unit Conversion 模块中增加了新的单位转换

MATLAB Function 模块

支持函数调用输出以及 signdeg2radrad2deg 这三个内置函数

代码生成优化

代码检查现支持更多优化

关于这些特性和相应函数的详细信息,请参阅发行说明