主要内容

定制指标仪表板布局和功能

使用模型度量编程接口定制度量仪表板。定制仪表板扩展了使用模型度量来评估模型和代码是否符合大小、复杂性和可读性要求的能力。您可以执行以下指标仪表板定制:

  • 配置法规遵循度量以获得法规遵循,并在Model Advisor配置上发布度量数据。

  • 通过添加自定义指标、删除小部件和配置现有小部件来定制仪表板布局。

  • 通过指定度量阈值,将度量数据分类为兼容、警告和不兼容。

配置合规指标

使用度量仪表板和度量api来获得遵从性,并在您的Model Advisor配置或现有检查组(如MISRA检查)上发布度量数据。有关如何创建自定义配置文件的信息,请参见使用模型顾问配置编辑器定制模型顾问.在您设置好Model Advisor配置之后,按照以下步骤指定您希望获得遵从性并发布度量数据的检查组:

1.要打开模型,在MATLAB命令提示符下,输入以下命令:

vdp

2.打开默认配置并保存相应的slmetric.config.Configuration对象添加到基本工作区。

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

3.创建一个单元格数组,,它指定Model Advisor检查组id用于MAAB、High-Integrity和MISRA检查组。

  • 的值maab对应于MAAB检查的一个子集。

  • 的值hisl_do178对应于高完整性系统检查的一个子集。

  • 的值_SYSTEM_By Task_misra_c检查组ID为MISRA检查组MISRA C建模标准:2012

值= {“maab”“hisl_do178”“_SYSTEM_By Task_misra_c”};

获取Model Advisor检查组ID对于一组检查,打开Model Advisor Configuration Editor并选择包含所需的检查组的文件夹。的检查组ID载于信息选项卡。有关模型Advisor配置编辑器的更多信息,请参见使用模型顾问配置编辑器定制模型顾问

4.要设置配置,请传递单元格阵列setMetricFamilyParameterValues方法。的“ModelAdvisorStandard”字符串是一个标准字符串,必须提供给setMetricFamilyParameterValues方法。

setMetricFamilyParameterValues (metricconfig“ModelAdvisorStandard”、价值观);

5.打开度量仪表板布局的默认配置(即与度量仪表板一起提供的配置)。

dashboardconfig = slmetric.dashboard.configuration.opendefaultConfiguration();

6.获得slmetric.dashboard.Layout对象的slmetric.dashboard.Configuration对象。

布局= getDashboardLayout (dashboardconfig);

7.获取布局对象中的小部件对象。

layoutWidget = getWidgets(布局);

8.从布局中获取合规组。

complianceGroup = layoutWidget (3);

slmetric.dashboard.Layout对象包含以下对象:

  • 一个slmetric.dashboard.Container对象,该对象保存slmetrics.dashboard.Widget类型的对象系统信息.下图中的红色数字1表示系统信息小部件。

  • 一个slmetric.dashboard.Group具有标题的对象大小

  • 一个slmetrics.dashboard.Group具有标题的对象建模指南依从性

  • 一个slmetrics.dashboard.Group具有标题的对象体系结构

在图中,红色数字1、2、3和4表示它们在layoutWidget数组中。

9.建模指南遵从性组包含两个容器。顶部的容器包含高完整性MAAB遵从性和检查问题小部件。红色数字3.1.1、3.1.2和3.1.3表示三个小部件在第一个容器中的顺序。第二个容器包含代码分析警告诊断的警告小部件。

删除高完整性合规小部件。

complianceContainers = getWidgets (complianceGroup);complianceContainerWidgets = getWidgets (complianceContainers (1));complianceContainers (1) .removeWidget (complianceContainerWidgets (1));

10.的度量ID对于配置的MISRA检查符合性度量是“mathworks.metrics.ModelAdvisorCheckCompliance。_SYSTEM_By Task_misra_c”

misraComplianceMetricID =“mathworks.metrics.ModelAdvisorCheckCompliance。_SYSTEM_By Task_misra_c”

度量ID对于配置的检查遵从性指标,格式为<家庭ID>.<模型顾问检查组ID>.

  • 为Model Advisor遵从性配置的度量使用<家庭ID>mathworks.metrics.ModelAdvisorCheckCompliance.配置检查遵从性度量计算为所选Model Advisor通过的Model Advisor检查的比例检查组ID

  • 模型的顾问检查组ID_SYSTEM_By Task_misra_c, 是个检查组ID为MISRA检查组MISRA C建模标准:2012

获取Model Advisor检查组ID对于一组检查,打开Model Advisor Configuration Editor并选择包含所需的检查组的文件夹。的检查组ID载于信息选项卡。有关模型Advisor配置编辑器的更多信息,请参见使用模型顾问配置编辑器定制模型顾问

