Polyspace® Bug Finder и Polyspace, когда Вы Кодируете поддержку различные стандарты кодирования. Проверьте соответствие своего кода с этими стандартами путем анализа отдельных модулей перевода в IDE, и затем анализа целого исходного кода во время интегрирования. Polyspace, когда Вы Кодируете, поддерживает подмножество правил, что Bug Finder поддерживает. Смотрите Средства проверки, Деактивированные в Polyspace, когда Вы Кодируете Анализ По умолчанию.
Стандарт | Релиз | Статически осуществимые правила, реализованные в Bug Finder | Требуемые или императивные нормы, реализованные в Bug Finder |
---|---|---|---|
AUTOSAR C++ 14 | 10-31-2018 | 331 из 351 правила в стандарте | 312 из 362 правил в стандарте |
MISRA C ++:2008 | Июнь 2008 | [a] | 192 из 198 правил в стандарте |
MISRA C:2012 | Январь 2018 (Поправка 2) | 122 из 122 правил в стандарте | 126 из 126 правил в стандарте |
CERT C | 2016 | 120 из 120 правил в стандарте | 120 из 120 правил в стандарте |
[a] MISRA C ++:2008 стандартов не категоризирует правила на основе их статической законной силы |
Кодирующие стандарты категоризируют правила на основе своего уровня обязательства или своей статической законной силы. Polyspace поддерживает правила, которые рассматриваются неосуществимыми или частично осуществимыми стандартами. Осуществление этих правил требует ручного процесса рассмотрения, которому могут помочь результаты Polyspace.
C++ AUTOSAR 14 стандартов категоризирует правила на основе их уровня обязательства и осуществления статическим анализом.
Уровень обязательства
Категория | Правила, реализованные в Bug Finder | Правила в стандарте |
---|---|---|
Требуемый: код должен следовать этим правилам. | 312 | 362 |
Консультация: коду рекомендуют следовать этим правилам до разумной практической степени. | 33 | 35 |
Осуществление статическим анализом
Категория | Правила, реализованные в Bug Finder | Правила в стандарте |
---|---|---|
Автоматизированный: Статический анализ может обнаружить все нарушение этих правил. | 312 | 329 |
Частично автоматизированный: Статический анализ не может обнаружить все возможные нарушения этих правил. Вам нужны ручное рассмотрение кода или другие инструменты, чтобы полностью осуществить эти правила. Polyspace показывает подмножество всех возможных проблем. Для получения дополнительной информации, о котором Polyspace проблем обнаруживает, смотрите раздел Polyspace Implementation на странице с описанием этих правил. | 19 | 22 |
Неавтоматизированный: Статический анализ не может обнаружить все возможные нарушения этих правил. Вам нужны ручное рассмотрение кода или другие инструменты, чтобы полностью осуществить эти правила. Polyspace показывает подмножество всех возможных проблем. Для получения дополнительной информации, о котором Polyspace проблем обнаруживает, смотрите раздел Polyspace Implementation на странице с описанием этих правил. | 14 | 46 |
Автоматизированные и Частично автоматизированные правила статически осуществимы. Всего, Polyspace поддерживает 331 статически осуществимый C++ AUTOSAR 14 правил.
MISRA C ++:2008 стандартов категоризирует правила на основе их уровня обязательства.
Категория | Правила, реализованные в Bug Finder | Правила в стандарте |
---|---|---|
Требуемый: код должен следовать этим правилам. | 192 | 198 |
Консультация: коду рекомендуют следовать этим правилам до разумной практической степени. | 18 | 18 |
Документ: Эти правила сопоставлены с различными функциями включая #pragmas, арифметику с плавающей точкой или битовые поля. Каждый раз, когда эти функции используются, код должен следовать связанному правилу. | 1 | 12 |
Стандарт MISRA C:2012 классифицирует инструкции или как правило или как директиву.
Правило является инструкцией, которая может быть описана полностью. Соответствие с правилом может быть проверено статически с некоторым ограничением. Правила далее категоризированы на основе различных свойств.
Уровень обязательства
Категория | Правила, реализованные в Bug Finder | Правила в стандарте |
---|---|---|
Обязательный: Это инструкции, за которыми должен следовать совместимый код С. Стандарт не разрешает отклонения от этих инструкций. | 16 | 16 |
Требуемый: Это инструкции, за которыми должен следовать совместимый код С. Стандарт разрешает только отклонения, которые вы официально записываете и авторизовываете. | 110 | 110 |
Консультация: Им рекомендуют инструкции. Стандарт разрешает отклонение от этих инструкций без любой формальной записи. Это - лучшая практика, чтобы следовать этим инструкциям до довольно практической степени и записать отклонения. | 32 | 32 |
Совместимый код С должен следовать Обязательным и Необходимым правилам. Polyspace поддерживает все такие правила.
Статическая законная сила
Категория | Правила, реализованные в Bug Finder | Правила в стандарте |
---|---|---|
Разрешимый: правило разрешимо, если инструмент статического анализа может проверить соответствие правилу в каждом возможном случае. | 122 | 122 |
Неразрешимый: правило неразрешимо, если инструмент статического анализа может проверить соответствие к нему только в определенных случаях. Polyspace показывает подмножество всех возможных проблем. Для получения дополнительной информации, о котором Polyspace проблем обнаруживает, смотрите раздел Polyspace Implementation на странице с описанием этих правил. | 36 | 36 |
Область анализа
Категория | Правила, реализованные в Bug Finder | Правила в стандарте |
---|---|---|
Один Модуль Перевода: можно найти все нарушения этих правил путем проверки каждого модуля перевода проекта индивидуально. | 109 | 109 |
Система: можно найти все нарушения этих правил только путем анализа целого проекта или системы. | 49 | 49 |
Директивы являются инструкциями, которые не могут быть полностью описаны. Проверение соответствия этим директивам запрашивает больше информации в дополнение к коду. Статический анализ может помочь в проверении соответствия директивам. Директивы категоризированы на основе уровня обязательства.
Уровень обязательства
Категория | Директивы, реализованные в Bug Finder | Директивы в стандарте |
---|---|---|
Требуемый: Это инструкции, за которыми должен следовать совместимый код С. Стандарт разрешает только отклонения, которые вы официально записываете и авторизовываете. | 9 | 10 |
Консультация: Им рекомендуют инструкции. Стандарт разрешает отклонение от этих инструкций без любой формальной записи. Это - лучшая практика, чтобы следовать этим инструкциям до довольно практической степени и записать отклонения. | 6 | 7 |
Polyspace поддерживает все статически осуществимые правила в CERT C стандарт. Стандарт категоризирует инструкции в правила и рекомендации. Polyspace не поддерживает правила, которые удаляются или в процессе строительства.
Категория | Проверки, реализованные в Bug Finder | Регистрации стандарта |
---|---|---|
Правило: Эти инструкции требуются. Нарушение этих инструкций может поставить под угрозу безопасность, безопасность или надежность системы. Инструменты статического анализа могут обеспечить соблюдение с этими инструкциями. | 120 | 120 |
Рекомендация: Эти инструкции предназначаются, чтобы улучшить удобочитаемость, безопасность и безопасность системы. Статический анализ может только обнаружить подмножество нарушений этих инструкций. Polyspace показывает подмножество всех возможных проблем. Для получения дополнительной информации, о котором Polyspace проблем обнаруживает, смотрите страницу с описанием этих правил. | 83 | 183 |
Polyspace также поддерживает эти правила стандартов кодирования.
Стандарт | Правила, реализованные в Bug Finder |
---|---|
MISRA C:2004 | 132 из 142 правил в стандарте |
AGC AC MISRA | 130 из 142 в стандарте |
ISO/IEC TS 17961 | 46 из 46 в стандарте |
JSF AV C++ | 160 из 234 в стандарте |
CERT C++ | 138 из 163 в стандарте |
Check AUTOSAR C++ 14 (-autosar-cpp14)
| Check MISRA C++:2008 (-misra-cpp)
| Check SEI CERT-C++ (-cert-cpp)
| Check MISRA C:2012 (-misra3)
| Check MISRA C:2004 (-misra2)
| Check SEI CERT-C (-cert-c)