Настройте метрическое размещение инструментальной панели и функциональность

Настройте Метрическую Инструментальную панель при помощи метрического интерфейса программирования модели. Настройка инструментальной панели расширяет вашу способность использовать метрики модели, чтобы оценить ту вашу модель, и код выполняют размер, сложность и требования удобочитаемости. Можно выполнить эти Метрические индивидуальные настройки Инструментальной панели:

  • Сконфигурируйте метрики податливости, чтобы получить податливость, и выпускает метрические данные по вашей настройке Model Advisor.

  • Настройте размещение инструментальной панели путем добавления пользовательских метрик, удаления виджетов и конфигурирования существующих виджетов.

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

Сконфигурируйте метрики податливости

Используйте Метрическую Инструментальную панель и метрические API, чтобы получить податливость, и выпускает метрические данные по вашей настройке Model Advisor или по существующей группе проверки, такой как проверки MISRA. Для получения информации о том, как создать файл пользовательской конфигурации, смотрите Использование Model Advisor Configuration Editor, чтобы Настроить Model Advisor. После того, как вы настроили свою настройку Model Advisor, выполните эти шаги, чтобы задать группы проверки, для которых вы хотите получить податливость, и выпускает метрические данные:

1. Чтобы открыть модель, в командной строке MATLAB, вводят эту команду:

vdp

2. Откройте настройку по умолчанию и сохраните соответствующий slmetric.config.Configuration возразите против базового рабочего пространства.

metricconfig = slmetric.config.Configuration.openDefaultConfiguration();

3. Создайте массив ячеек, values, это задает идентификаторы Model Advisor Check Group для MAAB, Высокой Целостности и групп проверки MISRA.

  • Значение maab соответствует подмножеству проверок MAAB.

  • Значение hisl_do178 соответствует подмножеству Системных проверок Высокой Целостности.

  • Значение _SYSTEM_By Task_misra_c ID Check Group для группы проверки MISRA Modeling Standards for MISRA C:2012.

values = {'maab', 'hisl_do178', '_SYSTEM_By Task_misra_c'};

Чтобы получить ID Model Advisor Check Group для группы проверок, откройте Model Advisor Configuration Editor и выберите папку, которая содержит желаемую группу проверок. ID Check Group показывают в информационной вкладке. Для получения дополнительной информации о Model Advisor Configuration Editor смотрите Использование Model Advisor Configuration Editor, чтобы Настроить Model Advisor.

4. Чтобы установить настройку, передайте values массив ячеек в setMetricFamilyParameterValues метод. 'ModelAdvisorStandard' строка является стандартной строкой, которую необходимо предоставить к thesetMetricFamilyParameterValues метод.

setMetricFamilyParameterValues(metricconfig,'ModelAdvisorStandard', values);

5. Откройте настройку по умолчанию для Метрического размещения Инструментальной панели (то есть, тот, который поставляется с Метрической Инструментальной панелью).

dashboardconfig = slmetric.dashboard.Configuration.openDefaultConfiguration();

6. Получите slmetric.dashboard.Layoutобъект от slmetric.dashboard.Configuration объект.

layout = getDashboardLayout(dashboardconfig);

7. Получите объекты виджета, которые находятся в объекте размещения.

layoutWidget = getWidgets(layout);

8. Получите группу податливости из размещения.

complianceGroup = layoutWidget(3);

slmetric.dashboard.Layout объект содержит эти объекты:

  • slmetric.dashboard.Container объект, который содержит slmetrics.dashboard.Widget объект типа SystemInfo. Красный номер один в схеме ниже указывает на SystemInfo виджет.

  • slmetric.dashboard.Groupобъект, который имеет заголовок SIZE.

  • slmetrics.dashboard.Group объект, который имеет ПОДАТЛИВОСТЬ РУКОВОДСТВА ПО МОДЕЛИРОВАНИЮ заголовка.

  • slmetrics.dashboard.Group объект, который имеет заголовок АРХИТЕКТУРА.

В схеме красные числа 1, 2, 3, и 4 указывают на свой порядок в layoutWidget массив.

9. Группа податливости руководства по моделированию содержит два контейнера. Главный контейнер содержит Высокую Целостность и податливость MAAB и виджеты проблем проверки. Красные числа 3.1.1, 3.1.2, и 3.1.3 указывают на порядок этих трех виджетов в первом контейнере. Второй контейнер содержит Предупреждения Анализатора кода и Диагностические виджеты Предупреждений.

Удалите Высокий виджет податливости Целостности.

complianceContainers = getWidgets(complianceGroup);
complianceContainerWidgets = getWidgets(complianceContainers(1));
complianceContainers(1).removeWidget(complianceContainerWidgets(1));

10. Метрическим ID для сконфигурированной метрики податливости проверки MISRA является 'mathworks.metrics.ModelAdvisorCheckCompliance._SYSTEM_By Task_misra_c'.

misraComplianceMetricID = 'mathworks.metrics.ModelAdvisorCheckCompliance._SYSTEM_By Task_misra_c';

