圈复杂度度量
度量 ID
度量 ID:mathworks.metrics.CyclomaticComplexity
描述
注意
此度量将在以后的版本中删除。请改用模型维护仪表板中的设计圈复杂度度量:
有关详细信息,请参阅Migrating from Metrics Dashboard to Model Maintainability Dashboard。
度量类型:架构
模型顾问检查 ID:mathworks.metricchecks.CyclomaticComplexity
使用此度量可计算模型的圈复杂度。圈复杂度是模型结构复杂度的度量。由于此分析未考虑的代码特征(例如合并逻辑和错误检查),因此生成代码的复杂度度量可能与模型的复杂度度量不同。为计算对象(例如模块、图或状态)的圈复杂度,Simulink® Check™ 使用以下公式:
N 是对象表示的决策点数,on 是第 n 个决策点的结果数。该计算将向量化运算或 Multiport switch 模块视为单个决策点。该工具将模型、原子子系统和 Stateflow® 图的复杂度数加 1。
结果会提供以下各项的局部和聚合圈复杂度:
模型
子系统
图
MATLAB® 函数
局部复杂度是对象在其层次结构级别上的圈复杂度。聚合圈复杂度是对象及其后代的圈复杂度
此度量适用于 Simulink Check。要收集此度量的数据,请将 getMetrics
与度量标识符 mathworks.metrics.CyclomaticComplexity
结合使用。
将 slmetric.metric.AggregationMode
属性设置为 Sum
。
计算详细信息
度量:
无法在库模型上运行。
可以分析封装子系统中的内容。
不分析非活动变体。
(如果指定)会分析库链接模块或引用模型的内容。
不在加速模式下分析引用模型。
收集
要使用模型顾问收集此度量的数据,请在按任务 > 模型度量 > 复杂度度量中运行圈复杂度度量检查。模型顾问检查会显示根模型以及系统中 Simulink 和 Stateflow 对象的局部圈复杂度。该检查不分析引用模型,也不返回聚合结果。
结果
对于此度量,slmetric.metric.Result
的实例提供以下结果:
Value
:局部圈复杂度。AggregatedValue
:聚合圈复杂度。Measures
:不适用。
有关复杂度的详细信息,请参阅:
Stateflow 图的圈复杂度 (Simulink Coverage)
指定覆盖率选项 (Simulink Coverage)