如何通过 qa•c和qa•c++达到iso 26262规范要求 -凯发官方首页

如何通过 qa•c和qa•c++达到iso 26262规范要求
        qa.c及qa.c++作为软件静态分析行业的领导者,在开发安全关键应用程序方面有着极为丰富的经验,众多开发团队认为qa.c及qa.c++是遵从iso 26262标准的优秀工具。如何通过qa.c及qa.c++(配备misra模块)实现对iso26262标准的遵从?本文将就这一话题进行讨论。
 
介绍
        如今,电子设备被越来越多地应用于安全关键环境中,这些电子设备中所包含的软件也日益复杂,通过穷举测试实现零故障已经不现实。所以在设计系统的时候,除了尽量避免故障,还要确保故障发生的可控性。
        引入标准的一个重要目的就是确保安全关键应用软件的强壮性。如misra等编码标准通过规定使用编程语言的一个特定子集达到改善软件质量的目的。iso 26262则强制要求使用更好的开发流程,包括通过使用编码标准促进软件质量的进一步的提高。
 
iso 26262
        iso26262源于iec61508,是iec61508在可编程电子安全相关系统应用中的具体规定。iso 26262面向批量生产的乘用车中安装的电器/电子系统的特定需求,适用于安全相关系统的安全生命周期内的所有活动。
        iso26262标准面向驾驶辅助系统、推进系统、车辆动态控制系统、主动安全系统和被动安全系统。这些系统复杂性不断增加,系统故障及随机硬件故障的风险也随之增加。而iso26262标准通过提供适当的要求和流程,帮助开发人员降低这些风险。
        iso 26262可满足用户对风险或安全不同层次的要求。iso 26262引入了汽车安全完整性等级(asil a-d),对给定的系统提供必要的安全防护措施。针对不同的asil级别,所采取的方法也不同。其中asil d代表最严格的水平。
        针对软件开发,iso26262标准的第六章,对软件开发配置、软件体系结构设计和软件单元的设计和实现提出了具体的要求。qac及qac++(均需配置misra模块)能够很好地帮助开发者实现这些要求。
 
prqa, qa•c和qa•c++
        prqa是编码规则检验的先行者,因其业界先进的软件检验和标准执行技术,被公认为编码标准专家。prqa的qa•c和qa•c++静态分析工具提供全面的解析器,提供详细的信息并准确地执行编码标准。
        qa•c(qa•c++)可以通过配置强制遵守许多编码标准,包括misra-c:1998 (misra-c++:1998)、misra-c:2004(misra-c++:2004)以及misra-c:2012。这两个工具也可用于安全相关系统的合规检查。
 
prqa工具遵从iso 26262
        qa.c(配置misra-c模块)及qa.c++(配置misra-c++)凭借在开发安全相关软件方面可达到iso 26262标准asil d级别,通过了tüv süd资格认证。
        在相应的安全手册中,对如何将prqa工具集成至开发过程与安全相关的系统中有详细的叙述。此安全手册包含在安全相关环境中正确使用工具的所有相关信息。
        iso 26262资格认证包(qa•c 使用 misra-c规则的情况)中包含:
            • 安全手册
            • 通过tüv süd的资格认证
            • 资格认证报告
        iso 26262资格认证包(qa•c++ 使用 misra-c++扩展规则的情况)中包含:
            • 安全手册
            • 通过tüv süd的资格认证
            • 资格认证报告
            • misra-c++扩展的合规性模块
 
iso 26262 – 第6 部分合规列表
        iso 26262第6部分针对软件级上的产品开发,用列表形式体现符合标准须具备的方法。下表标识出qa•c与qa•c++工具的使用确保合规性。
        下表中所列连续的项(如1,2,等等),表示所有的方法都适用。而项(如1a,1b, 1c等)则表示只适用于指定的方法。对于每一种方法,建议使用相应方法的程度取决于asil等级,其分类如下所示:
            • “++”表示该方法适用于所有asil等级,强烈建议
            • “+”表示该方法适用于确定的asil等级
            • “o”表示不论任何asil等级都不推荐使用该方法
        表1 - 建模和编码准则

方法

asil

qa·c

qa·c++

a

b

c

d

1a. 低复杂度的强制执行

++

++

++

++

1b. 使用语言子集

++

++

++

++

1c. 强类型的强制执行

++

++

++

++

1d. 使用防御性实现技术

o

++

++

1e. 使用现有的设计原则

++

1f. 使用明确的图形表示

++

++

++

-

-

1g. 使用风格指南

++

++

++

1h. 使用命名规范

++

++

++

++

        表3 - 软件体系结构设计的原则

方法

asil

qa·c

qa·c++

a

b

c

d

1a. 软件组件的分层结构

++

++

++

++

-

-

1b. 限制软件组件的大小

++

++

++

++

1c. 限制接口的大小

1d. 软件组件要求高内聚

++

++

++

1e. 限制软件组件低耦合

++

++

++

-

1f. 恰当任务调度

++

++

++

++

-

-

1g. 限制使用中断alph

++

-

-

        表8 - 软件单元设计与实现的设计原则

方法

asil

qa·c

qa·c++

a

b

c

d

1a. 子程序和函数只有一个入

口点和一个出口点

++

++

++

++

1b.不含有动态对象或变量,或

可在线测试

++

++

++

1c. 变量初始化

++

++

++

++

1d. 变量名不能重复使用

++

++

1e. 避免使用全局变量,或可

使用时注明

o

++

1f. 限制使用指针

++

++

++

1g. 没有隐式类型转换

++

++

++

1h. 无隐藏的数据流或控制流

++

++

++

++

1i. 没有无条件跳转

++

++

++

++

1j. 没有递归

++

++

        表9 - 验证的软件单元的设计和实现的方法

方法

asil

qa·c

qa·c++

a

b

c

d

1a. 走查

++

o

o

-

-

1b. 检查

++

++

++

-

-

1c. 半形式化验证

++

++

-

-

1d. 形式化验证

o

o

-

-

1e. 控制流分析

++

++

1f. 数据流分析

++

++

1g. 静态代码分析

++

++

++

1h. 语义代码分析

 
总结
        含有misra-c合规性模块的 qa•c以及含有misra-c++扩展合规性模块的 qa•c++被认定很好的实现符合iso 26262规则。可通过使用这些工具来减少开发众多符合软件级别标准要求所花费的时间和成本。qa•c和qa•c++在汽车研发领域悠久的历史和广泛的使用,表明它们是非常适合在此领域中使用。qa•c和qa•c++中的misra模块对任何一家需要实现产品符合iso 26262的公司来说,都是非常有效的工具。

 

凯发官方首页-凯发娱乐登录
用户登录
用户注册
*

请输入您常用的邮箱地址,错误的地址将影响功能使用

*
*
*
    性别    男   
*
网站地图