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 等汽车软件开发标准,汽车制造商将自己置于最佳位置,以避免与错误软件相关的风险。

审核编辑:郭婷

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

    关注

    3043

    文章

    8558

    浏览量

    172224
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76706
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知晓常见的铜缆安装错误避免

    铜缆(如网线、电话线等)是网络和数据传输的基础设施,但在安装过程中,由于操作不当或忽视细节,常出现各种错误,导致网络性能下降甚至故障。以下是常见的铜缆安装错误及预防措施,帮助您避免踩坑: 一、线缆
    的头像 发表于 09-16 10:42 422次阅读

    干货分享 | 如何利用MBSE赋能汽车中控锁安全开发

    随着汽车智能化、网联化加速演进,电子控制系统复杂度呈指数级增长,开发周期与质量要求日益严苛。然而,传统的“文档驱动”开发模式在应对复杂系统时,其效率与协同瓶颈日益凸显:信息孤岛,追溯低效:需求
    的头像 发表于 08-13 17:20 5478次阅读
    干货分享 | 如何<b class='flag-5'>利用</b>MBSE赋能<b class='flag-5'>汽车</b>中控锁安全<b class='flag-5'>开发</b>

    接光纤接头时需要避免什么操作

    接光纤接头时,操作不当会导致信号损耗增加、连接不稳定甚至光纤损坏,因此需严格避免以下关键错误操作,并遵循规范流程: 一、清洁与防护类错误 未彻底清洁光纤端面 风险:灰尘、油污或指纹会残
    的头像 发表于 07-15 10:24 729次阅读

    电商API常见错误排查指南:避免集成陷阱

      在电商平台开发中,API集成是连接系统、实现数据交换的核心环节。然而,许多开发者在集成过程中常遇到错误,导致项目延迟、数据丢失或用户体验下降。本文将逐步介绍常见错误类型、排查方法以
    的头像 发表于 07-11 14:21 1792次阅读
    电商API常见<b class='flag-5'>错误</b>排查指南:<b class='flag-5'>避免</b>集成陷阱

    ‌迅通PTR7002 Wi-Fi 6模块开发:如何规避通信异常?

    ,建议电源线路预留20%余量,避免电压跌落导致射频性能下降。 ‌天线设计‌ 内置PCB天线适用中短距传输(≤30m),远距离场景需外接ipex天线,并避免与高频电路(如开关电源)平行布线以降低干扰
    发表于 06-06 10:35

    如何避免存储示波器再次崩溃?

    避免存储示波器再次崩溃,需从系统维护、硬件管理、操作规范和应急预案四个维度构建完整的防护体系。以下是具体措施及实施要点:一、系统与软件层面1. 固件与软件管理 定期更新固件 操作:每6个月检查
    发表于 05-23 14:47

    避免生产风险:文件审核在PCBA流程中的作用

    在PCBA制造流程中,从设计文件上传开始,就已经开启了质量控制与风险把控的第一步。对于一站式PCBA服务平台来说,文件审核不仅关乎后续生产的准确性,更直接影响到项目的整体进度和最终交付质量。 很多开发
    的头像 发表于 04-30 17:55 484次阅读

    芯片软错误概率探究:基于汽车芯片安全设计视角

    摘要: 本文深入剖析了芯片软错误概率问题,结合 AEC-Q100 与 IEC61508 标准,以 130 纳米工艺 1Mbit RAM 芯片为例阐述其软错误概率,探讨汽车芯片安全等级划
    的头像 发表于 04-30 16:35 677次阅读
    芯片软<b class='flag-5'>错误</b>概率探究:基于<b class='flag-5'>汽车</b>芯片安全设计视角

    在工业自动化中使用固态继电器时应避免的5个错误

    固态继电器(SSR)已成为工业自动化的无名英雄。它们安静、可靠、速度快——这是继电器应具备的所有特点。但就像高科技驾驶舱中的新手飞行员一样,即使是经验丰富的工程师在使用SSR时也会犯常见错误。本文让我们来看看应如何避免在工业自动化中使用固态继电器时应
    的头像 发表于 04-20 11:42 509次阅读

    软件定义汽车(SDV)开发有哪些挑战?SDV开发策略分享:福特汽车采用Jama Connect提升开发效率与质量

    汽车召回事件屡屡发生,关于软件定义汽车开发更是挑战重重,有何应对策略?福特汽车如何借助Jama Connect应对该挑战,优化SDV
    的头像 发表于 02-12 15:36 1229次阅读
    <b class='flag-5'>软件</b>定义<b class='flag-5'>汽车</b>(SDV)<b class='flag-5'>开发</b>有哪些挑战?SDV<b class='flag-5'>开发</b>策略分享:福特<b class='flag-5'>汽车</b>采用Jama Connect提升<b class='flag-5'>开发</b>效率与质量

    软件定义汽车(SDV)开发有哪些挑战?SDV开发策略分享:福特汽车采用Jama Connect提升开发效率与质量

    汽车召回事件屡屡发生,关于软件定义汽车开发更是挑战重重,有何应对策略?福特汽车如何借助Jama Connect应对该挑战,优化SDV
    的头像 发表于 01-24 13:40 607次阅读

    嵌入式软件开发符合ISO 26262 功能安全标准

    ISO 26262 功能安全标准的要求可能非常具有挑战性,尤其是当您的汽车系统中的某些部件相比其他部件具有更高的安全风险时。开发者如何在整个软件开发
    发表于 01-15 12:04 3次下载

    电源 PCB 布局中的常见错误避免方式

    的异常现象、根本原因以及优化布局的方法和相关技巧。 1. 常见错误一:功率器件散热不良 异常现象 功率器件温度过高,可能导致器件性能下降,甚至损坏。例如,MOSFET 的导通电阻会随温度升高而增大,进一步增加功耗,形成恶性循环。长期高温还可能影响器件的寿命,
    的头像 发表于 01-08 15:28 1781次阅读

    【科普系列】LIN协议错误类型介绍

    了解 LIN总线的错误类型对于开发、测试均具有极大的好处。通过对错误类型的全面了解,开发人员可以提前预测和避免潜在的问题,增强系统的稳定性、
    的头像 发表于 01-02 17:27 4826次阅读
    【科普系列】LIN协议<b class='flag-5'>错误</b>类型介绍

    汽车软件DevOps解决方案

    经纬恒润汽车软件DevOps解决方案是专为现代汽车行业设计的一套集成化需求、开发、测试、部署、OTA与监控,旨在加速软件开发流程,提高
    的头像 发表于 12-16 10:33 2180次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>软件</b>DevOps解决方案