想做好汽车软件开发,先练好这个内功

发布时间:2024-08-01  

金庸笔下的武侠世界里,掌握一门内功心法是独步武林的基础。在汽车电子领域,也有着这样的内功心法——V模型的开发流程。 

开发模型有很多,包括增量式、原型式、螺旋式、喷泉式、W模型等,但在实际开发中,V模型被应用最多。所以,掌握好这门心法,才能更好地做好开发工作。

 汽车开发的基本模式 

你我都知道,在汽车开发过程中,汽车概念首先被分解成系统和组件,然后重新整合成整车,那么怎么拆就是一个问题。

当前,新能源整车及三电系统的设计开发主要采纳ASPICE V模型开发模式。

ASPICE全称为“Automotive Software Process Improvement and Capacity Determination”,即汽车软件过程改进及能力测定模型,是汽车软件的开发过程标准。

而V模型是一个软件开发过程模型,它强调测试和软件开发各阶段之间的关系。在系统开发活动中,最为常见的开发模型是V模型。V模型因其开发过程展现的形式与英文字母“V”非常相似而得名。V模型具有与瀑布模型相同的顺序设计过程,每个阶段都必须在下一个阶段开始前完成,同时相应的测试计划应与对应的开发阶段并行进行。

图片

软件开发V模型,图源|《智能汽车:电子电气架构详解》

V模型从瀑布模型而来,1970年温斯顿·罗伊斯(Winston Royce)提出瀑布模型,将软件生命周期分为若干阶段和固定的顺序,形如瀑布流水,最终得到软件产品。

瀑布模型将软件生命周期划分为:制定计划、需求分析、软件设计、程序编写、软件测试、.运行维护。

瀑布模型的优点是为项目提供了按阶段划分的检查瀑布模型查点;当前一阶段完成后,只需要去关注后续阶段;可在迭代模型中应用瀑布模型。不过,瀑布模型各个阶段的划分完全固定,阶段间产生大量文档,极大增加工作量。此外,由于开发模型为线性的模型,用户只有等到过程末期才能见到开发成果,从而增加开发风险。更重要的是,早期错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。

图片

V模型则是Kevin Forsberg & Harold Mooz在1978年提出,V模型强调测试在系统工程各个阶段中的作用,并将系统分解和系统集成的过程通过测试彼此关联。

图片

 实际生产中的V模型 

不过,光是这么个模型,其实还是很理想化的模型,在实际生产中,V模型要复杂的多。

在实际的软件开发过程中,鉴于测试验证的反复性、功能需求的迭代更新等多重因素,往往会涉及多个版本的发布。因此,真正的开发流程是由一系列相互关联的“小V”模型串联而成,这些“小V”模型共同构建了一个更为宏观、综合的“大V”模型,以适应软件开发过程中的多样性和复杂性。


图片

复杂软件开发模型示意,图源|《智能汽车:电子电气架构详解》

在实际运作中,整车的开发任务又会被切割到各个域,然后又被逐渐分解到系统、部件,以及部件内的组件(软件、硬件、机械等),所以整个V模型会更为复杂。

如下图所示,每个车型的研发周期可以看作一个独立的“大V”模型,“大V”模型中的子研发阶段(系统集成节点之间)可以看作“小V”模型。每个系统研发周期可以视作独立的“大V”模型,它又由多个“小V”模型串联而成。

图片

整车开发中的V模型分解示意图,图源|《智能汽车:电子电气架构详解》

V模型开发结构明确划分了设计开发与分析活动(位于模型左侧)以及设计结果的测试与验证活动(位于模型右侧),两侧互为补充,共同构建了一个完整且严谨的开发流程。

从V模型结构中,我们可以看出,测试验证环节与开发环节处于同等重要的地位,是系统开发中不可或缺的关键环节。

尽管当前许多车企从互联网领域借鉴并引入了“敏捷开发”的理念,但汽车类的设计开发流程依然以V模型作为其主干结构。

图片

ASPICE设计开发流程,图源| RIO电驱动

 V模型上的工具 

那么在每个阶段,又有什么工具,来支持各个阶段的开发工作。以下是对这些阶段的工作目标,常用工具链及其相应的供应商:

1. 需求分析阶段

需求管理工具:DOORS(IBM),Jama Software,Polarion(Siemens)

需求建模工具:Enterprise Architect(Sparx Systems),MagicDraw(No Magic)

2. 系统设计阶段

系统建模工具:Enterprise Architect(Sparx Systems),Rhapsody(IBM)

仿真和验证工具:Simulink(MathWorks),Modelica(OpenModelica)

3. 详细设计阶段

软件设计工具:UML建模工具(如Enterprise Architect,MagicDraw)

