主要内容

本页采用了机器翻译。点击此处可查看英文原文。

评估 ISO 26262 的模型规模和复杂性

您可以根据 ISO 26262-6:2018 标准,使用模型可维护性仪表板来评估模型的大小和复杂性。仪表板可监控工程中的设计工件,并提供每个软件单元和组件的大小、复杂程度和架构概览。仪表盘提供以下功能:

  • 根据 ISO 26262-6:2018 第 5.4.3 条中的表格,在模型层面评估复杂性的质量度量。

  • 根据 ISO 26262-6:2018 第 7.4.3 条中的表格,对软件组件的结构体、大小和复杂性以及接口的大小进行质量度量。

  • 工程设计工件列表,按软件单元和组件进行组织。

为了帮助您在设计工件中实现低复杂度和低规模,请使用模型可维护性仪表板遵循以下自动和手动审查步骤。有关如何评估基于需求的测试活动的质量和完整性的信息,请参阅 评估 ISO 26262 的基于需求的测试

打开模型维护仪表板

使用模型可维护性仪表板分析设计工件:

  1. 打开一个包含您的设计工件的工程。对于此示例,在 MATLAB® 命令行窗口中,输入:

    openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
    openProject("cc_CruiseControl");
    有关如何为您的工件创建工程的信息,请参阅 创建工程以使用模型设计和模型测试仪表板

  2. 要打开模型可维护性仪表板,请使用以下方法之一:

    • 工程选项卡的工具部分中,点击模型设计仪表板

    • 在工程中打开一个模型,然后在 App 库中点击模型设计仪表板

    • 在命令行窗口中,输入:

      modelDesignDashboard

    仪表盘窗口启动,并为软件组件 cc_CruiseControl 打开一个新的模型可维护性选项卡。模型可维护性仪表板可以收集工程中 Units组件的度量结果。要控制仪表板将哪些对象分类为单元或组件,请参阅将模型按层级结构分类为组件或单元

仪表板小组件汇总了与设计中每个软件单元和组件相关的设计工件的大小、架构和复杂性测量结果。有关使用模型可维护性仪表板的更多信息,请参阅 使用模型可维护性仪表板监控设计复杂性

审查设计工件的可维护性度量

ISO 26262-6 第 5.4.3 条要求设计保持低复杂度。ISO 26262-6 第 7.4.3 条要求设计必须体现模块化和可维护性。为了满足这些需求,请在设计中使用合适的软件结构体,并限制软件组件和接口的大小和复杂性。

以下是一个示例清单,可帮助根据 ISO 26262-6 审查设计规模、架构和复杂性。对于清单中的每个项目,使用相应的仪表板度量执行审查活动。请参考并修改此示例清单,以满足您的应用需求。

检查清单项目复习活动仪表盘度量理由
1 - 该单元或组件在模型层面的复杂度是否较低?

检查整体设计的圈复杂度是否较低。

组件结构部分,查看复杂度小组件。

Complexity widget in Component Structure section

度量 ID - slcomp.OverallCyclomaticComplexity

有关详细信息,请参阅总体设计圈复杂度

整体设计圈复杂度是 Simulink®、Stateflow® 和 MATLAB 设计工件的执行路径总数。一般来说,设计中的路径越多,设计就越复杂。

2 - 该单元或组件是否使用了合适的模型结构体?

检查最大层宽和层深是否较低。点击深度小组件,查看构成单元或组件深度的模型图层表格。点击广度小组件,查看构成单元或组件宽度的模型图层表格。

组件结构部分,查看深度广度小组件。

Depth and Breadth widgets in Component Structure section

度量 ID - slcomp.MaxLayerDepth

度量 ID - slcomp.MaxLayerBreadth

有关详细信息,请参阅最大层深度最大层宽

在具有子模型层次结构的模型中,最大层深度计算层次结构子模型的最大深度。最大层宽计算模型层上直接子层的最大数量。在层次模型结构体中,最大深度和最大宽度通常成正比。如果一个度量结果明显大于另一个指标结果,则说明该结构体没有正确的层次结构。

3 - 该单元或组件是否具有合理数量的接口?

检查组件接口的大小。点击组件接口部分中的控件,查看与该设计相关的接口表格。

组件接口部分,查看输入端口输出端口输入信号输出信号的小组件。

Port and signal metric results in Component Interface section

度量 ID - slcomp.InterfacePorts

度量 ID - slcomp.ComponentInterfaceSignals

有关详细信息,请参阅输入输出组件接口端口输入输出组件接口信号

组件接口的尺寸应为适合设计的最小尺寸。合适的接口大小应该是简单、模块化和易于维护的。

4 - 设计的各个方面是否保持了较低的复杂度?

检查设计中与 Simulink、Stateflow 和 MATLAB 工件相关的设计圈复杂度值和决策计数分布。点击设计圈复杂度细分部分中的小组件,查看显示与设计工件相关的决策数量的表格。

设计圈复杂度细分中,查看复杂度列中的值和分布列中的决策分布。将鼠标悬停在分布 bin 上即可查看详细信息。

Tooltip for distribution bin in Design Cyclomatic Complexity Breakdown section

度量 ID - slcomp.SLCyclomaticComplexity

度量 ID - slcomp.SFCyclomaticComplexity

度量 ID - slcomp.MatlabCyclomaticComplexity

有关详细信息,请参阅设计圈复杂度分解

Simulink、Stateflow 和 MATLAB 的设计圈复杂度值是与这些类型的工件关联的执行路径总数。一般来说,设计中的路径越多,设计就越复杂。分布列显示了设计中决策路径出现的位置。

5 - 设计的每个方面是否都采用了适当的模块化设计?检查设计中 Simulink、Stateflow 和 MATLAB 工件的架构。点击 Simulink 架构Stateflow 架构MATLAB 架构部分中的小组件,即可查看显示与设计工件相关的决策数量的表格。

Simulink 架构Stateflow 架构MATLAB 架构部分中,查看计数列中的值和分布列中的决策分布。将鼠标悬停在分布 bin 上即可查看详细信息。

Count column and Distribution bins for Simulink Architecture section

如果您的设计部分很大、需要做出很多决定或者难以阅读,那么这个设计就很难进行测试和维护。使用度量结果来确定是否要重构设计以识别更小的可测试单元,或者重构模型以提高可读性。

参考资料:

  • ISO 26262-6:2018(en) Road vehicles — Functional safety — Part 6:Product development at the software level, International Standardization Organization

另请参阅

|

主题