Примечание
В этом разделе описывается рабочий процесс в веб-интерфейсе Polyspace Metrics.
Для более простых совместных обзоров используйте Polyspace® Bug Finder™ Access™. В дополнение к более интуитивно понятной веб-приборной панели, с Polyspace Access можно:
Просмотрите и разъясните результаты непосредственно из веб-браузера.
Интеграция инструмента отслеживания дефектов, такого как Jira, с веб-интерфейсом и создание билетов для отслеживания результатов Polyspace.
Делитесь результатами анализа с помощью веб- ссылок.
Для получения дополнительной информации см. документацию Polyspace Bug Finder Access.
После генерации и просмотра метрик из результатов анализа можно просмотреть результаты более подробно.
Чтобы сфокусировать свой обзор, вы можете:
Определите цели качества, которым должны соответствовать вы или разработчики в организации.
Примените цели качества к результатам анализа.
рассматривать только те результаты, которые не отвечают этим целям.
По умолчанию цели качества программного обеспечения отключены. Для применения целей качества:
В интерфейсе Polyspace Metrics откройте страницу метрики для проекта.
Из списка Quality Objectives в верхнем левом углу выберите ON
.
Появится новая группа Software Quality Objectives столбцов.
В Overall Status столбце показан последний используемый целевой уровень качества для создания статуса PASS или FAIL для результатов.
В Level столбце показан целевой уровень качества.
Чтобы изменить целевой уровень качества, в этом столбце выберите камеру. В раскрывающемся списке выберите уровень качества. Для получения дополнительной информации смотрите Bug Finder Quality Object Levels.
Для файлов с Overall Status FAIL, чтобы увидеть, что является причиной отказа, просмотрите записи в других столбцах Software Quality Objectives. Аварийные уровни отмечены красным цветом.
Если значок появляется рядом со статусом, это означает, что Polyspace не имеет достаточной информации для вычисления статуса. Например, если вы задаете BF-QO-1
, некоторые правила кодирования должны быть пересмотрены. Но, если вы не проверяете правила кодирования во время анализа, Polyspace не может определить, удовлетворяет ли ваш проект целям правил кодирования, заданным в BF-QO-1
.
Чтобы выяснить недостающие цели качества, выберите записи, отмеченные красным цветом, для получения дополнительной информации.
На Code Metrics, Coding Rules или Bug-Finder вкладке
Выберите красные столбцы для загрузки результатов.
Проверьте нарушения и исправьте или обосновайте результаты.
Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.
Загрузите свои новые обоснования на веб-панель управления Polyspace Metrics.
После просмотра в интерфейсе Polyspace Metrics щелкните, чтобы просмотреть обновленные метрики.
Если вы измените код, чтобы обновить метрики, перезапустите анализ и загрузите результаты в репозиторий Polyspace Metrics. Если у вас есть обоснования в предыдущих результатах, импортируйте их в новые результаты перед загрузкой в репозиторий.
Цели качества Bug Finder или BF-QO являются набором порогов, с которыми можно сравнить результаты анализа Bug Finder. Эти цели адаптированы из 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>
Вы можете использовать этот файл как для результатов Bug Finder, так и для результатов Code Prover. Для получения информации об элементах XML, характерных для Code Prover, смотрите Сравнение метрики с целями качества программного обеспечения (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: 2012 4.6.
Правило | Строка | Номера правил |
---|---|---|
MISRA C: 2004 | MISRA_C_ | MISRA C:2004 и MISRA AC AGC Правила кодирования |
MISRA C: 2012 | MISRA_C3_ | MISRA C:2012 директивы и правила |
MISRA C++ | MISRA_Cpp_ | MISRA C++: 2008 Правила |
JSF® C++ | JSF_Cpp_ | Правила кодирования AV C++ JSF |
Пользовательские правила кодирования | Custom_ | Пользовательские правила кодирования |
Для определения дефектов используйте аббревиатуру дефекта. Смотрите краткие имена Bug Finder Defect Checkers.
Для определения метрик кода используйте аббревиатуру кода. См. «Краткие имена метрик сложности кода».
После внесения изменений в интерфейсе 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.
Метрики HIS
Элемент | Метрика |
---|---|
comf | Comment Density (Polyspace Code Prover) |
path | Number of Paths (Polyspace Code Prover) |
goto | Number of Goto Statements (Polyspace Code Prover) |
vg | Cyclomatic Complexity (Polyspace Code Prover) |
calling | Number of Calling Functions (Polyspace Code Prover) |
calls | Number of Called Functions (Polyspace Code Prover) |
param | Number of Function Parameters (Polyspace Code Prover) |
stmt | Number of Instructions (Polyspace Code Prover) |
level | Number of Call Levels (Polyspace Code Prover) |
return | Number of Return Statements (Polyspace Code Prover) |
vocf | Language Scope (Polyspace Code Prover) |
ap_cg_cycle | Number of Recursions (Polyspace Code Prover) |
ap_cg_direct_cycle | Number of Direct Recursions (Polyspace Code Prover) |
Num_Unjustified_Violations | Количество необоснованных нарушений правил кодирования, заданных записями под элементом CodingRulesSet |
Num_Unjustified_BF_Checks | Количество необоснованных дефектов типов, заданных записями под элементом BugFinderChecksSet |
Метрики, отличные от HIS
Элемент | Описание метрики |
---|---|
fco | Estimated Function Coupling (Polyspace Code Prover) |
flin | Number of Lines Within Body (Polyspace Code Prover) |
fxln | Number of Executable Lines (Polyspace Code Prover) |
ncalls | Number of Call Occurrences (Polyspace Code Prover) |