有关配置的遵从性度量的更多信息,请参见模型指标

11.创建用于可视化MISRA检查遵从性指标的自定义小部件。

misraWidget = complianceContainers (1) .addWidget (“自定义”1);misraWidget。标题= (“MISRA”);misraWidget。VisualizationType =“RadialGauge”;misraWidget.setMetricIDs (misraComplianceMetricID);misraWidget.setWidths (slmetric.dashboard.Width.Medium);

12.条形图小部件当前可视化的高完整性和MAAB检查组。将此小部件指向度量id为MISRA检查问题和MAAB检查问题。

misraIssuesMetricID =“mathworks.metrics.ModelAdvisorCheckIssues。_SYSTEM_By Task_misra_c”;maabIssuesMetricID =“mathworks.metrics.ModelAdvisorCheckIssues.maab”;setMetricIDs (complianceContainerWidgets (3),...({misraIssuesMetricID, maabIssuesMetricID}));complianceContainerWidgets(3)。标签= {“MISRA”“MAAB”};

度量ID对于配置的检查遵从性指标,格式为<家庭ID>.<模型顾问检查组ID>.

  • 为Model Advisor遵从性问题配置的度量使用<家庭ID>mathworks.metrics.ModelAdvisorCheckIssues.已配置的检查遵从性问题度量会计算所选Model Advisor报告的问题数量检查组ID

  • 模型的顾问检查组ID_SYSTEM_By Task_misra_c, 是个检查组ID为MISRA检查组MISRA C建模标准:2012maab是一个检查组ID对应于MAAB检查的子集。

获取Model Advisor检查组ID对于一组检查,打开Model Advisor Configuration Editor并选择包含所需的检查组的文件夹。的检查组ID载于信息选项卡。有关模型Advisor配置编辑器的更多信息,请参见使用模型顾问配置编辑器定制模型顾问

有关配置的遵从性度量的更多信息,请参见模型指标

13.要在本例中此时运行和查看Metrics Dashboard,请在MATLAB命令窗口中输入以下代码行。的保存命令将API信息序列化为XML文件。的slmetric.config.setActiveConfigurationslmetric.dashboard.setActiveConfiguration命令设置激活的配置对象。

保存(metricconfig,“文件名”“MetricConfig.xml”);保存(dashboardconfig,“文件名”“DashboardConfig.xml”);slmetric.config.setActiveConfiguration (fullfile (pwd,“MetricConfig.xml”));slmetric.dashboard.setActiveConfiguration (fullfile (pwd,“DashboardConfig.xml”));

14.要打开Metrics Dashboard,请在MATLAB命令窗口中输入以下代码。

metricsdashboardvdp

15.单击所有指标按钮以运行所有指标。度量仪表板显示MISRA检查的结果,而不是High Integrity检查。

16.关闭度量仪表板。

添加自定义指标到仪表板

创建一个自定义的度量来计数非虚拟块。要在Metrics仪表板上显示此指标,请指定一个小部件。将其添加到大小组中。

1.使用createNewMetricClass函数,创建一个名为nonvirtualblockcount.函数创建一个文件,nonvirtualblockcount.m,在当前工作文件夹中。该文件包含一个构造函数和空度量算法方法。对于本例,请确保您处于可写文件夹中。

className =“nonvirtualblockcount”;slmetric.metric.createNewMetricClass(名称);

2.要编写度量算法,请打开nonvirtualblockcount.m文件并将度量添加到文件中。对于本例,文件nonvirtualblockcount_orig.m包含用于创建度量的逻辑,该度量用于计数非虚拟块。将此文件复制到tononvirtualblockcount.m

拷贝文件nonvirtualblockcount_orig.mnonvirtualblockcount.mf

3.在度量存储库中注册新度量。

[id_metric, err_msg] = slmetric.metric.registerMetric(名称);

新的非虚拟块计数度量有度量IDnonvirtualblockcount

要查看度量引擎的可用度量,请使用slmetric.metric.getAvailableMetrics

availableMetricIDs = slmetric.metric.getAvailableMetrics

4.删除表示Simulink块计数度量的小部件。万博1manbetx这个小部件是大小组中的第一个。大小组是第二layoutWidget数组中。

sizeGroup = layoutWidget (2);sizeGroupWidgets = sizeGroup.getWidgets ();sizeGroup.removeWidget (sizeGroupWidgets (1));

5.添加一个显示非虚拟块计数指标的小部件。对于自定义小部件,默认的可视化类型是单值。如果要使用不同的可视化类型,请为VisualizationType财产。

