
汽车V模型开发模式
也许,会有同学好奇,汽车也有软件吗?是的!以前的汽车凭靠机械系统/液压系统就能实现汽车的基本功能。而现在的汽车所需要的功能越来越复杂,车身重量也越来越轻,传统的机械系统和液压系统已经不能满足这些需求了。
因此现在的汽车不仅仅有软件,而且软件的重要性在汽车身上发挥的作用越来越大。特别是汽车行业正在经历的变革:自动化,电气化(新能源),车联网,数字化。
学过计算机软件的同学,应该都知道软件开发的模型有很多:瀑布模型,V模型,螺旋模型,快速原型模型,增量模型,喷泉模型等。而汽车软件的开发模型是怎样的呢?
汽车软件传统的开发模型——瀑布模型/V模型
汽车软件,就目前而言,是嵌入式软件。如果看过以前写的一篇文章《汽车为什么会跑——汽车电气架构简介》,那你能知道,目前的汽车电气架构主要是分布式的电器架构。意思就是将汽车的功能分解到各个功能模块,由每个功能模块负责一部分功能。因此,汽车的软件复杂度,相比于IT软件,并没有那么大,但质量要求相对非常高。
汽车行业为了解决软件开发过程中的各种问题,先后引入了瀑布模型,V模型。
什么是瀑布模型?
瀑布模型是于1970年温斯顿·罗伊斯(Winston Royce)提出的,其将软件生命周期分为若干阶段和固定的顺序,形如瀑布流水,最终得到软件产品。直到80年代早期,瀑布模型一直是唯一被广泛采用的软件开发模型。瀑布模型是软件开发模型的始祖,在软件工程中占有举足轻重的地位,提供了软件开发的基本框架。后续的V模型,螺旋模型,快速原型模型,增量模型,喷泉模型等都是在瀑布模型的基础上改进或借鉴。
瀑布模型的核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型示意
从以上图可以看出,瀑布模型的过程是自上而下,下一工序基于上一工序的工作结果完成任务输出结果。在开始下一工序之前,需确认上一工序的工作结果。若确认上一工序的工作结果,才继续下一步工序。否则返回前一工序,甚至更前面的工序。
瀑布模型有以下优点:
· 按阶段划分的检查审核,保证质量。
· 分工明确,每个工序中的人只需要关注当前工序。
· 瀑布模型可用于迭代模型。
每次迭代都是一个小的瀑布模型,经过每次迭代,不断完善完成整个系统的功能。
· 模板化,标准化。系统分析、设计、编码、测试和支持等工序在相同的模板和标准下,朝着相同的方向前进。
瀑布模型有以下缺点
· 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
· 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
· 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
· 瀑布模型的突出缺点是不适应用户需求的变化。
什么是V模型?
V模型,即RAD(Rapid Application Development,快速应用开发),是由瀑布模型演变而来的,也是目前汽车行业运用最广的软件开发模型。
从上图可以看到,V模型是从上到下,从左到右,也是从下到上的开发流程。从上到下依次分为系统需求,系统架构,软件需求,软件架构,软件详细设计,软件单元(代码)。从上到下的流程是不是看着很像瀑布模型的流程?从左到右是指每一层级都有相对应的测试,如系统需求对应的系统测试。如当系统需求完成,下层级的系统架构,软件需求就会开始工作,于此同时,系统测试也将开始编写测试用例和搭建测试环境。而从下到上是指测试从下往上一层层的测试。如系统测试的开始条件是系统集成测试/软件测试完成且无无重大bug。
总的来讲,V模型是对瀑布模型的细化和完善。相对瀑布模型,V模型的优势在于:
· 解决瀑布模型中严格分离很难实现的困境。
· 软件回溯较为方便快捷。
· 测试提前,及早发现问题,解决问题。
· 问题追溯性更强。
· 提高了开发效率/降低开发成本。
不过V模型和瀑布模型一样,过程中产生大量文档,项目反应速度也越来越不能满足当前汽车日新月异的需求和快速的更新换代的节奏。
但不能不承认,V模型在汽车行业的深刻影响。汽车行业的公司其技术部门组织架构/研发体系几乎都是参照V模型设置。而且很多的汽车行业标准和规范的基石都是V模型。比如,汽车行业很火的ASPICE,ISO26262(道路汽车功能安全规范),都是参照V模型的。《ASPICE在汽车行业越来越“火”,那么什么是ASPICE呢?》,《汽车功能安全简介——ISO26262》
当车联网,OTA,域控制器,普及之后,汽车软件质量要求可能就不用这么高了。汽车软件开发模型将逐渐向Agile(敏捷开发)模型转变。
尽管V模型优势不再那么明显,但相信它在汽车行业依旧会存在。特别是其良好的可追溯性和软件质量的把控,是不能被Agile(敏捷开发)等新的开发模式所完全取代的。而且,只要ASPICE,ISO26262没有被其他标准取代,那么V模型就一定还会存在,且发挥很大的作用。
文章转载自公众号:软件赋能汽车
