汽车行业为何采用ASPICEV型开发,而不是敏捷开发?

原创 美男子玩编程 2024-11-19 08:01

点击上方蓝色字体,关注我们

关于这个问题主要听到了两种声音:


一种视敏捷开发为豺狼虎豹,认为敏捷开发就是“MMA”(无规则格斗),抛开一切规则撸起袖子使劲干,认为使用敏捷开发的软件都会存在严重的质量问题,使用敏捷开发的公司都是草菅人命。


另一种声音认为单纯的敏捷和现有的ASPICE都不完全适用域控开发,应采用V+敏捷的进行结合,创新地根据公司实际情况适配,既不能完全按敏捷一套快速迭代,也不能仅仅为了通过BP而找补文档。


对于第一种声音,我个人只能说尊重百花齐放的意见,欢迎继续评论。可能确实有MMA那样的“敏捷开发”,但其实这种不叫敏捷,这种叫没有开发流程。


还有动不动就说要ASPICE的,您真的过过审吗?您知道里面的工作量有多少吗?V可以,ASPICE?HELL NO!可能很多传统汽车电子行业出身的工程师没有真正使用过敏捷,这不是问题,怎么说呢,空杯心态很重要吧。


对于第二种声音,本人举双手双脚赞成。可以把一个scrum看成一次小V,也可以通过FFI的方式把功能和监控分开成两个小项目实施,以达到功能安全的要求,还有建议把what to do部分V化,How to do部分scrum化,这具体展开就涉及到各家拆招的能力了,没有统一答案,主要看各家practice上的经验了。


开写前先唠两句,只要与开发工程师多聊两句,你就会很容易地发现,开发工程师几乎是一边倒的支持敏捷开发,笔者曾完整地参与过一次ASPICE认证项目,也在敏捷模式下进行过较长时间开发。


从开发工程师的角度出发,使用敏捷进行开发的体验吊打ASPICE(或者V模型)九条街,但我们今天讨论的话题是哪种模式更适合“更快更高质量”地输出产品,而不是哪个模式对工程师更友好。


那么我们就来探讨一下这两种开发模式在域控时代的适应性。


当汽车电子电器架构还处于分布式的年代,ASPICE(或V模型)可以说是唯一的答案,就没听说过哪家Tier 1或者OEM是使用敏捷去开发一个发动机控制器的。


到了域控时代,新的玩家入场,开发逻辑出现不同声音,特斯拉,蔚小理等硅谷/互联网背景出身的新玩家都使用敏捷进行开发,做出来的产品用户体验确实让消费者有种“诺基亚转安卓”的感觉,难道说敏捷就有如此大的魔力?可以给软件赋予生命力?ASPICE和敏捷的差异和思路究竟在哪?


1


ASPICE:堂正之师

1.1. 简述

ASPICE的核心思想就是DRIFT(Do things right in first time)。


ASPICE认为:

  • 软件缺陷修复的成本是随着软件进度的开展,成倍数级提升的,BUG越早发现,成本越低;


  • 在关键控制器上(比如动力总成的ECU),某些Bug可能是致命的(字面意义上的)且难以被发现的,因此,对代码的态度必须慎之又慎;

  • 传统的合作关系上,通常是Tier1供控制器(Turn-key or Customer-sharing),OEM集成到车上,对于软件这种无形的资产,又是闭源交付,OEM管控是很难的,唯一的监管方式就是交付物,所以ASPICE既是开发过程,也是质量证据


因此,ASPICE讲究走一条最康庄平坦的大道。


一份不偏离相关方(stakeholder)意图的工程需求---->按照意图,考虑所有corner case,基于选型芯片资源,设计考虑完备的软件架构---->将软件架构进一步细化到模块与函数级别的详细设计---->与详细设计思路一模一样的编码---->验证是否与详细设计一致的单元测试---->验证是否与软件架构设计一致的集成测试---->验证是否与软件需求一致的合格性测试。


说白了,就是:

  • V左半边:保证每一行代码都能知道是为哪一条需求服务的。

  • V右半边:保证每一行代码都在正确的实现每一条需求。


1.2. ASPICE的缺点

ASPICE统治了汽车软件这么多年,自然有他的必要性与优势,但ASPICE的缺点也非常致命。


1. 难以拥抱变化

从上文可以看出,一套V模型撸下来,都是一环套一环的,下一步的输出完全依赖上一步的输入,如果需求发生了变更,而且需求还是与原需求互斥的,那整个项目的改动量将是灾难性的。


所以有些OEM的DRE可能会很疑惑,为什么看起来一个小小的CR(change request)发下去,会被Tier1告知一大笔的开发费用,甚至是拒绝?流程可能就是其中一个原因。


只要代码需要变更,好嘛,相应的设计文档作废,重新设计,测试重新做……想想都头疼。而国内的项目氛围又是“最爱”拥抱变化的,hmmm……


2. 对人力消耗巨大

我贴一下SWE.3(软件详细设计与单元开发)的BP出来给大家感受一下。



随便说几个工作量大到离谱的:

  • BP3:很多时候模块间交互是很难穷尽描述的,特别是大型软件,应用层,或者高聚低耦做得没那么好的模块,在不同场景,不同条件下,都可能走不同逻辑,整个交互路径都穷举一遍是很难的,画出来的seq图也很难阅读

  • BP5:每一步的流程都要求这个,做过的dddd(懂的都懂),有DOORS相对好点,用excel去管理这玩意就是个灾难,还感觉没什么卵用