newWidget = sizeGroup.addWidget (“自定义”1);newWidget。标题= (“Nonvirtual块计数”);newWidget.setMetricIDs (“nonvirtualblockcount”);newWidget.setWidths (slmetric.dashboard.Width.Medium);newWidget.setHeight (70);

6.指定是否有行将自定义小部件与组中的其他小部件分隔开。这些命令指定在小部件的右边有一行。

s.top = false;s.bottom = false;s.left = false;s.right = true;newWidget。setseparator ([s, s, s, s]);

7.要在本例中此时运行和查看Metrics Dashboard,请在MATLAB命令窗口中输入以下代码行。的保存命令将API信息序列化为XML文件。的slmetric.config.setActiveConfigurationslmetric.dashboard.setActiveConfiguration命令设置激活的配置对象。

保存(metricconfig,“文件名”“MetricConfig.xml”);保存(dashboardconfig,“文件名”“DashboardConfig.xml”);slmetric.config.setActiveConfiguration (fullfile (pwd,“MetricConfig.xml”));slmetric.dashboard.setActiveConfiguration (fullfile (pwd,“DashboardConfig.xml”));

8.要打开Metrics Dashboard,请在MATLAB命令窗口中输入以下代码。

metricsdashboardvdp

9.单击所有指标按钮以运行所有指标。度量仪表板显示非虚拟块计数度量的结果,而不是Simulink块计数度量。万博1manbetx

10.关闭度量仪表板。

添加指标阈值

对于非虚拟块计数和MISRA度量,指定度量阈值。指定这些值使您能够通过将度量数据分类如下来访问您的模型质量:

  • 合规-在可接受范围内的度量数据。

  • 警告-需要审查的度量数据。

  • 不兼容-需要您修改模型的度量数据。

1.访问slmetric.config.ThresholdConfiguration对象slmetric.config.Configuration对象metricconfig.创建相应的slmetric.config.ThresholdConfiguration对象(TC)在基本工作区中。

TC = getThresholdConfigurations (metricconfig);

2.添加两个slmetric.config.Threshold对象TC.每一个slmetric.config.Threshold对象包含一个默认的slmetric.config.Classification对象的遵从性。指定符合的度量范围。

T1 = addThreshold(TC, misraIssuesMetricID,“AggregatedValue”);C = getClassifications (T1);C.Range.Start =无穷;C.Range.End = 0;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 1;T2 = addThreshold (TC、misraComplianceMetricID“AggregatedValue”);C = getClassifications (T2);C.Range.Start = 1;C.Range.End =正;C.Range.IncludeStart = 1;C.Range.IncludeEnd = 0;

3.为每一个slmetric.config.Threshold对象时,指定“警告”范围。

C = addClassification (T1,“警告”);C.Range.Start = 0;C.Range.End =正;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 1;C = addClassification (T2,“警告”);C.Range.Start =无穷;C.Range.End = 1;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 0;

这些命令指定如果MISRA检查有问题,模型状态是警告。如果没有问题,则模型状态是兼容的。

4.添加一个第三slmetric.config.Threshold对象TC.为此指定兼容、警告和不兼容范围slmetric.config.Threshold对象。

T3 = addThreshold (TC),“nonvirtualblockcount”“AggregatedValue”);C = getClassifications (T3);C.Range.Start =无穷;C.Range.End = 20;C.Range.IncludeStart = 1;C.Range.IncludeEnd = 1;C = addClassification (T3,“警告”);C.Range.Start = 20;C.Range.End = 30;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 1;C = addClassification (T3,“不合格”);C.Range.Start = 30;C.Range.End =正;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 1;

这些命令指定符合标准范围小于或等于20.警告范围为20,但不包括30。不符合的范围大于30。

5.保存配置对象。这些命令将API信息序列化为XML文件。

保存(metricconfig,“文件名”“MetricConfig.xml”);保存(dashboardconfig,“文件名”“DashboardConfig.xml”);

6.设置激活配置。

slmetric.config.setActiveConfiguration (fullfile (pwd,“MetricConfig.xml”));slmetric.dashboard.setActiveConfiguration (fullfile (pwd,“DashboardConfig.xml”));

7.对于您的模型,打开Metrics Dashboard。

metricsdashboardvdp

对于MISRA检查符合性问题,标尺是黄色的,因为86.1%的检查通过了。任何低于100%的百分比都是警告。条形图还显示黄色,因为模型包含三个MISRA检查问题。任何大于零的数字都是警告。

Nonvirtual块计数Widget在兼容范围内,因为有11个非虚拟块。

8.要重置配置并注销度量,请在MATLAB命令窗口中输入以下代码行。

slmetric.metric.unregisterMetric(名称);slmetric.dashboard.setActiveConfiguration ('');slmetric.config.setActiveConfiguration ('');

另请参阅

|

相关的话题