С Polyspace®, можно проверить код C/C + + на нарушения правил кодирования, таких как MISRA C®: правила 2012 года. Соблюдение правил кодирования может уменьшить количество дефектов и улучшить качество вашего кода.
Polyspace может обнаружить нарушения этих правил:
MISRA- C:2004
MISRA- C:2012
MISRA® C++
JSF AV C++
AUTOSAR C++ 14 (только Bug Finder)
СВИДЕТЕЛЬСТВО® C (только Bug Finder)
CERT C++ (только Bug Finder)
ISO®/ IEC TS 17961 (только для Bug Finder)
Рекомендации
Задайте правила кодирования с помощью опций анализа Polyspace. Когда вы запускаете Bug Finder или Code Prover, анализ ищет нарушения правил кодирования в дополнение к другим проверкам. Можно отключить другие проверки и искать только нарушения правил кодирования.
В пользовательском интерфейсе Polyspace (продукты для настольных ПК) опции находятся на панели Configuration под узлом Coding Standards & Code Metrics.
Для кода С используйте один из следующих опций:
Для сгенерированного кода включите опцию, характерный для сгенерированного кода.
Для сгенерированного кода включите опцию, характерный для сгенерированного кода.
Для кода С++ используйте один из следующих опций:
Можно задать предопределенный подмножество правил, например mandatory
для C:2012 MISRA. Эти подмножества обычно определяются стандартом.
Можно также задать соглашения об именовании для идентификаторов с помощью регулярных выражений. См. «Создание пользовательских правил кодирования».
Вместо предопределенных подмножеств можно задать собственный подмножество правил из стандарта кодирования.
Пользовательский интерфейс (только для настольных Продуктов)
Выберите стандарт кодирования. Из выпадающего списка подмножества правил выберите from-file
. Нажмите Edit.
В Findings selection окне стандарт кодирования подсвечивается на левой панели. На правой панели выберите правила, которые необходимо включить в анализ.
При выборе Guidelines > Software Complexity шашек проверьте их пороги. Если пороги по умолчанию недопустимы, укажите подходящий порог в столбце Threshold. См.
При выборе Custom правил проверьте Pattern и Convention для правил. См. Check custom rules (-custom-rules)
(Polyspace Bug Finder Access).
При сохранении выбранных правил строения сохраняется в XML- файл, которую можно повторно использовать для нескольких анализов. Этот же файл содержит правила, выбранные для всех стандартов кодирования. Можно повторно использовать этот файл в нескольких проектах для применения общих стандартов кодирования в коллективе или организации. Чтобы повторно использовать этот файл в другом проекте в пользовательском интерфейсе Polyspace:
Выберите стандарт кодирования в строении проекта. Из выпадающего списка подмножества правил выберите from-file
.
Нажмите Edit и перейдите к расположению файла. Кроме того, введите имя файла в качестве аргумента для опции Set checkers by file (-checkers-selection-file)
.
Командная строка. С помощью продуктов рабочего стола Polyspace можно создать XML-файл стандарта кодирования в пользовательском интерфейсе, а затем использовать этот файл для анализа командной строки. Предоставьте этому XML- файлу опцию Set checkers by file (-checkers-selection-file)
.
С помощью серверных продуктов Polyspace вы должны создать стандарт кодирования XML с нуля. В зависимости от стандарта, который вы хотите включить, сделайте записываемую копию одного из файлов в
и отключите правила с помощью записей в файл XML (в шаблоне включены все правила из стандарта). Здесь, polyspaceserverroot
\ help\toolbox\polyspace _ bug _ finder _ server\examples\coding _ standards _ XML
является корневой установочной папкой для продуктов Polyspace Server, например polyspaceserverroot
C:\Program Files\Polyspace Server\R2019a
.
Например, чтобы выключить MISRA C:2012 правила 8.1, используйте эту запись в копии файла misra_c_2012_rules.xml
:
<standard name="MISRA C:2012"> ... <section name="8 Declarations and definitions"> ... <check id="8.1" state="off"> </check> ... </section> ... </standard>
При использовании шашек Guideline задайте их порог между threshold
теги. Например, чтобы активировать шашку Cyclomatic Complexity Exceeds Threshold
и установите порог для проверки равным пяти, используйте эту запись в копии guidelines.xml
:
<check id="SC18" state="on"> <threshold>5</threshold> </check>
Чтобы использовать XML- файл для анализа C:2012 MISRA в Bug Finder, введите:
polyspace-bug-finder -sources filename -misra3 from-file -checkers-selection-file misra_c_2012_rules.xml
Полный список идентификаторов правил и имен разделов см. в:
Примечание
Формат XML файла строения средства проверки может измениться в следующих релизах.
Чтобы проверить только на стандарты кодирования:
В Bug Finder отключите проверку дефектов. Используйте опцию Find defects (-checkers)
.
В Code Prover проверьте податливость только исходным кодам. Используйте опцию Verification level (-to)
(Polyspace Code Prover).
Эти правила проверяются на более поздних стадиях анализа Code Prover: MISRA C:2004 правила 9.1, 13.7 и 21.1, и MISRA C:2012 правила 2.2, 9.1, 14.3 и 18.1. Если остановить Code Prover при проверке податливости исходного кода, анализ может не обнаружить всех нарушений этих правил. Вы также можете увидеть различие в результатах на основе вашего выбора для опции Verification level (-to)
(Polyspace Code Prover). Например, возможно, что Code Prover подозревает в первом проходе, что переменная может быть неинициализирована, но во втором проходе доказывает, что переменная инициализирована. В этом случае вы видите нарушение MISRA C:2012 правила 9.1 в первом проходе, но не во втором проходе.
После анализа вы видите нарушения стандартов кодирования на панели Results List. Выберите нарушение, чтобы просмотреть дополнительные сведения на панели Result Details и исходном коде на панели Source.
Нарушения стандартов кодирования указаны в исходном коде со значком.
Для получения дополнительной информации см. раздел Просмотр результатов анализа.
Можно создавать отчеты с помощью шаблонов, явно определенных для стандартов кодирования. Используйте CodingStandards
шаблон. Этот шаблон:
Сообщает только о стандартных нарушениях кодирования в результатах анализа и опускает другие типы результатов, такие как дефекты, ошибки времени выполнения или метрики кода.
Создание отдельной главы в отчете для каждого стандарта кодирования. В главе представлен обзор всех нарушений стандарта, а затем перечислены все нарушения.
Чтобы задать шаблон отчета, используйте опцию Bug Finder and Code Prover report (-report-template)
.