科技俱乐部|C++和AUTOSAR C++合并的讨论,独家|软件开发行业专家关于MISRA( 三 )


MISRAC++和AUTOSARC++集成会影响现有用户吗?
Mirek:肯定会有影响 。 例如 , 如果依赖于MISRAC++2008的组织要迁移到AUTOSARC++ , 则他们必须处理大约200条新规则(因为在当前的AUTOSARC++版本18.10中 , 大约45%的规则直接继承自MISRAC++2008)) 。
因此 , 如果组织依赖MISRAC++2008 , 则对他们而言 , 迁移到AUTOSARC++是一项巨大的工作 。 但是 , 这样做还有很大的价值 , 因为MISRAC++2008和AUTOSARC++之间的差异解决了自2003年以来C++语言的变化 。 因此AUTOSARC++中包含了C++11和C++14的所有新颖性 。 是的 , 这是有影响的 , 但是更新到新标准也有很多价值 。
Andrey:如果客户从MISRAC++更改而他们已经符合其既定的编码标准 , 并且更改了标准(例如AUTOSARC++) , 那么所产生的影响有时也会更加后勤 。
这些客户已经在内部进行了正当化 , 记录在案并抑制了警告 , 甚至有可能通过审核 。 例如 , 假设违反了MISRAC++规则11.5 , 但已记录并记录了偏差 。 那是压制的例子 , 或者在这种情况下是偏差 , 它需要报告和文书工作 。 现在 , 如果我转到AUTOSARC++ , 那么来自MISRAC++的规则可能是相同的规则 , 但是工具供应商将其报告为AUTOSARC++规则17.6 。 这是一个不同的名称 , 但这是唯一的区别——仅是标签 。 静态分析工具将其再次标记为错误 , 并且忽略了抑制 。 禁止标记有不同的规则编号 , 现在它们有大量违规行为 。
那么安全性呢?AUTOSARC++以及大概新的MISRAC++是否涵盖安全性?
Mirek:好吧 , 主要是功能安全标准 , 但是安全性和安全性是相关的 。 两者都是关于创建没有导致无法预料的行为的构造的软件的 , 这意味着遵循AUTOSARC++或MISRAC++进行功能安全的组织通常在安全性方面被很好地涵盖 。 安全是为了消除程序的不可预测性 , 当然 , 安全性也可以提高安全性 。
但是像CERT这样的安全性准则更为详尽 , 并且包含了更多与安全性相关的准则 。 当前 , 我们在许多组织(尤其是成熟的汽车组织)中看到的是 , 他们选择功能安全标准作为主要来源 , 然后通过包括来自诸如CERTC++的安全标准的其他选定准则来增强规则集 。
是否有任何动力将更高的安全性纳入这些安全关键标准中 , 例如合并诸如CERTC++之类的安全性标准?还是您认为公司会自己继续合并规则集?
Mirek:我个人不会很快将CERT与MISRA或AUTOSAR集成或合并 。 由于安全性的范围更广 , 而在语言子集方面则不那么严格 , 因此始终需要与安全性标准分开的面向安全性的标准 。
因此 , 例如 , 在MISRAC++2008中 , 您有一条规则可以阻止您使用动态内存分配 。 如果要与MISRAC++2008兼容 , 则不能使用它 。 但是 , 对于CERTC++ , 这是完全可以的 。 您可以使用动态内存分配 , 并且有关于如何以安全方式进行分配的规则 。
Piotr:是的 , 您可以在MISRA网站上找到官方文件 , 这些文件提供有关MISRAC2012和CERTC之间映射的信息 , 例如 , 这些映射清楚地告诉您所缺少内容的区别 。 因此 , 开发人员可以了解有关在选择规则时要从CERTC/C++中包括哪些指南的信息 。 并且在AUTOSARC++和CERTC++之间也存在可追溯性映射 。 我认为所有CERTC++指南中约有50%在AUTOSARC++本身中也有类似的规则 。
Mirek:另外 , 我认为采用这些标准在地区方面 。 正如我们随着MISRA的逐步采用所看到的那样 , 现在CERTC和C++看到了类似的模式 。 例如 , 我们在日本的客户很快就采用了最新的标准 , 他们似乎领先于世界其他地区 。 我们的日本客户是第一个比其他地区至少提前一年要求MISRAC2012支持的客户 , 现在我们看到CERTC和C++的情况类似 , 日本汽车市场上有更多需要CERTC/C++支持的请求 。
AUTOSARC++是非常动态的标准 , 每年发布两个版本 。 频繁更新对试图实现合规性的组织有什么影响?您预见到新的MISRAC++标准会遵守此时间表吗?


推荐阅读