MISRA C是由MISRA组织制定的针对C语言的软件开发标准。它的目标促进C代码在嵌入式系统中的安全性、可移植性和可靠性,明确表明这些系统需要使用ISO C。
第一个版本的MISRA标准是“Guideline for the use of the C language in vehicle based software”,该标准于1998年发布,官方命名为MISRA-C:1998
在2004年,第二个版本"Guidelines for the use of the C language in critical systems",也被称作MISRA-C:2004被发布,与MISRA:1998相比,MISRA: 2004有很多地方被修改,包含所有的规则序列号。
Ø MISRA-C:1998: 127 条规则 (93 –强制要求, 34 –推荐使用)
Ø MISRA-C:2004: 141 条规则(121 – 强制要求,20 – 推荐使用),被分为21个类别,从"Environment" 到 "Run-time failures".
MISRA代表汽车制造业软件可靠性联盟(Motor Industry Software Reliability Association),该组织是由一些在公路汽车安全相关电子系统和其它嵌入式系统领域中掌握最好经验的汽车制造商,部件制造商,工程质询公司组成。
根据MISRA C,指导方针应该由汽车制造业公司使用,但是很多其它的开发组织也受益于此。指导方针强制源代码的开发和指出了C语言的不明确。它们可以帮助开发者采用一直的方式从而避免混淆构造。
为了说明你的产品支持MISRA C指导方针,你必须展示:
Ø 一个遵循矩阵用来标明哪些规则是强制的;
Ø 所有的C代码都应该遵守MISRA C准则或者是遵循具有文档证明的偏差
Ø 那些没有遵循规则的所有被维护的实例列表,针对每一个实例应该具有一个适当的终止文档证明的背离。
必须在下面方面中选用合适的方法:培训,风格指导,编译器选择和确认,检测工具的确认,度量,测试覆盖等。