После генерации и просмотра метрик от ваших результатов анализа, можно рассмотреть результаты более подробно.
Чтобы фокусировать ваш анализ, вы можете:
Задайте качественные цели, которых вы или разработчики в вашей организации должны достигнуть.
Примените качественные цели к своим результатам анализа.
Рассмотрите только те результаты, которым не удается достигнуть тех целей.
По умолчанию цели качества программного обеспечения выключены. Применять качественные цели:
В интерфейсе Polyspace® Metrics откройте метрическую страницу для проекта.
Из списка Quality Objectives в верхнем левом углу выберите ON
.
Появляется новая группа столбцов Software Quality Objectives.
Столбец Overall Status показывает последний используемый качественный уровень цели, чтобы сгенерировать состояние PASS или FAIL для ваших результатов.
Столбец Level показывает качественный уровень цели.
Чтобы изменить ваш качественный уровень цели, в этом столбце, выбирают ячейку. Из выпадающего списка выберите уровень качества. Для получения дополнительной информации смотрите Качественные Уровни Цели Средства поиска Ошибки.
Для файлов с Overall Status FAIL, чтобы видеть, что вызывает отказ, просматривают записи в других столбцах Software Quality Objectives. Провальные уровни отмечены красные.
Если значок появляется рядом с состоянием, это означает, что Polyspace не имеет достаточной информации, чтобы вычислить состояние. Например, если вы задаете BF-QO-1
, определенные правила кодирования должны быть анализом. Но, если вы не проверяете правила кодирования во время анализа, Polyspace не может определить, удовлетворяет ли ваш проект целям правила кодирования, заданным в BF-QO-1
.
Чтобы исследовать провальные качественные цели, выберите записи отмеченный красный для получения дополнительной информации.
На Code Metrics, Coding Rules или вкладке Bug-Finder,
Выберите красные записи столбца, чтобы загрузить результаты.
Рассмотрите нарушения и зафиксируйте или выровняйте по ширине результаты.
Смотрите результаты Polyspace адреса через исправления ошибок или выравнивания.
Загрузите свои новые выравнивания на Метрическую веб-инструментальную панель Polyspace.
После вашего анализа, в интерфейсе Polyspace Metrics, нажатие кнопки, чтобы просмотреть обновленные метрики.
Если вы изменяете свой код, чтобы обновить метрики, повторно выполнить ваш анализ и загрузить результаты на Метрический репозиторий Polyspace. Если вы имеете выравнивания в своих предыдущих результатах, импортируете их к новым результатам прежде, чем загрузить на репозиторий.
Качественные Цели Средства поиска Ошибки или BF-QOs являются набором порогов, с которыми можно сравнить результаты анализа Средства поиска Ошибки. Эти цели адаптируются от Целей Качества программного обеспечения Polyspace Code Prover™ (Polyspace Code Prover). Можно разработать процесс рассмотрения на основе Качественных Целей.
Можно использовать предопределенный уровень BF-QO или задать собственное. Следующее является предопределенными качественными порогами, заданными каждым BF-QO.
Вместо того, чтобы использовать предопределенную цель, можно задать собственные качественные цели и применить их к проекту.
Сохраните следующее содержимое в XML-файле. Назовите файл Custom-SQO-Definitions.xml
.
<?xml version="1.0" encoding="UTF-8"?> <MetricsDefinitions> <SQO ID="Custom-BF-QO-Level" ApplicableProduct="Bug Finder" ApplicableProject="My_Project"> <comf>20</comf> <path>80</path> <goto>0</goto> <vg>10</vg> <calling>5</calling> <calls>7</calls> <param>5</param> <stmt>50</stmt> <level>4</level> <return>1</return> <vocf>4</vocf> <ap_cg_cycle>0</ap_cg_cycle> <ap_cg_direct_cycle>0</ap_cg_direct_cycle> <Num_Unjustified_Violations>Custom_MISRA_Rules_Set</Num_Unjustified_Violations> <Num_Unjustified_BF_Checks>Custom_BF_Checks_Set</Num_Unjustified_BF_Checks> </SQO> <CodingRulesSet ID="Custom_MISRA_Rules_Set"> <Rule Name="MISRA_C_5_2">0</Rule> <Rule Name="MISRA_C_17_6">0</Rule> </CodingRulesSet> <BugFinderChecksSet ID="Custom_BF_Checks_Set"> <Check Name="UNREACHABLE">0</Check> <Check Name="USELESS_IF">0</Check> </BugFinderChecksSet> </MetricsDefinitions>
Можно использовать этот файл и в результатах Программы автоматического доказательства Средства поиска и в Кода Ошибки. Для получения информации об элементах XML, характерных для Программы автоматического доказательства Кода, смотрите, Сравнивают Метрики С Целями Качества программного обеспечения (Polyspace Code Prover).
Сохраните этот XML-файл в папке, где удаленные аналитические данные хранятся, например, C:\Users\JohnDoe\AppData\Roaming\Polyspace_RLDatas
.
Если вы хотите изменить местоположение папки, выберите Metrics> Metrics and Remote Server Settings.
Сделать уровень качества Custom-BF-QO-Level
применимый к определенному проекту, замените значение ApplicableProject
припишите с названием проекта.
Если вы хотите качественные цели примениться ко всем проектам, используйте ApplicableProject=""
.
Измените файл, чтобы задать ваши пороги.
Для определения правил кодирования начните имя правила с соответствующей строки, сопровождаемой номером правила. Использование
вместо десятичной точки в номере правила. Чтобы задать директивы, начните задавать направляющий номер с D_
, например, MISRA_C3_D4_6
, для MISRA C: 2 012 директив 4.6.
Правило | Строка | Управляйте числами |
---|---|---|
MISRA C: 2004 | MISRA_C_ | MISRA C:2004 и правила кодирования AGC AC MISRA |
MISRA C: 2012 | MISRA_C3_ | Директивы MISRA C:2012 и правила |
MISRA C++ | MISRA_Cpp_ | MISRA C ++:2008 правил |
JSF® C ++ | JSF_Cpp_ | JSF правила кодирования C++ |
Пользовательские правила кодирования | Custom_ | Пользовательские правила кодирования |
Для определения дефектов используйте дефектный акроним. Смотрите Краткие названия Средств проверки Дефекта Средства поиска Ошибки.
Для определения метрик кода используйте метрический акроним кода. Смотрите Краткие названия Метрик сложности кода.
После того, как вы сделаете свои модификации в интерфейсе Polyspace Metrics, откройте метрики для своего проекта. Из списка Quality Objectives в верхнем левом углу выберите ON
.
На вкладке Summary выберите запись в столбце Level. Для названия проекта, которое вы задали, ваша новая качественная цель, Custom-BF-QO-Level появляется в выпадающем списке.
Выберите свою новую качественную цель.
Программное обеспечение сравнивает пороги, которые вы задали против своих результатов и обновляете столбец Overall Status с PASS или FAIL.
Чтобы задать другой набор пользовательских качественных целей, добавьте следующее содержимое в Custom-BF-QO-Definitions.xml
файл:
<SQO ID="Custom-BF-QO-Level_2" ParentID="Custom-BF-QO-Level" ApplicableProduct="Bug Finder" ApplicableProject="My_Project"> ... </SQO>
ID
представляет имя нового набора.
У вас не может быть тех же значений ID
и ApplicableProject
для двух различных наборов качественных целей. Например, если вы используете ID="Custom-BF-QO-Level"
для двух различных пользовательских наборов и ApplicableProject
любой My_Project
или ""
для обоих наборов вы видите следующую ошибку:
The SQO level 'Custom-BF-QO-Level' is multiply defined.
ParentID
задает другой уровень, от которого текущий уровень наследовал свои качественные цели. В предыдущем примере, уровень Custom-BF-QO-Level_2
наследовал его качественные цели от уровня Custom-BF-QO-Level
.
Если вы не хотите наследовать качественные цели от другого уровня, не используйте этот атрибут.
...
представляет дополнительные качественные пороги, что вы задаете для уровня Custom-BF-QO-Level_2
.
Качественные пороги, которые вы задаете, заменяют пороги что Custom-BF-QO-Level_2
наследовался Custom-BF-QO-Level
. Например, если вы задаете <goto>1</goto>
, эта цель заменяет пороговую спецификацию <goto>0</goto>
из Custom-BF-QO-Level
.
Следующие таблицы приводят элементы XML, которые могут быть добавлены к пользовательскому файлу BF-QO. Содержимое каждого элемента задает порог, с которым программное обеспечение сравнивает результаты анализа. Для каждого элемента таблица приводит метрику, к которой применяется порог. Здесь, HIS относится к Hersteller Initiative Software.
Метрики HIS
Элемент | Метрика |
---|---|
comf | Comment Density |
path | Number of Paths |
goto | Number of Goto Statements |
vg | Cyclomatic Complexity |
calling | Number of Calling Functions |
calls | Number of Called Functions |
param | Number of Function Parameters |
stmt | Number of Instructions |
level | Number of Call Levels |
return | Number of Return Statements |
vocf | Language Scope |
ap_cg_cycle | Number of Recursions |
ap_cg_direct_cycle | Number of Direct Recursions |
Num_Unjustified_Violations | Количество невыровненных нарушений кодирования правил, заданных записями под элементом CodingRulesSet |
Num_Unjustified_BF_Checks | Количество невыровненных дефектов типов, заданных записями под элементом BugFinderChecksSet |
Метрики Non-HIS
Элемент | Описание метрики |
---|---|
fco | Estimated Function Coupling |
flin | Number of Lines Within Body |
fxln | Number of Executable Lines |
ncalls | Number of Call Occurrences |