其实每个BP要求的工作量都很大,我做过大概的统计,执行ASPICE的人力需求是不执行的3倍,除此以外,就像我之前说的,这个流程既是开发流程,也是质量证据,属于监管与被监管的关系,繁重的文档任务深深的打击了工程师的积极性


2


敏捷开发:短平快,拥抱变化

2.1. 简述


敏捷开发的核心逻辑是解构,把软件需求分解成Epic or story,通过一轮开发迭代(sprint)实现相应的功能。


一轮sprint包含:需求确认->方案制定->coding->台架验证->实车验证->rolling candidate版本验证->代码合入。


敏捷的优点在于:

  • 拥抱不确定性,发生需求变更,那就直接来一轮sprint,如果还不够,那就来两轮;

  • 出活快,一个sprint的迭代以周为单位;

  • 充分调动工程师积极性,(相对)轻文档,重代码;


2.2. 敏捷的缺点

说完敏捷这枚硬币的正面,下面说他的反面。


相比ASPICE或者V模型,敏捷少做的事情:

  1. 缺少统筹全局的进行软件架构设计,导致模块很难做到高类聚低耦合,比如Sprint A实现的一个功能,其底层模块其实可以被Sprint B的某个功能部分复用,但由于Sprint A没有考虑Sprint B的开发需求,所以该底层模块并不能被完全复用,Sprint B可能就要重新开发一个底层模块去覆盖他自己的需求。多轮sprint下来,可能会有重复造相似轮子的情况出现。这样会导致软件比较臃肿,代码量大,执行效率低,且代码质量不高;

  2. 缺少集成测试,导致新加的功能可能对已实现的功能有潜在的影响而不能被发现;

  3. 由于短平快的特性,很多时候单元测试也不能充分进行,比如动态单元测试;

  4. 与FUSA的流程完全不兼容。ISO26262也好,ISO61508也好,ISO34590也好,都是植根于V模型,使用敏捷开发的软件,很难满足功能安全的开发要求,也无法做功能安全分析,无法做FFI。


3


谁是自动驾驶时代答案?

两种开发流程各擅胜场,也有其出现的背景,在传统汽车时代,各个控制器没有花哨的功能,但要求软件稳定可靠,这种情况下,使用ASPICE或者V模型进行开发无疑是非常正确的。


域控时代的来临,最主要的变化有三点:

  • 功能众多:带来的变化是软件复杂度指数式上涨,相关方众多;

  • 产业链合作关系改变:从一功能一盒子,由Tier1软硬件一起交付,OEM负责集成,到所有功能集中在域控,Tier1只提供底软和硬件,应用软件由Tier1,Tier2,OEM联合开发;



我的观点是:ASPICE不适合用于开发智驾域控软件,敏捷相对更合适,但必须根据汽车软件的特点,进行适配(一家之言,如果有使用ASPICE完整开发过智驾域控到SOP的经验,非常非常欢迎留言探讨)。


3.1. 为什么ASPICE不合适用于开发域控?

第一,ASPICE下对发生变更的代价是巨大的,因此需要一次把所有功能都定义,设计完美。


然而在域控这种软件复杂度下,我不认为有哪个人或者团队可以在项目开发初期,就能一次把所有的需求都定到完美。


不完美,后期增改功能,好嘛,又一轮完整的V迭代,所有文档改掉,软件配置管理做版本管理,恐怕需求没开发完,工程师跑一大半了。



第二,退一万步讲,就算有优秀的产品团队可以一次把所有需求缕清,肯定也需要漫长的时间,试想下,两家公司同时开始项目,使用敏捷的小步快跑,不断试错,都已经有产品在投放市场了,使用ASPICE的可能还在需求制定阶段……


3.2. 敏捷开发需要做什么适配?

敏捷开发需要克服的困难主要在于提升软件质量和满足功能安全要求。


并不是用敏捷开发出来的软件架构就会松散,臃肿,而是敏捷的环境让工程师更容易输出这样的结果。


所以我认为以下措施的执行能有效改善软件质量:

    • 适当延长sprint周期;

    • 严格的编码规范与培训;

    • 使用TDD(测试驱动开发)思路

    • 强大的devops能力作为技术保证;

    • 引入自动化单元检查工具;


满足功能安全要求,话只有一句,其实是个悖论,因为软件功能安全=V模型开发。


可能的一个解决方案,是利用ISO26262中FFI的思路,通过前期技术规划,将软件架构分解成功能。


QM(D)和功能安全软件D(D),功能分区使用敏捷开发小步快走,功能安全分区还是按V模型进行开发(思路是这么个思路,但做软件安全分析和安全架构设计需要非常小心,而且仅适用于safety goal为fail safe的域控,如果L4以上需要做fail operational的,又不能这么玩了)。



作者:FragmentedSword

链接:https://www.zhihu.com/question/393230142/answer/2613414502

来源:知乎

点击阅读原文,更精彩~

美男子玩编程 多领域、有深度的开发者交流平台
评论
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 186浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 143浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 150浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 294浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 189浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 616浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 418浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 775浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 140浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 113浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 58浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 282浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 117浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 209浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 233浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