利用汽车开发标准降低失败成本和风险

描述

ISO 26262、MISRA 和其他标准旨在通过为在软件开发过程中实施工程概念提供基础来规范汽车应用程序的软件开发。一些组织将遵守 ISO 26262 和其他标准视为增加开销的负担,但事实是,与软件缺陷相关的失败成本远远高于确保质量的成本。

什么是 ISO 26262,我为什么要关心?

ISO 26262 是一项功能安全标准,旨在应用于汽车电气和/或电子 (E/E) 系统的软件开发。它旨在通过提供可行的要求和流程,将与安全功能软件相关的风险降低到可容忍的水平,例如:

汽车应用的功能安全管理

汽车应用的概念阶段

用于汽车应用的系统级产品开发

软件架构设计

汽车应用硬件级别的产品开发

软件单元测试

汽车应用软件级别的产品开发

生产、运营、服务和退役

支持过程:分布式开发中的接口、安全管理要求、变更和配置管理、验证、文档、软件工具的使用、软件组件的认证、硬件组件的认证和使用证明的论证

面向汽车安全完整性等级 (ASIL) 和面向安全的分析

需要明确的是,ISO 26262 不是强制性的(尽管考虑到最近所有围绕汽车安全缺陷的头条新闻,它可能成为强制性的)。法律只是规定您应该根据当前的最佳实践来开发软件——在汽车领域是 ISO 26262。ISO 26262 带来的是基于一些软件开发最佳实践多年研究的操作指南。该领域最有经验的人。

ISO 26262 的美妙之处在于,尽管它旨在用于安全关键功能,但原则上它可以应用于您关心的任何软件组件。如果您认为您的集成信息娱乐系统是市场上的业务差异化因素,请根据 ISO 26262 进行开发,并确保它是最先进的系统,值得升级到高级模型。

MISRA 呢?

ISO 26262 类似于说,如果你想活得更久,就应该锻炼和饮食。但是,如果您的运动知识仅限于举起重物,或者您对什么是好食物的了解是早上的生鸡蛋,那该怎么办?

这就是 MISRA 标准的用武之地。适用于 C 和 C++ 的 MISRA 标准系列,包括 1998 年、2004 年和最近的 2012 年版本,告诉软件工程师在编写代码时什么是好的做法,什么是不好的做法。回到我们的比喻,MISRA 告诉您哪些食物对您有益,以及什么是安全、可靠的锻炼。

如何实施 ISO 26262 和 MISRA?

实现对 ISO 26262 和 MISRA 的合规性首先要以政策的形式承诺最佳实践。需要明确的是,政策不是建议或推荐行为的指导方针。策略是一种自动可执行的声明,以通俗易懂的语言规定软件应该如何开发——以及为什么应该以这种方式开发。该政策必须明确声明:

必须根据 ISO 26262 定义的软件开发生命周期 (SDLC) 开发软件

如果下游分包商不能提供足够的可追溯性证明符合标准,则不会接受代码

您的开发策略应该有类似的语言来指定符合 MISRA 编码指南。这为制造商提供了另一种形式的验收测试,他们可以执行以验证从下游供应商收到的软件。

图 1: ISO 26262 定义的软件开发生命周期 (SDLC)。

汽车电子

从功能上讲,这意味着应用开发测试活动,例如静态代码分析、单元测试、同行评审和运行时错误检测,以确保根据这些策略开发代码。市场上有几种工具以静态分析规则的形式实施 MISRA 指南(完全披露,我们为销售这些工具的公司工作)。每个工具都有自己的执行编码标准的方法,因此您需要研究适合您的环境、预算等的最佳工具。

静态分析

这种做法已经存在了很长时间,并且仍然是一种廉价(就专用开发资源而言)的方式来挑选代码中容易实现的成果。尽管由于维护、参数化、极端情况和需要人类智能的活动的其他方面,有许多自动测试生成解决方案,单元测试在资源方面要昂贵得多。也就是说,失败的成本仍然大大超过了测试的成本。

同行代码审查

此过程要求软件工程师提交他们的代码以作为开发过程的常规部分进行审查,并且被认为是确保软件质量的最有效活动。与单元测试一样,此活动需要您花费资源,但如果它可以防止需要召回的缺陷,则成本可以忽略不计。

运行时错误检测 (RED)

RED 监控代码执行,以便梳理出仅在运行时出现的构造,并且应该作为验证和验证过程来实现。RED 可帮助您找到导致竞争条件、异常、资源和内存泄漏、安全漏洞和其他难以发现的缺陷的代码。简而言之,它是软件的仪表,就像仪表和记录仪是硬件的仪表一样。

覆盖分析

如果没有衡量测试覆盖了多少代码,您将无法知道您是否进行了足够的测试。覆盖分析本身并没有什么作用,但是当与单元测试等活动结合使用时,覆盖分析可以提供有关您的软件的宝贵信息。

结论

随着我们曾经简单的产品变得“更智能”,软件无处不在,并将继续发挥更大的作用。在汽车开发中尤其如此,这在确保嵌入式应用的安全性和可靠性方面提出了独特的挑战。汽车将安全关键软件与业务差异化软件相结合,所有这些软件都是以高度分布式的方式开发的。

底线是汽车应用的端到端测试过于昂贵和复杂。另一方面,软件故障的成本应该成为寻找降低风险方法的动力。通过应用 ISO 26262 和 MISRA 等汽车软件开发标准,汽车制造商将自己置于最佳位置,以避免与错误软件相关的风险。

作者:Arthur Hicken,Adam Trujillo

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分