Лучшие вопросы
Таймлайн
Чат
Перспективы

MISRA C

Из Википедии, свободной энциклопедии

Remove ads

MISRA C — стандарт разработки программного обеспечения на языке Си, разработанный MISRA (Motor Industry Software Reliability Association). Цель стандарта — улучшить безопасность, переносимость и надежность программ для встраиваемых систем. Также существует набор похожих руководящих принципов для языка C++ под названием MISRA C++.

В настоящее время стандарты MISRA используются не только в автомобильной индустрии, но также в аэрокосмической и телекоммуникационной, разработке медицинских устройств, военных проектах[1][2][3].

Первая редакция стандарта MISRA C — «Guidelines for the use of the C language in vehicle based software» — была опубликована в 1998 году и часто называется MISRA-C:1998[4]. В 2004 была издана вторая редакция под названием «Guidelines for the use of the C language in critical systems» (MISRA-C:2004) со значительными изменениями, включая перенумерацию правил. Продолжается работа над следующей редакцией стандарта, адаптированной к C99.

Официально текст стандарта MISRA C доступен платно.[5]

Remove ads

Правила

В MISRA-C:1998 перечислено 127 правил[6] (93 обязательных и 34 рекомендательных). В MISRA-C:2004 141 правило (121 обязательное и 20 рекомендательных). Правила разделены на 21 категорию. В MISRA-C:2012 143 правила (каждое из которых может быть проверено статическим анализатором кода) и 16 директив (правил, соответствие которым открыто для интерпретаций или связано с процессами и процедурами)[7]. Правила делятся на обязательные, требуемые и рекомендательные, они могут распространяться на отдельные единицы трансляции или на всю систему[7]. Также правила разделены на Decidable и Undecidable. В стандарте MISRA C++ 2008 года, основанном на C++ 2003, 228 правил[8].

Remove ads

Анализаторы

Существует множество программных анализаторов, которые проверяют код на соответствие правилам MISRA, однако процесса сертификации MISRA не существует.[9]

Большая часть правил может быть проверена при помощи утилит статического анализа кода, но часть из них требуют применения средств динамического анализа.

Анализаторы, проверяющие соответствие MISRA:

Компиляторы C, которые могут проверять соответствие MISRA, выпускаются компаниями:

Remove ads

Критика

Несколько исследований ставят под вопрос эффективность правил MISRA.[11] В частности, выявлялась негативная корреляция между нарушениями правил MISRA и наблюдаемыми сбоями программ.[12]

См. также

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads