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, это свойство возвращает 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