然而,另一个技术委员会花费了数千个工时来开发另一套程序员要遵守的规则。没有兴趣了吗?在MISRA最新版本的情况下,您可能会感到惊喜。
Misra C工作组,其中我是会员,最近宣布了Misra C:2012年,最新版本的编码指南已成为汽车,医疗,MIL / AERO和其他人类生活中的其他应用的事实标准依靠。在这些行业的公司依靠Misra帮助他们提高能够达到生死与死亡之间差异的软件质量,并通过履行标准规则来减轻责任。基本上,Misra为开发人员提供了一套编码的高赌注软件的最佳实践。
那么MISRA C:2012提供的是新的什么?
要回答这个问题,我们先退一步。
MISRA C首次发表于1998年(MISRA C:1998),为汽车系统提供“标准化结构化语言的受限子集”。MISRA C在出乎意料的广泛工业部门的采用远远超出了最初的预期,在广泛的反馈后,发布了一个修订版(MISRA-C:2004),解决了使用中突出的一些问题。没有什么是一成不变的——在软件世界中当然不是这样——随着时间的推移,基本语言已经发展了,标准需要再次更新。这就带来了最新版本的MISRA C:2012,其目的是:
- 更正2004版本中发现的问题
- 添加对C99的支持,同时保留对C90的支持
- 当从MISRA-C:2004迁移到MISRA-C: 2012时,尽可能地提供向后兼容性,这样就不需要修改代码了
- 确保所有规则都包含详细的理由,并删除没有强大理由的规则
- 包括对自动生成代码的规则适用性的指导
- 更精确地制定规则,以便他们不会阻止合理的用途或行为,这些用途或没有任何不良后果的行为
- 为规则的实施提供更好的指导,例如规则是否定义了整个项目的一般行为,或者仅定义了特定的案例
- 将规则定义为“可解除的” - 在其中可以始终确定合规性或不合规性 - 与不可思议的不可思议,其中不可能(通常是由于影响控制流的指针或数据值),以便更好工具执法Andfocus手动检查更精确,节省时间和金钱
我相信MISRA的最新版本将帮助开发人员利用C语言更流行的特性,同时在遵从性方面花费更少的时间。
在我与LDRA的Mark Pitchford合著的一篇文章中(见MISRA C:2012:改变的充分理由),我们概述了最新MISRA规则变化的许多细节,包括编程方法的具体例子。我鼓励任何正在开发具有安全关键方面的应用程序的开发人员研究这个新版本。即使您的应用程序不需要特定的行业认证,能够证明您的代码是按照可用的最严格的质量标准开发的也是有好处的。支持MISRA遵从性的新测试工具将允许您在标准的版本之间进行选择(对于旧项目和新项目),并允许您选择完全遵从性或满足内部模板或需求的用户定义的规则子集。
最终,理解并满足MISRA C:2012的要求可以帮助您满足较高的软件质量保证要求,同时允许您对编程语言的特性做出更好的决定。