汽车软件团队必看:基于静态代码分析工具Perforce QAC的ISO 26262合规实践

汇鼎金融 25-08-08

本文节选自Perforce《ISO 26262 功能安全实践指南》电子版;由Perforce中国授权合作伙伴——龙智翻译整理。

ISO 26262是一项适用于汽车行业的功能安全标准,源自IEC 61508,包含了对软件开发和设计的要求。第6部分的合规性表格涵盖了其中的大部分要求。

在本文中,您将了解到编码标准和静态代码分析工具(如Perforce QAC),如何帮助满足所有ASIL等级的ISO 26262要求。

导言

随着车辆中电子设备的日益普及以及系统复杂性的增加,ISO 26262变得至关重要。软件故障可能会危及车辆安全,因此绝不容许发生。

开发团队需要确保系统不会出现任何可能导致故障的情况,但全面的测试往往难以实现。因此,系统设计必须能够预防故障,或在故障发生时确保行为可控。

符合功能安全标准(如ISO 26262)正是汽车系统安全设计的关键所在。

ISO 26262概述

ISO 26262改编自IEC 61508(电子安全相关系统的功能安全标准),侧重于关注车辆系统在整个安全生命周期内的特定需求。

需要符合ISO 26262标准的系统包括:

• 驾驶辅助系统

• 动力与车辆动态控制系统

• 主动与被动安全系统

系统越复杂,发生故障的风险就越大,包括系统性的和随机的硬件故障。

如何通过ISO 26262降低风险

ISO 26262为开发者提供了降低风险的指导,包括以下要求和设计流程。

汽车安全完整性等级 (ASIL)

ISO 26262对风险和安全要求进行了分类,共分为四个汽车安全完整性等级(ASIL A–D)。ASIL A为最低级别,ASIL D为最高级别。

系统的ASIL等级(在功能层面)决定了开发团队需要采用何种方法。

这些要求在ISO 26262第6部分中有明确规定,包括:

• 软件开发的启动

• 软件架构设计

• 软件单元设计与实施

编码标准要求

建议使用编码标准(如MISRA)来满足ISO 26262要求。结合使用编码标准和静态代码分析工具(如Perforce QAC),可以帮助您符合ISO 26262第6部分的要求。

ISO 26262 第6部分合规性表格

ISO 26262第6部分包含定义实现标准合规性方法的表格。

以下将介绍如何通过Perforce QAC(原Helix QAC,一款用于C/C++的静态代码分析工具),来满足其中五个表格的要求。

推荐说明:

++ 强烈推荐用于指定ASIL等级

+ 推荐用于指定ASIL等级

o 对于指定ASIL等级,无明确推荐或反对

表1、建模与编码指南应涵盖的主题

表1包含了推荐用于所有ASIL等级的建模和编码指南。对于C或C++编写的软件,可以使用Perforce QAC来满足大部分的指南要求。

例如,强烈建议在所有ASIL等级中强制执行低代码复杂度。您可以通过使用Perforce QAC的Web控制面板,来监控代码复杂度随时间的变化趋势,以确保代码库在增长过程中不会变得过于复杂。

表3、软件架构设计原则

表3涵盖了推荐用于所有ASIL等级的架构设计原则。Perforce QAC可用于满足其中部分原则。

例如,强烈建议在所有ASIL等级下限制软件组件的大小。Perforce QAC可以测量并报告与代码规模相关的多种不同指标。

表6、软件单元设计与实施的设计原则

表6涵盖了推荐用于所有ASIL等级的设计原则。Perforce QAC与MISRA合规性模块相结合,可用于遵守这些原则。

例如,强烈建议在子程序和函数中设置单一入口点和单一出口点(所有ASIL等级)。

使用Perforce QAC,您可以强制执行以下MISRA规则以遵守这一设计要求:

  • MISRA C:2004 规则 14.4:禁止使用goto语句。
  • MISRA C:2004 规则 14.7:函数在函数末尾设有单一出口点。

表7、软件单元验证方法

表7涵盖了软件单元验证方法。Perforce QAC可用于执行其中的几种方法。

例如,除了基本的静态代码分析外,Perforce QAC还可以自动执行复杂的数据流分析,帮助开发者快速发现潜在错误,加速软件设计验证。

表10、软件集成验证方法

表10规定了软件集成验证方法。与表7类似,Perforce QAC可用于执行其中的几种方法。

例如,Perforce QAC除了支持检查是否符合编码指南,还能提供复杂的数据流分析功能。

使用Perforce QAC轻松实现ISO 26262合规

Perforce QAC 可检查代码是否符合 MISRA 和 AUTOSAR 等编码规则,帮助满足ISO 26262中包含的所有ASIL等级(A-D)的合规要求。该工具还包含MISRA C/C++和AUTOSAR C++14的合规模块。

此外,Perforce QAC已通过 TÜV-SÜD 认证,可用于安全相关软件开发,涵盖所有ASIL等级(A-D)的ISO 26262合规性要求。通过使用Perforce QAC,您可以有效降低合规所需的时间和成本。

Perforce中国授权合作伙伴——龙智