0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用汽车开发标准避免与错误软件相关风险

星星科技指导员 来源:嵌入式计算设计 作者:Arthur Hicken,Adam 2022-08-12 11:18 次阅读

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)。

(点击图片放大)

pYYBAGL1xxGAT-sLAAGGYsMcDVA533.png

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

静态分析

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

同行代码审查

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

运行时错误检测 (RED)

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

覆盖分析

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

结论

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

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

审核编辑:郭婷

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

    关注

    2999

    文章

    7446

    浏览量

    161563
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72899
收藏 人收藏

    评论

    相关推荐

    汽车软件开发CAEdge框架关键技术

    软件定义汽车中,汽车功能主要通过软件实现,不再仅仅依赖硬件。这种将软件与硬件解耦的方式使得新功能和软件
    发表于 01-24 14:16 166次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>软件开发</b>CAEdge框架关键技术

    软件测试工作中常见的风险有哪些

    立项时,勤思考,有哪些需求在会上没理解到位; 2)测试过程中,对有疑惑的点、不确定的需求点问产品或开发,别等到项目快上线自己还没弄明白; 3)测试完成后,还有需求改动,召集相关人员沟通风险,尽量减少这样的事情发生。 ** 2、测
    的头像 发表于 12-27 10:35 394次阅读

    汽车网络安全:防止汽车软件中的漏洞

    汽车网络安全在汽车开发中至关重要,尤其是在 汽车软件 日益互联的情况下。在这篇博客中,我们将分享如何防止
    的头像 发表于 12-21 16:12 771次阅读
    <b class='flag-5'>汽车</b>网络安全:防止<b class='flag-5'>汽车</b><b class='flag-5'>软件</b>中的漏洞

    如何规避软件测试项目的风险

    立项时,勤思考,有哪些需求在会上没理解到位; 2)测试过程中,对有疑惑的点、不确定的需求点问产品或开发,别等到项目快上线自己还没弄明白; 3)测试完成后,还有需求改动,召集相关人员沟通风险,尽量减少这样的事情发生。 ** 2、测
    的头像 发表于 12-20 13:06 217次阅读

    PCB翘曲度标准是多少?如何避免

    PCB翘曲度标准是多少?如何避免
    的头像 发表于 11-23 09:04 596次阅读
    PCB翘曲度<b class='flag-5'>标准</b>是多少?如何<b class='flag-5'>避免</b>?

    软件定义汽车vECU虚拟控制器集成开发与测试

    软件定义汽车”即软件将深度参与到汽车的定义、开发、验证、销售、服务等过程中,并不断改变和优化各个过程,是
    发表于 11-09 11:49 406次阅读
    <b class='flag-5'>软件</b>定义<b class='flag-5'>汽车</b>vECU虚拟控制器集成<b class='flag-5'>开发</b>与测试

    如何将ASCET-Developer开发流程与ARM Development Studio集成

    市场开发嵌入式软件。 集成的目的是在开发和调试控制应用程序时提供一个简单的迭代流程。 探索了优化技术以优化生成的代码,以利用ARM体系结构的最新功能。 本指南面向对基于模型的
    发表于 08-08 07:07

    嵌入式C开发中段错误的3种调试方法

    相信大家在嵌入式C开发中,或多或少都会遇到段错误(segmentation fault )。昨天分享了一个总线错误的例子:嵌入式软件中,关于总线错误
    发表于 07-11 09:42 137次阅读
    嵌入式C<b class='flag-5'>开发</b>中段<b class='flag-5'>错误</b>的3种调试方法

    鉴源论坛丨汽车电子ISO 26262:2018标准概述(一)

    系统失效和随机硬件失效的风险也日益增加。ISO 26262标准使得人们对安全相关功能有一个更好的理解,并尽可能明确地对它们进行解释,同时为避免这些
    的头像 发表于 06-20 16:59 506次阅读
    鉴源论坛丨<b class='flag-5'>汽车</b>电子ISO 26262:2018<b class='flag-5'>标准</b>概述(一)

    设计PCB时需要避免的7个错误分享

    印刷电路板构成了电子性质设备内部的核心。所以, 设计PCB需要密切关注和万无一失的方法。在尝试PCB原型制作时, 您会发现我们经常会遇到许多错误,甚至有些是重复的。这些错误破坏了电路板设计的整个目的
    发表于 06-18 15:34 603次阅读

    四维图新旗下杰发科技正式加入中国汽车基础软件生态委员会

    AUTOSEMO高级会员。杰发科技将积极参与智能汽车基础软件架构、应用接口标准化、数据和信息安全相关标准的研究工作与技术交流,与行业伙伴共同
    的头像 发表于 05-26 09:18 572次阅读

    禾赛获激光雷达领域首个汽车网络安全管理标准ISO/SAE 21434认证

    ISO 与 SAE 联合制定的汽车网络安全管理标准 ISO/SAE 21434 覆盖了概念、开发、生产、运营、报废等全产品生命周期的各个阶段,帮助汽车主机厂和
    的头像 发表于 05-24 15:15 683次阅读
    禾赛获激光雷达领域首个<b class='flag-5'>汽车</b>网络安全管理<b class='flag-5'>标准</b>ISO/SAE 21434认证

    rust语言基础学习: rust中的错误处理

    错误软件中不可避免的,所以 Rust 有一些处理出错情况的特性。在许多情况下,Rust 要求你承认错误的可能性,并在你的代码编译前采取一些行动。
    的头像 发表于 05-22 16:28 1383次阅读

    电动汽车初创公司如何降低软件开发成本和风险

    现在是电动汽车初创公司明智地减少浪费的时候了。随着通货膨胀造成供应链波动,市场监管壁垒越来越高,电动汽车软件开发团队现在必须优化支出并培养其工具和流程的弹性。 Perforce 静态分析
    的头像 发表于 05-15 10:56 263次阅读
    电动<b class='flag-5'>汽车</b>初创公司如何降低<b class='flag-5'>软件开发</b>成本和<b class='flag-5'>风险</b>

    汽车软件供应链中的开源风险

    汽车中使用的大多数软件组件都不是由汽车制造商自己甚至顶级供应商直接开发的。软件来自广泛的供应商,包括嵌入式 GUI 框架、中间件、操作系统、
    的头像 发表于 05-05 09:35 673次阅读