MISRA C

MISRA C是一套由MISRA联盟开发的C编程语言的软件开发指南。它的目的是促进嵌入式系统代码安全、安保、可移植性和可靠性,特别是那些用ISO C / C90 / C99编程的系统。

还有一套针对MISRA C++的指南,不在本文的讨论范围之内。

历史

  • 草案。1997年
  • xxx版。1998年(规则、要求/建议)
  • 第二版:2004年(规则、要求/建议)
  • 第三版:2012年(指令;规则,可确定/不可确定)
  • MISRA合规性:2016年,2020年更新

对于MISRA-C的前两个版本(1998年和2004年),所有准则被认为是规则。随着MISRA C:2012的出版,引入了一个新的准则类别–其合规性更容易解释的指令,或与过程或程序性事项有关的指令。

采用

虽然最初专门针对汽车行业,但MISRA C已经发展成为一个最佳实践模型,被汽车、航空航天、电信、医疗设备、国防、铁路和其他行业的xxx开发商广泛接受。例如。

  • 联合攻击战斗机项目的C++编码标准是基于MISRA-C:1998的。
  • NASA喷气推进实验室的C语言编码标准是基于MISRA-C:2004。
  • ISO 26262功能安全-道路车辆引用MISRA C作为C语言的适当子集。
    • ISO 26262-6:2011第6部分:软件级产品开发参考MISRA-C:2004和MISRA AC AGC。
    • ISO 26262-6:2018第6部分:软件级产品开发参考MISRA C:2012。
    • AUTOSAR通用软件规范(SRS_BSW_ 00007)也参考MISRA C:
      • AUTOSAR 4.2通用软件规范要求,如果BSW模块的实现是用C语言编写的,它应符合MISRA C:2004。
      • AUTOSAR 4.3通用软件规范要求,如果BSW模块的实现是用C语言编写的,它应符合MISRA C:2012。

    代码分类和归类

    当一个新的软件项目开始时,应使用最新的MISRA标准。以前的标准仍可用于需要参考的遗留软件项目。

    实现合规性

    MISRA合规性

    MISRA已发布文件,为理解和实现MISRA合规性提供额外的指导。

    • MISRA合规性:2016,由MISRA于2016年4月出版。
    • 《MISRA合规性:2020》,修订版,2020年2月出版。

    合规性

    为了使一个软件声称符合MISRA C指南,所有的强制性规则都应得到满足,所有要求的规则和指令都应得到满足,或受到正式的偏离。

  • MISRA C
  • 咨询规则可以在没有正式偏离的情况下消失,但这仍应在项目文件中记录。

    注意:在合规性方面,规则和指令之间没有区别。

    偏离

    许多MISRA C的规则可以被描述为指南,因为在某些条件下,软件工程师可以偏离规则,但仍被认为是合规的。偏差必须记录在代码或文档中。此外,必须证明软件工程师已经考虑了系统的安全性,而且偏离规则不会产生负面影响。对偏离的要求还包括。

0

点评

点赞

相关文章