主要内容

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

在度量板中修改、删除和添加度量阈值

度量盘使用度量阈值来确定度量数据在仪表盘中的显示方式。

根据度量阈值,仪表盘将度量数据分类为:

Compliant - 度量数据在可接受的范围内。小组件中的度量数据显示为绿色。仅包含符合规范的度量数据的小组件会显示绿色对勾图标

Warning - 需要审核的度量数据。小组件中的度量数据显示为黄色。包含警告但没有不合度量数据的小组件会显示黄色三角形图标

NonCompliant - 需要您修改模型的度量数据。小组件中的度量数据以红色显示。包含不合度量数据的小组件会显示红色圆圈图标

您可以使用分类度量数据来评估模型的设计状态和质量。仪表盘中的一些小组件已经包含默认的度量阈值。如果要使用除默认阈值之外的阈值,可以自定义度量阈值。

此示例展示了如何自定义度量阈值,以帮助您识别模型的问题和不合规的度量数据。

获取默认度量阈值

度量盘有两种配置类型:

  • slmetric.dashboard.Configuration - 仪表盘配置,用于度量盘中显示的布局和小组件类型。

  • slmetric.config.Configuration - 度量配置,用于指定阈值和自定义度量系列。

在这个示例中,您可以使用 slmetric.config.Configuration 对象来指定度量仪表板的阈值。

1.打开度量盘的默认度量配置。

metricConfig = slmetric.config.Configuration.openDefaultConfiguration();

2.从度量配置中获取阈值配置。

thresholdConfig = getThresholdConfigurations(metricConfig);

3.使用函数 getThresholds 返回默认阈值。

defaultThresholds = getThresholds(thresholdConfig);

默认阈值包括度量 mathworks.metrics.CloneContent 的阈值。潜在重用小组件显示由 mathworks.metrics.CloneContent 提供的度量数据。在度量仪表板的架构部分中,潜在重用结果的默认阈值为 0%。度量仪表板仅将潜在重用小组件中的度量数据分类为合规,如果该值小于或等于 0%。

4.获取与潜在重用结果关联的阈值。

potentialReuse = findobj(defaultThresholds,"MetricID","mathworks.metrics.CloneContent")
potentialReuse = 
  Threshold with properties:

     MetricID: 'mathworks.metrics.CloneContent'
    AppliesTo: 'Value'

修改现有度量阈值

度量板使用分类将度量数据分类为符合指定阈值的合规、警告或不合规。

使用函数 getClassifications 获取仪表板用于根据阈值对潜在重用结果进行分类的分类。

C = getClassifications(potentialReuse);

Classification 数组 C 包含:

  • C(1) - 符合潜在再利用标准的分类结果

  • C(2) - 警告潜在重用结果的分类

变更合规值

1.查看符合条件的潜在再利用结果的当前范围。

C(1).Range
ans = 
  MetricRange with properties:

           Start: -Inf
             End: 0
    IncludeStart: 0
      IncludeEnd: 1

根据当前的分类,如果潜在重用值大于负无穷大且小于或等于零,度量数据符合要求。这意味着,如果潜在重用值为 0%,则度量仪表板会将度量数据显示为合规。属性 IncludeStartIncludeEnd 决定范围是否包含 StartEnd 值。

2.修改符合潜在再利用标准的结果范围。对于本例,允许潜在再利用值小于 20% 的情况符合规定。

C(1).Range.End = 0.2;

请注意,度量 mathworks.metrics.CloneContent 期望该值是一个分数,表示克隆子组件的总数,因此在本例中,End 被指定为 0.2。有关详细信息,请参阅模型度量

更改警告值

1.查看当前警告潜在重用结果的范围。

C(2).Range
ans = 
  MetricRange with properties:

           Start: 0
             End: Inf
    IncludeStart: 0
      IncludeEnd: 0

根据当前的分类,如果潜在重用值介于零和无穷大之间,度量仪表板将显示警告。这意味着,如果潜在重用值大于 0%,度量仪表板将显示度量数据并发出警告。

2.修改警告潜在重用结果的范围。在本例中,指定度量仪表板仅在潜在重用大于 20% 时显示警告。

C(2).Range.Start = 0.2;

3.查看修改后的潜在再利用阈值范围。

C.Range
ans = 
  MetricRange with properties:

           Start: -Inf
             End: 0.2000
    IncludeStart: 0
      IncludeEnd: 1

ans = 
  MetricRange with properties:

           Start: 0.2000
             End: Inf
    IncludeStart: 0
      IncludeEnd: 0

现在,度量仪表板显示潜在重用值小于或等于 20% 为合规,大于 20% 的值则发出警告。对于模型 vdp潜在再利用值小于 20%,显示为符合要求。