Метрический ID для сконфигурированной метрики податливости проверки имеет форму <ID Семейства>. <ID Model Advisor Check Group>.

  • Метрики, сконфигурированные для податливости Model Advisor, используют <ID Семейства> mathworks.metrics.ModelAdvisorCheckCompliance. Сконфигурированные метрики податливости проверки вычисляют часть проверок Model Advisor, которые передают для выбранного ID Model Advisor Check Group.

  • ID группы проверки Model Advisor, _SYSTEM_By Task_misra_c, ID Check Group для группы проверки MISRA Modeling Standards for MISRA C:2012.

Чтобы получить ID Model Advisor Check Group для группы проверок, откройте Model Advisor Configuration Editor и выберите папку, которая содержит желаемую группу проверок. ID Check Group показывают в информационной вкладке. Для получения дополнительной информации о Model Advisor Configuration Editor смотрите Использование Model Advisor Configuration Editor, чтобы Настроить Model Advisor.

Для получения дополнительной информации о сконфигурированных метриках податливости смотрите Метрики Модели.

11. Создайте пользовательский виджет для визуализации метрик податливости проверки MISRA.

misraWidget = complianceContainers(1).addWidget('Custom', 1);
misraWidget.Title = ('MISRA');
misraWidget.VisualizationType = 'RadialGauge';
misraWidget.setMetricIDs(misraComplianceMetricID);
misraWidget.setWidths(slmetric.dashboard.Width.Medium);

12. Виджет столбчатой диаграммы в настоящее время визуализирует Высокую Целостность и группы проверки MAAB. Укажите этот виджет на Метрические идентификаторы для проблем проверки MISRA и проблем проверки MAAB.

misraIssuesMetricID = 'mathworks.metrics.ModelAdvisorCheckIssues._SYSTEM_By Task_misra_c';
maabIssuesMetricID = 'mathworks.metrics.ModelAdvisorCheckIssues.maab';

setMetricIDs(complianceContainerWidgets(3),...
({misraIssuesMetricID,maabIssuesMetricID}));
complianceContainerWidgets(3).Labels = {'MISRA', 'MAAB'};

Метрический ID для сконфигурированной метрики податливости проверки имеет форму <ID Семейства>. <ID Model Advisor Check Group>.

  • Метрики, сконфигурированные для проблем соответствия Model Advisor, используют <ID Семейства> mathworks.metrics.ModelAdvisorCheckIssues. Сконфигурированные метрики проблем соответствия проверки вычисляют количество проблем, о которых сообщает выбранный ID Model Advisor Check Group.

  • ID группы проверки Model Advisor, _SYSTEM_By Task_misra_c, ID Check Group для группы проверки MISRA Modeling Standards for MISRA C:2012. maab ID Check Group, который соответствует подмножеству проверок MAAB.

Чтобы получить ID Model Advisor Check Group для группы проверок, откройте Model Advisor Configuration Editor и выберите папку, которая содержит желаемую группу проверок. ID Check Group показывают в информационной вкладке. Для получения дополнительной информации о Model Advisor Configuration Editor смотрите Использование Model Advisor Configuration Editor, чтобы Настроить Model Advisor.

Для получения дополнительной информации о сконфигурированных метриках податливости смотрите Метрики Модели.

13. Чтобы запустить и просмотреть Метрическую Инструментальную панель в этой точке в примере, введите следующие строки кода в командное окно MATLAB. save команды сериализируют информацию API к XML-файлам. slmetric.config.setActiveConfiguration и slmetric.dashboard.setActiveConfiguration команды устанавливают активные объекты настройки.

save(metricconfig,'FileName','MetricConfig.xml');
save(dashboardconfig,'Filename','DashboardConfig.xml');
slmetric.config.setActiveConfiguration(fullfile(pwd,'MetricConfig.xml'));
slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml'));

14. Чтобы открыть Метрическую Инструментальную панель, введите следующий код в командном окне MATLAB.

metricsdashboard vdp

15. Нажмите кнопку All Metrics, чтобы запустить все метрики. Метрическая Инструментальная панель отображает результаты для проверок MISRA вместо Высоких Проверок целостности.

16. Закройте метрическую инструментальную панель.

Добавьте пользовательскую метрику в инструментальную панель

Создайте пользовательскую метрику, которая считает невиртуальные блоки. Чтобы отобразить эту метрику на Метрической Инструментальной панели, задайте виджет. Добавьте его в группу размера.

1. Используя createNewMetricClass функционируйте, создайте новый метрический класс под названием nonvirtualblockcount. Функция создает файл, nonvirtualblockcount.m, в текущей рабочей папке. Файл содержит конструктора и пустой метрический метод алгоритма. В данном примере убедитесь, что вы находитесь в перезаписываемой папке.

className = 'nonvirtualblockcount';
slmetric.metric.createNewMetricClass(className);

