微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MISRA C++ 代码合规性如何确保功能安全和质量?

如何解决MISRA C++ 代码合规性如何确保功能安全和质量?

谁能向我解释 MISRA C++(2008)如何不符合功能安全(ISO 26262),如果它真的符合哪些规则有助于功能安全? 是否有文件或证据表明 MISRA C++ 符合 ISO26262 和 AUTOSAR? 对于质量保证,遵循MISRA C++编码标准对软件开发代码有什么保证

解决方法

正如 MISRA C 和 MISRA C++ 自己声明的那样,它们要求开发成为记录在案的软件开发生命周期的一部分 - 它们不会(它们自己)保证您的系统正常工作。

MISRA C/C++ 满足 ISO26262 的许多要求……但这是一个相当长的话题,而且 StackOverflow 不是给出完整答案的理想场所,因为它非常依赖于上下文。

作为一个同时涉足两个阵营的人(参见简介),我已经在 ISO 26262 上下文中对 MISRA C 进行了多次演示(同样适用于 MISRA C++)。例如:

https://www.slideshare.net/AdaCore/misra-c-in-an-iso-26262-context

(提前为一开始的公司口号道歉!)

但是由于您还提到了 AUTOSAR Adaptive - 这需要符合 MISRA C++

https://www.autosar.org/fileadmin/user_upload/standards/adaptive/18-10/AUTOSAR_RS_CPP14Guidelines.pdf

5.1.1 根据与 MISRA 的兼容性进行规则分类
本文档中的规则被定义为 MISRA C++:2008 的“delta”

,

MISRA C++ 代码合规性如何确保功能安全和质量?

我倾向于认为它不能确保安全或软件质量。它确实对做出了贡献(在其他更重要的因素中,包括项目管理、开发人员的工作经验、分配给code refactoring ....的工作量)。

这是一个人为的过程。它可能会失败。很有帮助。

您可以使用软件静态或动态分析工具(例如 Frama-CBismonClang static analyzerFluctuatAbsIntAstréeCadnaPapyrusCompCert 或使用最新的 GCC 编译器 with gcc -Wall -Wextra -fanalyzer 甚至可能编写自己的 GCC plugin 等...) 但归根结底,您需要人工合作和 code reviews

另请参阅 DECODERVESSEDIA(或 CHARIOT)等项目。

注意Rice's theorem

请记住,软件问题(但不仅限于)与 Boeing 737 MAX 崩溃有关。

请注意,主要的 C++ 编译器(包括 GCCClang MISRA C++ 兼容。它们的一些改进版本已经过认证。而 GCC 和 Clang 大多是用 C++ 编写的...

某些关键软件(例如,Recovid 的软件部分 - COVID 呼吸机 - 法国的开放硬件/开放软件)未通过 AFAIK 认证(但已通过其他标准认证)

例如规则

规则 M0-1-1(必需、实施、自动化)项目不应包含无法访问的代码。

确实很难证明(仅通过对源代码的检查或自动分析)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?