如果想在本示例中查看更新后的度量仪表板阈值,请在 MATLAB® 命令行窗口中输入以下代码:

save(metricConfig,"FileName","MetricConfig.xml");
slmetric.config.setActiveConfiguration(fullfile(pwd,"MetricConfig.xml"));
metricsdashboard vdp

该代码将更新后的度量配置保存到 XML 文件中,将该文件指定为活动配置,并打开度量仪表板。在度量板的工具栏中,点击非编译度量以收集度量数据并查看度量阈值。

移除度量阈值

假设您想移除默认阈值。您可以使用函数 removeThreshold 从配置中删除阈值。

移除潜在重用结果的阈值。

removeThreshold(thresholdConfig,potentialReuse);

现在度量配置中不包含潜在重用结果的阈值,但包含其他度量数据的默认阈值。

如果要在本示例中查看更新后的度量仪表板阈值,请将更新后的度量配置保存到 XML 文件,将该文件指定为活动配置,然后重新打开度量仪表板。在度量板的工具栏中,点击非编译度量以收集度量数据并查看度量阈值。

添加度量阈值

假设您不希望模型包含超过特定数量的模块。您可以为 Simulink® 模块度量 mathworks.metrics.SimulinkBlockCount 添加阈值,如果模型包含的块数超过指定数量,度量仪表板会将度量数据显示为不合规。在这个示例中,您可以定义一个阈值,以便在模型包含超过 11 个块时,“度量仪表板”将模块计数度量显示为不合规。

在阈值配置中添加一个新的阈值,并将度量指定为 "mathworks.metrics.SimulinkBlockCount",并将度量适用的属性指定为 "AggregatedValue"

customThreshold = addThreshold(thresholdConfig,"mathworks.metrics.SimulinkBlockCount","AggregatedValue")
customThreshold = 
  Threshold with properties:

     MetricID: 'mathworks.metrics.SimulinkBlockCount'
    AppliesTo: 'AggregatedValue'

对于函数 addThreshold,您可以将阈值属性指定为 "Value""AggregatedValue"

在这种情况下,对于度量 mathworks.metrics.SimulinkBlockCount

  • Value - 模块数

  • AggregatedValue - 组件及其子组件的块数

有关其他度量的 ValueAggregatedValue 属性的信息,请参阅 模型度量

指定合规值

1.获取自定义阈值的默认分类。默认分类包含一系列阈值认为符合要求的值。

defaultClassification = getClassifications(customThreshold)
defaultClassification = 
  Classification with properties:

    Category: 'Compliant'
       Range: [1×1 slmetric.config.MetricRange]

2.查看分类中的 Range 属性。

defaultClassification.Range
ans = 
  MetricRange with properties:

           Start: -Inf
             End: Inf
    IncludeStart: 0
      IncludeEnd: 0

默认情况下,分类会将任何值显示为合规,因为合规值的范围是从负无穷大到无穷大。

3.修改合规值的范围,使只有小于 10 的值才合规。

defaultClassification.Range.End = 10;

指定警告值

1.为导致警告的度量数据添加分类。

warningClassification = addClassification(customThreshold,"Warning");

2.修改警告值的范围,使介于 1011 之间的值返回警告。

warningClassification.Range.Start = 10;
warningClassification.Range.End = 11;
warningClassification.Range.IncludeStart = 1; % greater than or equal to 10
warningClassification.Range.IncludeEnd = 1; % less than or equal to 11

该范围包括值 1011,因为 IncludeStartIncludeEnd 设置为 1 (true)。

指定不合规值

1.添加不合度量数据的分类。

noncompliantClassification = addClassification(customThreshold,"NonCompliant");

2.修改不合规值的范围,使大于 11 的值被视为不合规。

noncompliantClassification.Range.Start = 11;
noncompliantClassification.Range.IncludeStart = 0; % greater than 11 (but not equal to 11)

查看更新后的度量仪表板

1.将更新后的度量配置保存为 XML 文件,其中包含更新后的阈值和分类信息。

save(metricConfig,"FileName","MetricConfig.xml");

2.将 XML 文件设置为度量仪表板的活动度量配置。

slmetric.config.setActiveConfiguration(fullfile(pwd,"MetricConfig.xml"));

3.度量仪表板会在下次打开模型仪表板时使用活动配置。

metricsdashboard vdp

4.在度量板的工具栏中,点击非编译度量以收集度量数据并查看度量阈值。

由于模型 vdp 包含的块数超过 11 Simulink 个,度量仪表板显示度量数据不合规。

另请参阅

| |

主题