2. Чтобы написать метрический алгоритм, откройте nonvirtualblockcount.m файл и добавляет метрику в файл. В данном примере файл nonvirtualblockcount_orig.m содержит логику, чтобы создать метрику, которая считает невиртуальные блоки. Скопируйте этот файл в к nonvirtualblockcount.m.

copyfile nonvirtualblockcount_orig.m nonvirtualblockcount.m f

3. Укажите новую метрику в метрическом репозитории.

[id_metric,err_msg] = slmetric.metric.registerMetric(className);

Новый невиртуальный блок рассчитывает, метрика имеет метрический ID nonvirtualblockcount.

Чтобы просмотреть доступные метрики для вашего метрического механизма, используйте slmetric.metric.getAvailableMetrics.

availableMetricIDs = slmetric.metric.getAvailableMetrics

4. Удалите виджет, который представляет метрику количества блока Simulink. Этот виджет является первым в группе размера. Группа размера является второй в layoutWidget массив.

sizeGroup = layoutWidget(2);
sizeGroupWidgets = sizeGroup.getWidgets();
sizeGroup.removeWidget(sizeGroupWidgets(1));

5. Добавьте виджет, который отображается, невиртуальный блок считают метрику. Для пользовательских виджетов тип визуализации по умолчанию является одним значением. Если вы хотите использовать различный тип визуализации, задайте различное значение для VisualizationType свойство.

newWidget = sizeGroup.addWidget('Custom', 1);
newWidget.Title = ('Nonvirtual Block Count');
newWidget.setMetricIDs('nonvirtualblockcount');
newWidget.setWidths(slmetric.dashboard.Width.Medium);
newWidget.setHeight(70);

6. Задайте, существуют ли линии, разделяющие пользовательский виджет от других виджетов в группе. Эти команды указывают, что существует линия справа от виджета.

s.top = false;
s.bottom = false;
s.left = false;
s.right = true;
newWidget.setSeparators([s, s, s, s]);

7. Чтобы запустить и просмотреть Метрическую Инструментальную панель в этой точке в примере, введите следующие строки кода в командное окно MATLAB. save команды сериализируют информацию API к XML-файлам. slmetric.config.setActiveConfiguration и slmetric.dashboard.setActiveConfiguration команды устанавливают активные объекты настройки.

save(metricconfig,'FileName','MetricConfig.xml');
save(dashboardconfig,'Filename','DashboardConfig.xml');
slmetric.config.setActiveConfiguration(fullfile(pwd,'MetricConfig.xml'));
slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml'));

8. Чтобы открыть Метрическую Инструментальную панель, введите следующий код в командном окне MATLAB.

metricsdashboard vdp

9. Нажмите кнопку All Metrics, чтобы запустить все метрики. Метрическая Инструментальная панель отображает результаты для невиртуальной метрики количества блока вместо метрики количества блока Simulink.

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, misraIssuesMetricID,'AggregatedValue');
C = getClassifications(T1);
C.Range.Start = -inf;
C.Range.End = 0;
C.Range.IncludeStart = 0;
C.Range.IncludeEnd = 1;

T2 = addThreshold(TC,misraComplianceMetricID,'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,'Warning');
C.Range.Start = 0;
C.Range.End = inf;
C.Range.IncludeStart = 0;
C.Range.IncludeEnd = 1;

C = addClassification(T2,'Warning');
C.Range.Start = -inf;
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 = -inf;
C.Range.End = 20;
C.Range.IncludeStart = 1;
C.Range.IncludeEnd = 1;

C = addClassification(T3, 'Warning');
C.Range.Start = 20;
C.Range.End = 30;
C.Range.IncludeStart = 0;
C.Range.IncludeEnd = 1;

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

Эти команды указывают, что совместимая область значений меньше чем или равна 20. Область значений предупреждения от 20 до, но не включая 30. Несовместимая область значений больше 30.

5. Сохраните объекты настройки. Эти команды сериализируют информацию API к XML-файлам.

save(metricconfig,'FileName','MetricConfig.xml');
save(dashboardconfig,'Filename','DashboardConfig.xml');

6. Установите активные настройки.

slmetric.config.setActiveConfiguration(fullfile(pwd, 'MetricConfig.xml'));
slmetric.dashboard.setActiveConfiguration(fullfile(pwd, 'DashboardConfig.xml'));

7. Для вашей модели откройте Метрическую Инструментальную панель.

metricsdashboard vdp

Поскольку MISRA проверяют проблемы соответствия, прибор является желтым, потому что 86,1% проверок передает. Любой процент меньше чем 100% является предупреждением. Столбчатая диаграмма также отображает желтый, потому что модель содержит три проблемы проверки MISRA. Любой номер, больше, чем нуль, является предупреждением.

Невиртуальный виджет количества Блока находится в совместимой области значений, потому что существует 11 невиртуальных блоков.

8. Чтобы сбросить настройку и не указать метрику, введите следующие строки кода в командное окно MATLAB.

slmetric.metric.unregisterMetric(className);
slmetric.dashboard.setActiveConfiguration('');
slmetric.config.setActiveConfiguration('');

Смотрите также

|

Похожие темы