slmetric.metric.ResultClassification class

Пакет: 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 metric, задайте 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