Примечание
В этом разделе описывается рабочий процесс в веб-интерфейсе Polyspace Metrics.
Для более простых совместных обзоров используйте Polyspace® Code Prover™ Access™. В дополнение к более интуитивно понятной веб-приборной панели, с Polyspace Access можно:
Просмотрите и разъясните результаты непосредственно из веб-браузера.
Интеграция инструмента отслеживания дефектов, такого как Jira, с веб-интерфейсом и создание билетов для отслеживания результатов Polyspace.
Делитесь результатами анализа с помощью веб- ссылок.
Для получения дополнительной информации см. документацию Polyspace Code Prover Access.
После генерации и просмотра метрик из результатов верификации можно просмотреть результаты более подробно. Можно загрузить каждый результат в пользовательский интерфейс Polyspace, исследовать его в исходном коде и добавить к ним комментарии рецензирования. Для получения дополнительной информации смотрите View Code Quality Metrics.
Чтобы сфокусировать свой обзор, вы можете:
Определите цели качества, которым должны соответствовать вы или разработчики в организации.
Примените цели качества к результатам верификации.
рассматривать только те результаты, которые не отвечают этим целям.
По умолчанию цели качества программного обеспечения отключены. Для применения целей качества:
Откройте интерфейс Polyspace Metrics. Просмотрите метрики для проекта или запуска на вкладке Summary.
Для получения дополнительной информации смотрите View Code Quality Metrics.
Из списка Quality Objectives в верхнем левом углу выберите ON
.
Появится новая группа Software Quality Objectives столбцов.
В столбце Overall Status - последний используемый целевой уровень качества для создания статуса PASS или FAIL для результатов.
В Level столбце можно увидеть целевой уровень качества.
Чтобы изменить целевой уровень качества, в этом столбце выберите камеру. В раскрывающемся списке выберите уровень качества. Для получения дополнительной информации смотрите Цели качества программного обеспечения.
Для файлов с Overall Status FAIL, чтобы увидеть, что является причиной отказа, просмотрите записи в других столбцах Software Quality Objectives. Записи, вызывающие отказ, отмечены красным цветом.
Если значок появляется рядом со статусом, это означает, что Polyspace не имеет достаточной информации для вычисления статуса. Например, если вы задаете уровень SQO-1
, но не проверяйте на нарушения правил кодирования в вашем проекте, Polyspace не может определить, удовлетворяет ли ваш проект всем целям, указанным в SQO-1
.
Просмотрите дополнительные сведения о записях, отмеченных красным цветом на вкладке Summary. Например, если запись в Code Metrics over Threshold столбце отмечена красным цветом, выберите ее. Значения метрик сложности кода можно увидеть на вкладке Code Metrics.
Проверьте каждую метрику сложности кода, нарушение правил кодирования или ошибку времени выполнения, из-за которой ваш проект не справился с целями качества. Исправьте код или подтвердите ошибки или нарушения.
Вкладка | Действие |
---|---|
Code Metrics | Обратите внимание на красные записи. Выберите каждую запись, чтобы загрузить нарушение порога метрики кода в пользовательский интерфейс Polyspace. Проверьте нарушения и исправьте или обосновайте их. Если вы обосновываете нарушение, можно загрузить свои обоснования на веб-панель инструментов Polyspace Metrics. После обоснования красная запись появляется зеленой со значком рядом с ней. |
Coding Rules | В столбце Justified обратите внимание на красные значения. Выберите каждую запись, чтобы загрузить нарушение правил кодирования в пользовательский интерфейс Polyspace. Проверьте нарушение и исправьте или обосновайте его. Если вы обосновываете нарушение, можно загрузить свои обоснования на веб-панель инструментов Polyspace Metrics. После обоснования в столбце «Justified» появляется зеленый цвет. |
Run-Time Checks | В Justified столбцах обратите внимание на красные значения. Выберите каждую запись для загрузки проверок в пользовательский интерфейс Polyspace. Проверьте проверки и исправьте или разъясните их. Если вы обосновываете проверку, можно загрузить обоснования на веб-панель инструментов Polyspace Metrics. После обоснования в столбце «Justified» появляется зеленый цвет. |
Для получения дополнительной информации о процессе рассмотрения смотрите Review Metrics for Specific Project или запуск.
После просмотра в интерфейсе Polyspace Metrics щелкните, чтобы просмотреть обновленные метрики. Проверьте, имеет ли ваш проект Overall Status PASS из-за ваших обоснований.
Если вы измените код, чтобы обновить метрики, перезапустите верификацию и загрузите результаты в репозиторий Polyspace Metrics. Если у вас есть обоснования в предыдущих результатах, импортируйте их в новые результаты перед загрузкой новых результатов в репозиторий. Для начала выберите Tools > Import Comments.
Совет
Можно применить цель качества ко всем файлам в проекте или запустить. Если вы хотите выключить цели качества или применить другие цели для некоторых файлов в вашем проекте, можно поместить их в отдельный модуль.
Чтобы создать новый модуль, нажмите Ctrl и выберите строки, содержащие файлы, которые вы хотите сгруппировать. Щелкните правой кнопкой мыши по выделенной области. и выберите Add to Module. В столбце Level для этого модуля выберите цель качества из раскрывающегося списка. Программное обеспечение применяет эту цель ко всем файлам в модуле и определяет Overall Status PASS или FAIL к модулю.
Вместо использования предопределенной цели можно задать собственные цели качества и применить их к своему проекту или модулю.
Сохраните следующее содержимое в XML- файл. Назовите файл Custom-SQO-Definitions.xml
.
<?xml version="1.0" encoding="UTF-8"?> <MetricsDefinitions> <SQO ID="Custom-SQO-Level" ApplicableProduct="Code Prover" 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_Red>0</Num_Unjustified_Red> <Num_Unjustified_NT_Constructs>0</Num_Unjustified_NT_Constructs> <Num_Unjustified_Gray>0</Num_Unjustified_Gray> <Percentage_Proven_Or_Justified>Custom_Runtime_Checks_Set</Percentage_Proven_Or_Justified> </SQO> <CodingRulesSet ID="Custom_MISRA_Rules_Set"> <Rule Name="MISRA_C_5_2">0</Rule> <Rule Name="MISRA_C_17_6">0</Rule> </CodingRulesSet> <RuntimeChecksSet ID="Custom_Runtime_Checks_Set"> <Check Name="OBAI">80</Check> <Check Name="IDP">60</Check> </RuntimeChecksSet> </MetricsDefinitions>
Вы можете использовать этот файл как для результатов Bug Finder, так и для результатов Code Prover. Для получения информации об элементах XML, относящихся к Bug Finder, смотрите Сравнение метрики с целями качества ПО.
Сохраните этот XML- файл в папке, в которой хранятся данные удаленного анализа, для примера C:\Users\JohnDoe\AppData\Roaming\Polyspace_RLDatas
.
Если необходимо изменить расположение папки, выберите Metrics > Metrics and Remote Server Settings.
Измените содержимое этого файла, чтобы указать имя проекта и свои собственные пороги качества. Для получения дополнительной информации смотрите Элементы в Пользовательском файле целей качества программного обеспечения.
Чтобы сделать уровень качества Custom-SQO-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_ | Пользовательские правила кодирования |
Для определения проверок используйте соответствующий чек-акроним. Для получения дополнительной информации смотрите Краткие имена проверок во время выполнения Code Prover.
Для определения метрик кода используйте аббревиатуру кода. См. «Краткие имена метрик сложности кода».
После внесения изменений в интерфейсе Polyspace Metrics откройте метрики для своего проекта. Из списка Quality Objectives в верхнем левом углу выберите ON
.
На вкладке Summary выберите запись в столбце Level. Для заданного имени проекта в раскрывающемся списке появится новое Custom-SQO-Level цели качества.
Выберите новую цель качества.
Программа сравнивает указанные пороги с результатами и обновляет столбец Overall Status на PASS или FAIL.
Чтобы задать другой набор пользовательских целей качества, добавьте следующее содержимое к Custom-SQO-Definitions.xml
файл:
<SQO ID="Custom-SQO-Level_2" ParentID="Custom-SQO-Level" ApplicableProduct="Code Prover" ApplicableProject="My_Project"> ... </SQO>
ID
представляет имя нового набора.
Вы не можете иметь одинаковые значения ID
и ApplicableProject
для двух различных наборов целей качества. Для примера, если вы используете ID
значение Custom-SQO-Level
для двух разных наборов и ApplicableProject
значение My_Project
для одного набора и My_Project
или ""
для другого, вы видите следующую ошибку:
The SQO level 'Custom-SQO-Level' is multiply defined.
ParentID
задает другой уровень, от которого текущий уровень наследует свои цели качества. В предыдущем примере уровень Custom-SQO-Level_2
наследует цели качества от уровня Custom-SQO-Level
.
Если вы не хотите наследовать цели качества с другого уровня, опускайте этот атрибут.
...
представляет дополнительные пороги качества, заданные для уровня Custom-SQO-Level_2
.
Заданные пороги качества переопределяют пороги, которые Custom-SQO-Level_2
наследует от Custom-SQO-Level
. Например, если вы задаете <goto>1</goto>
, это переопределяет пороговую спецификацию <goto>0</goto>
от Custom-SQO-Level
.