Настройте Метрическую Инструментальную панель при помощи метрического интерфейса программирования модели. Настройка инструментальной панели расширяет вашу способность использовать метрики модели, чтобы оценить ту вашу модель, и код выполняют размер, сложность и требования удобочитаемости. Можно выполнить эти Метрические индивидуальные настройки Инструментальной панели:
Сконфигурируйте метрики податливости, чтобы получить податливость, и выпускает метрические данные по вашей настройке 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('');
slmetric.dashboard.Configuration
| slmetric.config.Configuration