exponenta event banner

Проверка нарушений стандартов кодирования

С помощью Polyspace ® можно проверить код C/C + + на наличие нарушений правил кодирования, таких как правила MISRA C ®: 2012. Соблюдение правил кодирования позволяет уменьшить количество дефектов и повысить качество кода.

Polyspace может обнаружить нарушения этих правил:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA ® C++

  • JSF AV C++

  • AUTOSAR C++ 14 (только для поиска ошибок)

  • CERT ® C (только для поиска ошибок)

  • CERT C++ (только для поиска ошибок)

  • ISO ®/IEC TS 17961 (только для поиска ошибок)

  • Рекомендации

Настройка проверки правил кодирования

Задание стандартных и предопределенных подмножеств средств проверки

Укажите правила кодирования с помощью опций анализа Polyspace. При запуске функции «Поиск ошибок» или «Проверка кода» в ходе анализа в дополнение к другим проверкам выполняется поиск нарушений правил кодирования. Можно отключить другие проверки и искать только нарушения правил кодирования.

В интерфейсе пользователя Polyspace (продукты для настольных ПК) параметры находятся на панели Конфигурация (Configuration) в узле Стандарты кодирования и метрики кода (Coding Standards & Code Metrics).

Для кода C используйте одну из следующих опций:

Для кода C++ используйте одну из следующих опций:

Можно указать предопределенное подмножество правил, например, mandatory для C:2012 MISRA. Эти подмножества обычно определяются стандартом.

Можно также определить соглашения об именовании для идентификаторов с помощью регулярных выражений. См. раздел Создание пользовательских правил кодирования.

Настройка подмножеств проверки

Вместо предопределенных подмножеств можно указать собственное подмножество правил из стандарта кодирования.

Интерфейс пользователя (только для настольных ПК)

  1. Выберите стандарт кодирования. В раскрывающемся списке подмножества правил выберите from-file. Нажмите кнопку Изменить.

  2. В окне выбора результатов стандарт кодирования выделен на левой панели. На правой панели выберите правила, которые необходимо включить в анализ.

    • При выборе команды «Рекомендации» > «Проверка сложности программного обеспечения» просмотрите их пороговые значения. Если пороги по умолчанию неприемлемы, укажите подходящий порог в столбце Порог (Threshold). Смотрите.

    • При выборе Настраиваемые правила (Custom rules) просмотрите Шаблон (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 Server необходимо создать стандартный XML-код с нуля. В зависимости от стандарта, который требуется включить, создайте записываемую копию одного из файлов в polyspaceserverroot\help\toolbox\polyspace_bug_finder_server\examples\coding_standards_XML и отключите правила, используя записи в XML-файле (все правила из стандарта включены в шаблоне). Здесь, polyspaceserverroot является корневой папкой установки для продуктов Polyspace Server, например, 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 теги. Например, чтобы активировать средство проверки и установить порог для средства проверки равным пяти, используйте эту запись в копии 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).

    Эти правила проверяются на более поздних стадиях анализа доказывающего кода: MISRA C:2004 правила 9.1, 13.7 и 21.1 и MISRA C:2012 правила 2.2, 9.1, 14.3 и 18.1. Если остановить программу проверки кода при проверке соответствия источника, анализ может не обнаружить всех нарушений этих правил. Можно также увидеть разницу в результатах на основе выбора опции. Verification level (-to). Например, возможно, что средство проверки кода подозревает в первом проходе, что переменная может быть неинициализирована, но доказывает во втором проходе, что переменная инициализирована. В этом случае вы видите нарушение правила 9.1 MISRA C:2012 в первом прохождении, но не во втором прохождении.

Проверка нарушений правил кодирования

После анализа на панели Список результатов (Results List) появятся нарушения стандартов кодирования. Выберите нарушение, чтобы просмотреть дополнительные сведения на панели Сведения о результате (Result Details) и исходный код на панели Источник (Source).

Нарушения стандартов кодирования обозначены в исходном коде значком.

Дополнительные шаги см. в разделе Просмотр результатов анализа.

Создание отчетов

Отчеты можно создавать с использованием шаблонов, явно определенных для стандартов кодирования. Используйте CodingStandards шаблон. Этот шаблон:

  • Сообщает только о стандартных нарушениях в результатах анализа и пропускает другие типы результатов, такие как дефекты, ошибки во время выполнения или метрики кода.

  • Создание отдельной главы в отчете для каждого стандарта кодирования. в этой главе представлен обзор всех нарушений стандарта, а затем перечислены все нарушения.

Чтобы указать шаблон отчета, используйте опцию Bug Finder and Code Prover report (-report-template).

Связанные темы