exponenta event banner

класс slmetric.metric.ResultClassification

Пакет: slmetric.metric

Доступ к результатам пороговых значений метрических данных

Описание

Для Value и AggregatedValue свойства slmetric.metric.Result объект, доступ к свойствам slmetric.metric.ResultClassification для определения диапазонов метрических данных, которые соответствуют Compliant, NonCompliant, и Warning категории. От slmetric.metric.ResultClassification также определите, к какой из трех категорий относятся ваши метрические данные.

Строительство

Значение Classifications свойство slmetric.metric.Result объект является slmetric.metric.ResultClassification объект.

Свойства

развернуть все

Доступ к этому свойству для определения метрики модели и slmetric.metric.Result свойство, имеющее пороговые значения.

Значения метрических данных относятся к одной из следующих четырех категорий:

  • Соответствует - метрические данные находятся в допустимом диапазоне.

  • Предупреждение - метрические данные, требующие проверки.

  • Несоответствующие - метрические данные, требующие изменения модели.

  • Без категории - метрические данные, для которых не установлены пороговые значения.

Если хотя бы один компонент NonCompliant, это свойство возвращает NonCompliant. Если хотя бы один компонент Warning и никакие компоненты не являются NonCompliant, это свойство возвращает Warning. Если все компоненты Compliant, эта категория возвращает Compliant.

Это свойство доступно только для чтения.

Примеры

свернуть все

Для mathworks.metric.SimulinkBlockCount метрика, определение slmetric.metric.Result значения, соответствующие Compliant, NonCompliant, и Warning категории. Для sldemo_mdl_ref , запустите механизм метрик и классифицируйте результаты для этой метрики.

Создание slmetric.config.Configuration объект.

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

Получить значение по умолчанию slmetric.config.ThresholdConfiguration объект в CONF.

TC = getThresholdConfigurations(CONF);

Добавить slmetric.config.Threshold объект для slmetric.config.ThresholdConfiguration объект. Это пороговое значение для mathworks.metrics.SimulinkBlockCount метрические и Value имущества slmetric.metric.Results объект.

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

Один slmetric.config.Threshold объект содержит значение по умолчанию slmetric.config.Classification объект, который соответствует Compliant категория. Используйте slmetric.metric.MetricRange для указания метрических значений для Compliant, NonCompliant, и Warning метрические диапазоны.

C = getClassifications(T); % default classification is Compliant
C.Range.Start = 5;
C.Range.IncludeStart = 0;
C.Range.End = 100;
C.Range.IncludeEnd = 0;

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

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

Используйте validate для проверки диапазонов метрик, соответствующих пороговым значениям в slmetric.config.ThresholdConfiguration объект.

validate(T)

Если диапазоны недопустимы, появится сообщение об ошибке. В этом примере допустимы диапазоны.

Сохраните изменения в файле конфигурации. Используйте slmetric.config.setActiveConfiguration для активации этой конфигурации для использования метрического механизма.

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

Создание slmetric.Engine , задайте корень в модели для анализа и соберите данные для mathworks.metrics.SimulinkBlockCount метрика.

metric_engine = slmetric.Engine();
setAnalysisRoot(metric_engine, 'Root',  'sldemo_mdlref_basic');
execute(metric_engine, 'mathworks.metrics.SimulinkBlockCount');

Получение данных метрики модели, возвращающих массив slmetric.metric.ResultCollection объекты, res_col.

res_col = getMetrics(metric_engine, 'mathworks.metrics.SimulinkBlockCount');

Отображение результатов для mathworks.metrics.SimulinkBlockCount метрика.

for n=1:length(res_col)
    if res_col(n).Status == 0
        result = res_col(n).Results;
        
        for m=1:length(result)
            disp(['MetricID: ',result(m).MetricID]);
            disp(['  ComponentPath: ', result(m).ComponentPath]);
            disp(['  Value: ', num2str(result(m).Value)]);
            disp(['  Classifications: ', result(m).Classifications.Classification.Category]);
            disp(['  Measures: ', num2str(result(m).Measures)]);
            disp(['  AggregatedMeasures: ', num2str(result(m).AggregatedMeasures)]);
        end
    else
        disp(['No results for:', result(n).MetricID]);
    end
    disp(' ');
end
MetricID: mathworks.metrics.SimulinkBlockCount
  ComponentPath: sldemo_mdlref_basic
  Value: 12
  Classifications: Compliant
  Measures: 
  AggregatedMeasures: 
MetricID: mathworks.metrics.SimulinkBlockCount
  ComponentPath: sldemo_mdlref_basic/More Info
  Value: 0
  Classifications: Warning
  Measures: 
  AggregatedMeasures: 
MetricID: mathworks.metrics.SimulinkBlockCount
  ComponentPath: sldemo_mdlref_counter
  Value: 18
  Classifications: Compliant
  Measures: 
  AggregatedMeasures:

Для ComponentPath: sldemo_mdlref_basic и ComponentPath: sldemo_mdlref_counter, результаты Compliant из-за значений 12 и 18соответственно. Для ComponentPath: sldemo_mdlref_basic/More Info, результаты подпадают под Warning из-за категории 0 значение.

Представлен в R2018b