MISRA C
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]
Правила
В 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].
Анализаторы
Существует множество программных анализаторов, которые проверяют код на соответствие правилам «MISRA», однако процесса сертификации MISRA не существует.[9]
Большая часть правил может быть проверена при помощи утилит статического анализа кода, но часть из них требуют применения средств динамического анализа.
- Анализаторы, проверяющие соответствие MISRA
- Компиляторы C, которые могут проверять соответствие MISRA, выпускаются компаниями
Критика
См. также
Примечания
Ссылки
- misra.org.uk — официальный сайт MISRA C
- Introduction to MISRA C (недоступная ссылка — история). embedded.com. Архивировано 17 мая 2012 года.
- MISRA C: Safer Is Better (недоступная ссылка — история). electronicdesign.com. Архивировано 17 мая 2012 года.
- MISRA C — Some key rules to make embedded systems safer (недоступная ссылка — история). iar.com. (недоступная ссылка)
- Software reliability expert Les Hatton. MISRA C papers. leshatton.org. Архивировано из оригинала 19 сентября 2003 года.
- Commentary on the first edition of the MISRA C guidelines (недоступная ссылка — история). knosof.co.uk. Архивировано 17 мая 2012 года.
- Automating Compliance to MISRA C/C++ Standards (недоступная ссылка — история). johndayautomotivelectronics.com. Архивировано 17 мая 2012 года.