MATLAB 设计圈复杂度
度量 ID
slcomp.MatlabCyclomaticComplexity
描述
设计圈复杂度是指通过一个设计可能存在的执行路径的数量。一般来说,设计中的路径越多,设计就越复杂。当设计的圈复杂度较低时,设计通常更容易阅读、维护和测试。设计圈复杂度计算为决策路径数加一。该度量加 1 是为了考虑默认路径所代表的执行路径。设计圈复杂度包含了默认路径,因为该度量识别了执行路径中的每个可能结果,包括默认结果。
使用此度量来确定设计中 MATLAB® 代码的设计圈复杂度。
MATLAB 设计圈复杂度是指单元或组件中 MATLAB 代码的执行路径总数。执行路径的数量计算为 MATLAB 个决策、MATLAB 决策计数 个决策,再加上 1 个默认路径。默认路径每个单元或组件只计算一次。
支持的工件
您可以针对Units和组件收集此度量。要控制仪表板将哪些对象分类为单元或组件,请参阅将模型按层级结构分类为组件或单元。
计算详细信息
该度量包括与逻辑运算相关的决策,这些决策可能会在代码执行期间被短路。
收集
要收集此度量的数据,请将 getMetrics 与度量标识符 slcomp.MatlabCyclomaticComplexity 结合使用。
结果
对于此度量,metric.Result 的实例返回 Value 作为单元或组件的 MATLAB 设计圈复杂度。
示例
假设您有一个单元,其中只包含一个代码如下的 MATLAB Function 代码模块:
function y = fcn(u) if u < 0 % one decision y = -1*u; else % default path % zero decisions y = u; end end
对于 if-else 语句,决策数为 1,因为 if 语句代表一个决策,而 else 语句代表默认行为。如果没有做出任何决定,则执行路径遵循默认路径。
如果 MATLAB Function 模块的输入小于零,则 MATLAB Function 模块的输出为输入乘以 -1。
否则,默认情况下,MATLAB Function 模块的输出等于 MATLAB Function 模块的输入。
在这个示例中,MATLAB 决策的数量为 1,因此该单元的 MATLAB 设计圈复杂度为 2。默认路径不包含在决策数中,因为没有做出任何决策来达到默认状态,但默认路径包含在设计圈复杂度中。
MATLAB 设计圈复杂度的值代表了单元中两种可能的执行路径,即:
u < 0和 MATLAB Function 模块的输出是输入乘以 -1。u ≥ 0和 MATLAB Function 模块的输出等于 MATLAB Function 模块的输入。