通过使用模型度量编程接口自定义度量仪表板。定制仪表板扩展了您使用模型度量来评估模型和代码是否符合大小、复杂性和可读性需求的能力。您可以执行这些指标仪表板自定义:
配置法规遵循度量,以获得法规遵循,并在您的Model Advisor配置上发布度量数据。
通过添加自定义度量,移除窗口小部件,和配置现有的小部件定制仪表盘布局。
通过指定度量阈值归类度量数据为符合,警告和不符合要求的。
所使用的数据仪表板和度量标准API来获取你的模型顾问配置或在现有的检查组合规性和问题的指标数据,如MISRA检查。要建立自己的模型顾问配置,请参阅使用模型顾问配置编辑器自定义模型顾问。在您设置了模型顾问配置之后,按照以下步骤来指定您想要获得遵从性和问题度量数据的检查组:
1.打开模型,在MATLAB命令提示符下,输入以下命令:
sf_car
2.打开默认配置(即,是随度量仪表板中的一个)。添加相应的slmetric.config.Configuration
对象指向基本工作区。
metricconfig = slmetric.config.Configuration.openDefaultConfiguration ();
3.创建一个单元格数组,该数组由对应于这些检查组的检查组id组成。通过打开Model Advisor配置编辑器并选择包含检查组的文件夹来获得检查组ID。该文件夹包含检查组ID参数。
值= {“maab”,'hisl_do178','_SYSTEM_By Task_misra_c'};
这个单元格数组指定了MAAB、High-Integrity和MISRA检查组。的值MAAB
和hisl_do178
对应于MAAB和高完整性系统检查的子集。若要包含所有检查,请指定检查组ID从模型顾问配置编辑器参数。
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.slmetric.dashboard.Layout
对象包含以下对象:
一个slmetric.dashboard.Container
对象,该对象持有slmetrics.dashboard.Widget
种类型的目标系统信息
。下面的红色头号图中表示系统信息
小部件。
一个slmetric.dashboard.Group
有标题对象尺寸。
一个slmetrics.dashboard.Group
有标题对象建模指导规则遵从。
一个slmetrics.dashboard.Group
有标题对象建筑。
在图中,红色的数字1、2、3和4表示它们在layoutWidget
数组中。从布局中获得法规遵循组。
complianceGroup = layoutWidget(3);
9.建模指南遵从性组包含两个容器。顶部容器包含高完整性和MAAB遵从性和检查小部件问题。红色数字3.1.1、3.1.2和3.1.3表示第一个容器中三个小部件的顺序。第二个容器包含代码分析警告和诊断警告小部件。
删除高完整性合规小部件。
complianceContainers =的getWidgets(complianceGroup);complianceContainerWidgets =的getWidgets(complianceContainers(1));complianceContainers(1).removeWidget(complianceContainerWidgets(1));
10.创建用于可视化MISRA检查问题的指标创建自定义窗口小部件。
misraWidget = complianceContainers(1).addWidget(“自定义”1);misraWidget.Title = ('MISRA');misraWidget。VisualizationType ='RadialGauge';misraWidget.setMetricIDs(“mathworks.metrics.ModelAdvisorCheckCompliance。_SYSTEM_By Task_misra_c”);misraWidget.setWidths(slmetric.dashboard.Width.Medium);
11.条形图部件可视化的高集成度,MAAB检查组。指出这个小部件的MISRA和MAAB检查组。
setMetricIDs (complianceContainerWidgets (3),...({'mathworks.metrics.ModelAdvisorCheckIssues._SYSTEM_By Task_misra_c',...'mathworks.metrics.ModelAdvisorCheckIssues.maab'}));complianceContainerWidgets (3)。标签= {'MISRA','MAAB'};
12.要在示例此时运行指标仪表板中,取消了下面的代码行。保存命令序列化API信息的XML文件。该slmetric.config.setActiveConfiguration
和slmetric.dashboard.setActiveConfiguration
命令设置活动配置对象。
%保存(metricconfig, '文件名', 'MetricConfig.xml');%保存(dashboardconfig, '文件名', 'DashboardConfig.xml');%slmetric.config.setActiveConfiguration(完整文件(PWD, 'MetricConfig.xml'));% slmetric.dashboard.setActiveConfiguration (fullfile (pwd, ' DashboardConfig.xml '));
14.要打开仪表盘的指标,取消该代码。
%metricsdashboard sf_car
15.单击所有指标按钮和运行所有指标。度量面板显示的结果为MISRA检查,而不是高完整性检查。
16.关闭度量仪表板。
创建自定义指标才是最重要的非虚块。要显示的度量仪表板,此度量,指定窗口小部件。将它添加到大小团体。
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(名称);
4.卸下表示Simulink模块计数度量小部件。万博1manbetx这个小工具的尺寸组中的第一个。尺寸组是第二在layoutWidget
数组中。
sizeGroup = layoutWidget (2);sizeGroupWidgets = sizeGroup.getWidgets ();sizeGroup.removeWidget (sizeGroupWidgets (1));
5.添加一个小部件,显示该非虚块计数度量。对于自定义窗口小部件,默认图表类型是单值。如果要使用不同的可视化类型,指定不同的值VisualizationType
属性。
newWidget = sizeGroup.addWidget(“自定义”1);newWidget.Title =(“非虚块计数”);newWidget.setMetricIDs(“nonvirtualblockcount”);newWidget.setWidths(slmetric.dashboard.Width.Medium);newWidget.setHeight(70);
6.指定是否有从该组中的其他窗口小部件窗口小部件分离自定义行。这些命令指定有一行小部件的权利。
年代。顶级= false;年代。= false;年代。左= false;年代。正确的= true;newWidget。设置分隔符([s, s, s, s]);
7.要在示例此时运行指标仪表板中,取消了下面的代码行。保存命令序列化API信息的XML文件。该slmetric.config.setActiveConfiguration
和slmetric.dashboard.setActiveConfiguration
命令设置活动配置对象。
%保存(metricconfig, '文件名', 'MetricConfig.xml');%保存(dashboardconfig, '文件名', 'DashboardConfig.xml');%slmetric.config.setActiveConfiguration(完整文件(PWD, 'MetricConfig.xml'));% slmetric.dashboard.setActiveConfiguration (fullfile (pwd, ' DashboardConfig.xml '));
8.要打开仪表盘的指标,取消该代码。
%metricsdashboard sf_car
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,'mathworks.metrics.ModelAdvisorCheckIssues._SYSTEM_By Task_misra_c',...'AggregatedValue');C = getClassifications(T1);C.Range.Start =无穷;C.Range.End = 0;C.Range.IncludeStart = 0;C.Range.IncludeEnd = 1;T2 = addThreshold(TC,“mathworks.metrics.ModelAdvisorCheckCompliance。_SYSTEM_By Task_misra_c”,...'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 =无穷;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 = 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(完整文件(PWD,'MetricConfig.xml'));slmetric.dashboard.setActiveConfiguration (fullfile (pwd,“DashboardConfig.xml”));
7.对于您的模型,打开度量仪表板。
metricsdashboardsf_car
对于MISRA检查合规性问题,这是因为检查的76%通过计为黄色。任何百分比小于100%是一个警告。条形图还显示一个黄色的,因为模型包含三个MISRA检查的问题。任何大于零的数字是一个警告。
该Nonvirtual块计数小部件在兼容范围内,因为有15个非虚拟块。
8.要重置配置和注销度量,取消和执行这些命令:
% slmetric.metric.unregisterMetric(名称);%slmetric.dashboard.setActiveConfiguration( '');% slmetric.config.setActiveConfiguration (");
slmetric.config.Configuration
|slmetric.dashboard.Configuration