详解自动驾驶安全软件开发流程

本文详述了自动驾驶安全软件的开发流程,结合ASPICE和敏捷开发,强调双向追溯性、敏捷集成与SOTIF安全需求。流程涵盖需求分析、架构设计、敏捷设计、详细设计、单元测试和集成测试,旨在确保软件质量并降低安全风险。同时,通过实例展示了如何识别和处理潜在危害,以提高自动驾驶系统的安全性。
摘要由CSDN通过智能技术生成

1 引言

自动驾驶汽车开发越来越重视性能、质量和性价比,自动驾驶口碑成为新技术应用取得市场成功的关键,而口碑的建立依赖于相关软件开发流程、周期、时间和质量。一家汽车企业只有拥有或者其软件开发供应商具有成熟的软件开发团队、软件开发流程、可复用的软件流程资源库,才能在日益激烈的自动驾驶产业竞争中获得一席之地。

目前,国际上应用于汽车行业的软件开发成熟度评估标准主要有能力成熟度模型集成(Capability Ma⁃turity Model Integration,CMMI)和汽车软件过程改进及能力评定模型框架(Automotive Software Process Im⁃provement and Capacity Determination,ASPICE)。CMMI拥有全球公认的软件、产品和系统开发优良实践过程改进模型,能够帮助组织提升绩效,具有普适性,而ASPICE标准基于软件过程评估国际标准ISO15504,主要针对汽车行业软件开发过程框架,是现今汽车企业主要依据的过程评估标准。与典型传统软件开发过程,例如线性瀑布模型相比,以V开发模式为导向的ASPICE软件过程域,从客户需求、系统架构、软件需求、软件架构、软件详细设计、单元构建到测试验证之间都存在一致性与双向追溯性关系,从最初的系统需求分析开始,测试人员就参与进行对应验证标准的设计,将设计和测试在项目开始初期就关联起来,在整个软件开发生命周期都有着重要的指导意义。

传统软件开发重视业务过程和文档,若软件开发人员完全按照设计文档进行程序开发,经过很长的开发周期后提交软件程序,会导致早期错误可能要等到开发过程后期才能发现,风险与修正成本不可控制。敏捷软件开发模式强调沟通,通过各子项目的集成和运行,构建成上层软件项目,软件开发成员拥有充分的自主权,可自行寻找最佳工作方式完成工作,不必拘泥于设计文档。开发过程循环迭代,开发人员针对前期需求,尽可能早地提交一个完整可独立运行的源程序,供测试验证,发现问题后提出需求变更请求,开发人员再次按照新需求开发并提交源程序,如此循环直至软件从整体构架至各个细节完全符合需求,从而实现完美的人机结合。

敏捷方法主包括:Scrum方法,自适应软件开发(Adaptive Software Development,ASD),水晶方法,以及最重要的极限编程(eXtreme Programming,XP)。Scrum偏重于过程,XP则偏重于实践,实际开发中,两者经常结合一起应用。

由于汽车自动驾驶软件的复杂性与专业性,一味遵循敏捷开发,专注市场变化和客户反馈,会对整个软件的架构、开发、测试造成很大的波动。控制不好,会使得项目失控,造成严重的质量问题,比如Bug多,架构不合理,易用性差,性能不佳等。除此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值