主要内容

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

总体设计圈复杂度

自 R2022b 起

度量 ID

slcomp.OverallCyclomaticComplexity

描述

使用此度量来确定单元或组件的整体设计圈复杂度。

设计圈复杂度是指通过一个设计可能存在的执行路径的数量。一般来说,设计中的路径越多,设计就越复杂。当设计的圈复杂度较低时,设计通常更容易阅读、维护和测试。设计圈复杂度计算为决策路径数加一。该度量加 1 是为了考虑默认路径所代表的执行路径。设计圈复杂度包含了默认路径,因为该度量识别了执行路径中的每个可能结果,包括默认结果。

例如,if-else 语句的设计圈复杂度为 2,因为 if 语句表示一个决策,而 else 语句表示默认路径。默认路径不计入决策次数,因为没有做出任何决策来达到默认状态。

function y = fcn(u)
    if u < 0
        % one decision
        y = -1*u;
    else
        % default path
        % zero decisions
        y = u;
    end
end

整体设计圈复杂度度量计算单元或组件中的执行路径总数。默认路径每个单元或组件只计算一次。

整体设计圈复杂度等于以下各项之和:

注意

模型可维护性仪表板计算设计圈复杂度,这与圈复杂度和其他复杂度计算不同。

支持的工件

您可以针对Units组件收集此度量。要控制仪表板将哪些对象分类为单元或组件,请参阅将模型按层级结构分类为组件或单元

计算详细信息

该度量的最小值为 1,因为每个设计至少有一个默认执行路径,即使在设计中没有做出任何决策。

收集

要收集此度量的数据,请将 getMetrics 与度量标识符 slcomp.OverallCyclomaticComplexity 结合使用。

结果

对于此度量,metric.Result 的实例返回 Value 作为单元或组件的总体设计圈复杂度。

示例

假设您的单元包含四个 Simulink® 决策、五个 Stateflow® 决策和六个 MATLAB® 决策。您的单元的整体设计圈复杂度为 16,因为四个 Simulink 决策、五个 Stateflow 决策、六个 MATLAB 决策和一个默认结果之和等于 16。

另请参阅

对象

函数

主题