硬件设计工具:Altium Designer,Cadence,Mentor Graphics(Siemens)

4. 实现阶段

集成开发环境(IDE):Eclipse,Keil(Arm),IAR Embedded Workbench

版本控制工具:Git,SVN(Subversion),Jenkins

5. 单元测试阶段

测试框架:Google Test,CppUnit,JUnit

测试覆盖率工具:gcov(GCC),Bullseye Coverage

6. 集成测试阶段

集成测试工具:Vector CANoe,National Instruments(NI TestStand),VT-System(Vector)

仿真工具:Simulink,MATLAB

7. 系统测试阶段

测试管理工具:HP ALM(Application Lifecycle Management),JIRA

硬件在环(HIL)测试工具:dSPACE ,ETAS LABCAR ,Vector Informatik

8. 验收测试阶段

工具链和供应商:HP ALM,JIRA,TestRail(Gurock)

9. 维护阶段

问题追踪工具:JIRA,Bugzilla,Redmine

配置管理工具:Git,SVN,Perforce

 把敏捷开发加入V模型 

最近一段时间,汽车交付越来越快,甚至出现一年一车的盛况。V模型的局限性也越来越明显,V模型的测试过程是在开发过程的后期进行的,这意味着问题在测试阶段被发现可能会导致较高的修复成本。

为了补足V模型的缺点,将敏捷开发和V模型结合使用是全新的方法,也就是将敏捷原则嵌入到V模型中。

图片

顾名思义,敏捷开发是一种迭代式、增量式的开发方法,强调对需求变化的快速响应和持续交付有价值的软件,将其用于产品的开发,实现敏捷迭代。

通过结合敏捷开发和V模型,可以实现对汽车软件开发过程的全面评估和改进,提高产品研发质量和可靠性。

结合完大改长这样:

图片

原本按照V模型按部就班走,每个环节走得都不一样快,走得快其实就可以有时间喘口气等一等。当加入敏捷思维之后,这基本是一种让大家都闲不下来的方法,一段时间内可能会比较容易提升效率和效果,但长久来看,如何通过激励措施持续运作下去会是一个问题。

转变并非易事,汽车行业几十年来一直遵循V模型开发流程,未来怎么融合,也是现阶段在考虑的事情。

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    想学单片机怎么入手?学单片机前先学什么?;看到身边的很多电子产品都涉及到单片机,自己身边又有很多同学或者同事从事嵌入式单片机程序开发,工资普遍也比较高。 对于背后无人,家里无矿的普通人,掌握......
    友问我每天在实验室里学什么东西,我说单片机软件开发,她是一脸懵逼问我单片机是个啥! 是的,只有关注电子产品开发的兄弟姐妹们才会关注单片机这个话题,以及单片机如何使用? 单片机如何使用?我们先聊一下这个话题,再和大家探讨单片机只会用例程怎么......
    件感兴趣,想成为真正高手的由第一个分支入手,以后进入第二个分支;如果十分厌烦硬件,只想停留在软件开发上的,可以只由第二个分支入手,以后就和pc上的开发没有什么本质上的区别了,找份......
    可以帮助到大家。 单片机怎么入门? 首先我们要选择一款适合新手入门的单片机 刚入门的伙伴,我建议大家从C51单片机入门比较适合,51单片机开发对基础的要求不高,相对其他单片机比较容易上手。如果你的C语言......
    前期只需要学会一个就可以了,如果是走软件开发方向,前期只需要学习怎么看原理图即可。 ......
    stm32单片机用什么软件编程;  今天要和大家分享的是stm32单片机用什么软件编程相关信息。   想学单片机开发,最主要是熟悉stm32的软件开发环境,目前stm32的开发环境,主流是KEIL和......
    PLC常用基本指令控制系统设计;PLC是一项技能,需要进行不断的练习和实践,作为一个新手小白,要怎么学呢?从哪方面入手? 其实在学习PLC之前,是先了解自己学习需求,比如PLC是个什么产品?你学......
    初学者怎么学单片机,嵌入式单片机培训机构有用吗?;之前很多的同事,做硬件开发的,测试的,或者想学单片机的小伙伴们都会问这个问题“初学者怎么学单片机” 我也是从一个小白开始的,不是天生就会单片机开发......
    单片机是什么?单片机编程怎么入门?;我不是电子专业毕业,后面是通过自学的单片机进入了这个行业。 当初我和很多人一样,不知道单片机是什么。 网上搜集了一些资料,说的太学术化,看的云里雾里。 今天......
    的是他们更擅长定义各种硬件接口,但对复杂软件系统往往表现的力不从心。 另一类就是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。嵌入式设备的增值很大程度上取决于嵌入式软件,这一......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>