自定义指标仪表板布局和功能
通过使用模型度量编程接口自定义度量仪表板。定制仪表板扩展了您使用模型度量来评估您的模型和代码是否符合尺寸、复杂性和可读性要求的能力。您可以执行以下指标仪表板定制:
配置遵从性度量以获得遵从性,并在Model Advisor配置上发布度量数据。
通过添加自定义指标、删除小部件和配置现有小部件来定制仪表板布局。
通过指定度量阈值,将度量数据分类为符合、警告和不符合。
配置遵从性指标
使用度量仪表板和度量api来获得遵从性,并在模型顾问配置或现有检查组(如MISRA检查)上发布度量数据。有关如何创建自定义配置文件的信息,请参见使用模型顾问配置编辑器自定义模型顾问.在您已经设置了Model Advisor配置之后,遵循以下步骤来指定您想要获得遵从性并发布度量数据的检查组:
1.要打开模型,在MATLAB命令提示符下,输入以下命令:
vdp
2.打开默认配置并保存相应的slmetric.config.Configuration
对象添加到基本工作区。
metricconfig = slmetric.config.Configuration.openDefaultConfiguration();
3.创建一个单元格数组,值
,它指定模型顾问检查组id针对MAAB、High-Integrity和MISRA检查组。
的值
maab
对应MAAB检查的一个子集。的值
hisl_do178
对应于高完整性系统检查的一个子集。的值
_SYSTEM_By Task_misra_c
是检查组IDMISRA检查组MISRA C:2012建模标准
.
值= {“maab”,“hisl_do178”,“_SYSTEM_By Task_misra_c”};
获取模型顾问检查组ID对于一组检查,打开Model Advisor Configuration Editor并选择包含所需检查组的文件夹。的检查组ID显示在信息选项卡。有关Model Advisor配置编辑器的更多信息,请参见使用模型顾问配置编辑器自定义模型顾问.
4.要设置配置,请传递值
单元格数组放入setMetricFamilyParameterValues
方法。的“ModelAdvisorStandard”
对象必须提供的标准字符串setMetricFamilyParameterValues
方法。
setMetricFamilyParameterValues (metricconfig“ModelAdvisorStandard”、价值观);
5.打开Metrics Dashboard布局的默认配置(即随Metrics Dashboard附带的配置)。
dashboardconfig = slmetric.dashboard.Configuration.openDefaultConfiguration();
6.获得slmetric.dashboard.Layout
对象中的slmetric.dashboard.Configuration
对象。
布局= getDashboardLayout(dashboardconfig);
7.获取布局对象中的小部件对象。
layoutidget = getWidgets(布局);
8.合规组从布局中获取。
complancegroup = layoutidget (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
.配置的检查遵从性度量计算所选模型Advisor通过的模型Advisor检查的比例检查组ID.模型顾问检查组ID,
_SYSTEM_By Task_misra_c
,为检查组IDMISRA检查组MISRA C:2012建模标准
.
获取模型顾问检查组ID对于一组检查,打开Model Advisor Configuration Editor并选择包含所需检查组的文件夹。的检查组ID显示在信息选项卡。有关Model Advisor配置编辑器的更多信息,请参见使用模型顾问配置编辑器自定义模型顾问.
有关已配置遵从性度量的更多信息,请参见模型指标.
11.创建一个自定义小部件,用于可视化MISRA检查遵从度量。
misraWidget = complianceContainers(1).addWidget(“自定义”1);misraWidget。标题= (“MISRA”);misraWidget。VisualizationType =“RadialGauge”;misraWidget.setMetricIDs (misraComplianceMetricID);misraWidget.setWidths (slmetric.dashboard.Width.Medium);
12.柱状图小部件当前可视化High Integrity和MAAB检查组。将此小部件指向度量idMISRA检查问题和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
,为检查组IDMISRA检查组MISRA C:2012建模标准
.maab
是一个检查组ID对应于MAAB检查的子集。
获取模型顾问检查组ID对于一组检查,打开Model Advisor Configuration Editor并选择包含所需检查组的文件夹。的检查组ID显示在信息选项卡。有关Model Advisor配置编辑器的更多信息,请参见使用模型顾问配置编辑器自定义模型顾问.
有关已配置遵从性度量的更多信息,请参见模型指标.
13.要运行和查看示例中的Metrics Dashboard,在MATLAB命令窗口中输入以下代码行。的保存
命令将API信息序列化为XML文件。的slmetric.config.setActiveConfiguration
而且slmetric.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.单击所有指标按钮以运行每个指标。Metrics Dashboard显示MISRA检查的结果,而不是高完整性检查的结果。
16.关闭Metrics仪表板。
向仪表板添加自定义指标
创建一个统计非虚拟块的自定义度量。要在Metrics Dashboard上显示此指标,请指定一个小部件。将其添加到大小组中。
1.使用createNewMetricClass
函数,创建一个名为nonvirtualblockcount
.函数创建了一个文件,nonvirtualblockcount.m
,在当前工作文件夹中。该文件包含一个构造函数和空的度量算法方法。对于本例,请确保您位于可写文件夹中。
className =“nonvirtualblockcount”;slmetric.metric.createNewMetricClass(名称);
2.要编写度量算法,请打开nonvirtualblockcount.m
文件,并将指标添加到文件中。对于本例,文件nonvirtualblockcount_orig.m
包含创建统计非虚拟块的度量的逻辑。将此文件复制到nonvirtualblockcount.m
.
拷贝文件nonvirtualblockcount_orig.mnonvirtualblockcount.mf
3.在度量存储库中注册新的度量。
[id_metric,err_msg] = slmetric.metric.registerMetric(className);
新的非虚拟块计数度量具有度量IDnonvirtualblockcount
.
若要查看度量引擎的可用度量,请使用slmetric.metric.getAvailableMetrics
.
availableMetricIDs = slmetric.metric.getAvailableMetrics
4.删除代表Simulink块计数度量的小部件。万博1manbetx这个小部件是大小组中的第一个。规模组是第二layoutWidget
数组中。
sizeGroup = layoutidget (2);sizeGroupWidgets = sizeGroup.getWidgets();sizeGroup.removeWidget (sizeGroupWidgets (1));
5.添加一个显示非虚拟块计数指标的小部件。对于自定义小部件,默认的可视化类型是单值。如果要使用不同的可视化类型,请为VisualizationType
财产。
newWidget = sizeGroup.addWidget(“自定义”1);newWidget。标题= (“非虚拟块计数”);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。setSeparators([s, s, s, s]);
7.要运行和查看示例中的Metrics Dashboard,在MATLAB命令窗口中输入以下代码行。的保存
命令将API信息序列化为XML文件。的slmetric.config.setActiveConfiguration
而且slmetric.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.单击所有指标按钮以运行每个指标。Metrics Dashboard显示非虚拟块计数度量的结果,而不是Simulink块计数度量的结果。万博1manbetx
10.关闭Metrics仪表板。
添加度量阈值
对于非虚拟块计数和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 = -inf;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 = inf;C.Range.IncludeStart = 1;C.Range.IncludeEnd = 0;
3.为每一个slmetric.config.Threshold
对象,指定警告范围。
C = addClassification(T1,“警告”);C.Range.Start = 0;C.Range.End = inf;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 1;C = addClassification(T2,“警告”);C.Range.Start = -inf;C.Range.End = 1;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 0;
这些命令指定如果模型有MISRA检查问题,则模型状态为警告。如果模型没有MISRA检查问题,则模型状态是符合的。
4.加第三个slmetric.config.Threshold
对象TC
.为此指定符合、警告和不符合的范围slmetric.config.Threshold
对象。
T3 = addThreshold(TC,“nonvirtualblockcount”,“AggregatedValue”);C = getClassifications(T3);C.Range.Start = -inf;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 = inf;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检查问题。大于零的数字会产生警告。
的非虚拟块计数小部件在符合的范围内,因为有11个非虚拟块。
8.要重置配置并取消注册指标,在MATLAB命令窗口中输入以下代码行。
slmetric.metric.unregisterMetric(名称);slmetric.dashboard.setActiveConfiguration (”);slmetric.config.setActiveConfiguration (”);
另请参阅
slmetric.dashboard.Configuration
|slmetric.config.Configuration