登录 | 注册 | English

资讯中心

yzc88网页版登录  >  资讯中心  >  产品动态

如何通过 QA?C和QA?C++达到ISO 26262规范要求

        QA.C及QA.C++作为App静态分析行业的领导者,在开发安全关键应用程序方面有着极为丰富的经验,众多开发团队认为QA.C及QA.C++是遵从ISO 26262标准的优秀工具。如何通过QA.C及QA.C++(配备MISRA模块)实现对ISO26262标准的遵从?本文将就这一话题进行讨论。
 
先容
        如今,电子设备被越来越多地应用于安全关键环境中,这些电子设备中所包含的App也日益复杂,通过穷举测试实现零故障已经不现实。所以在设计系统的时候,除了尽量避免故障,还要确保故障发生的可控性。
        引入标准的一个重要目的就是确保安全关键应用App的强壮性。如MISRA等编码标准通过规定使用编程语言的一个特定子集达到改善App质量的目的。ISO 26262则强制要求使用更好的开发流程,包括通过使用编码标准促进App质量的进一步的提高。
 
ISO 26262
        ISO26262源于IEC61508,是IEC61508在可编程电子安全相关系统应用中的具体规定。ISO 26262面向批量生产的乘用车中安装的电器/电子系统的特定需求,适用于安全相关系统的安全生命周期内的所有活动。
        ISO26262标准面向驾驶辅助系统、推进系统、车辆动态控制系统、主动安全系统和被动安全系统。这些系统复杂性不断增加,系统故障及随机硬件故障的风险也随之增加。而ISO26262标准通过提供适当的要求和流程,帮助开发人员降低这些风险。
        ISO 26262可满足用户对风险或安全不同层次的要求。ISO 26262引入了汽车安全完整性等级(ASIL A-D),对给定的系统提供必要的安全防护措施。针对不同的ASIL级别,所采取的方法也不同。其中ASIL D代表最严格的水平。
        针对App开发,ISO26262标准的第六章,对App开发配置、App体系结构设计和App单元的设计和实现提出了具体的要求。QAC及QAC++(均需配置MISRA模块)能够很好地帮助开发者实现这些要求。
 
PRQA, QA•C和QA•C++
        PRQA是编码规则检验的先行者,因其业界先进的App检验和标准实行技术,被公认为编码标准专家。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++)凭借在开发安全相关App方面可达到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部分针对App级上的产品开发,用列表形式体现符合标准须具备的方法。下表标识出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 - App体系结构设计的原则

方法

ASIL

QA·C

QA·C++

A

B

C

D

1a. App组件的分层结构

++

++

++

++

-

-

1b. 限制App组件的大小

++

++

++

++

1c. 限制接口的大小

1d. App组件要求高内聚

++

++

++

1e. 限制App组件低耦合

++

++

++

-

1f. 恰当任务调度

++

++

++

++

-

-

1g. 限制使用中断Alph

++

-

-

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

方法

ASIL

QA·C

QA·C++

A

B

C

D

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

口点和一个出口点

++

++

++

++

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

可在线测试

++

++

++

1c. 变量初始化

++

++

++

++

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

++

++

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

使用时注明

O

++

1f. 限制使用指针

++

++

++

1g. 没有隐式类型转换

++

++

++

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

++

++

++

++

1i. 没有无条件跳转

++

++

++

++

1j. 没有递归

++

++

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

方法

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规则。可通过使用这些工具来减少开发众多符合App级别标准要求所花费的时间和成本。QA•C和QA•C++在汽车研发领域悠久的历史和广泛的使用,表明它们是非常适合在此领域中使用。QA•C和QA•C++中的MISRA模块对任何一家需要实现产品符合ISO 26262的企业来说,都是非常有效的工具。

 

关于恒润
企业概况
企业理念
企业资质
资讯中心
恒润在全球
诚聘英才
校园招聘
实习生招聘
社会招聘
走进恒润
常见问题
市场活动
在线研讨会
线下活动
微信课堂
用户社区
资料下载
恒润月刊
用户留言
个人中心
相关链接
达索企业
IBM-中国
联系大家
电话:010-64840808
邮箱:market_dept@hirain.com
版权所有 ? yzc88网页版登录 京ICP备18000642号-1 京公网安备11010802017344号 网站地图 | 招聘信息 | 法律声明 | 隐私保护
XML 地图 | Sitemap 地图