Main Content

validate

(To be removed) Validate metric range thresholds

The Metrics Dashboard user interface, metricdashboard function, slmetric package API, and corresponding customizations will be removed in a future release. For more information, see Migrating from Metrics Dashboard to Model Maintainability Dashboard.

Description

validate(threshold) checks each slmetric.config.Classification object in the threshold object to verify that the values specified for the Category and Range properties are valid. The ranges of each category must not overlap and the ranges together must cover from -inf to inf. If the values are not valid, the function returns an error informing you of what to fix.

example

Examples

collapse all

Add threshold information to the Metrics Dashboard by using slmetric.config.Threshold and slmetric.config.Configuration objects. You can add thresholds that define metric data ranges for these three categories:

  • Compliant — Metric data that is an acceptable range

  • Warning — Metric data that requires review

  • Noncompliant — Metric data that requires you to modify your model

Create an slmetric.config.Configuration object.

CONF = slmetric.config.Configuration.new('name', 'Config');

Get the default slmetric.config.ThresholdConfiguration object in CONF.

TC = getThresholdConfigurations(CONF);

Create an slmetric.config.Threshold object and add it to the slmetric.config.ThresholdConfiguration object. This threshold is for the mathworks.metrics.SimulinkBlockCount metric and the Value property of the slmetric.metric.Results object.

T = addThreshold(TC, 'mathworks.metrics.SimulinkBlockCount', 'Value');

By default, the slmetric.config.Threshold object contains a slmetric.config.Classification object that defines metric ranges in the compliant category. Get the classification object by using the function getClassifications on the threshold object T.

C = getClassifications(T);

The Range property of the classification object is a slmetric.metric.MetricRange object. Specify metric values for the compliant category by using the slmetric.metric.MetricRange functions on the range of the classification object.

C.Range.Start = 5;
C.Range.IncludeStart = 0;
C.Range.End = 100;
C.Range.IncludeEnd = 0;

These values specify that a compliant range is a block count from 5 to 100. This range does not include the values 5 and 100.

Specify values for the warning metric range.

C = addClassification(T,'Warning');
C.Range.Start = -inf;
C.Range.IncludeStart = 0;
C.Range.End = 5;
C.Range.IncludeEnd = 1;

These values specify that a warning is a block count between -inf and 5. This range does not include -inf. It does include 5.

Specify values for the noncompliant metric range.

C = addClassification(T,'NonCompliant');
C.Range.Start = 100;
C.Range.IncludeStart = 1;
C.Range.End = inf;
C.Range.IncludeEnd = 0;

These values specify that a block count greater than 100 is noncompliant. This range includes 100. It does not include inf.

Use the validate method to validate the metric ranges corresponding to the thresholds in the slmetric.config.ThresholdConfiguration object.

validate(T)

If the ranges are not valid, you get an error message. In this example, the ranges are valid, so the function returns nothing.

Save the changes to the configuration file. Use the slmetric.config.setActiveConfiguration function to activate this configuration for the metric engine to use.

configName = 'Config.xml';
save(CONF,'FileName', configName);
slmetric.config.setActiveConfiguration(fullfile(pwd, configName));

You can now run the Metrics Dashboard with this custom configuration on a model.

Input Arguments

collapse all

Threshold object to validate, specified as an slmetric.config.Threshold object.

Version History

Introduced in R2018b

collapse all

R2022a: Metrics Dashboard will be removed

The Metrics Dashboard user interface, metricdashboard function, slmetric package API, and corresponding customizations will be removed in a future release. For more information, see Migrating from Metrics Dashboard to Model Maintainability Dashboard.