首页 > 其他分享 >敏捷:应对软件定义汽车时代的开发模式变革

敏捷:应对软件定义汽车时代的开发模式变革

时间:2023-12-06 12:03:03浏览次数:28  
标签:变革 定义 汽车 开发 敏捷 软件 交付

​随着软件定义汽车典型应用场景的落地,汽车从交通工具转向智能移动终端的趋势愈发明显。几十年前,一台好车的定义主要取决于高性能的底盘操稳与动力系统;几年前,一台好车的定义主要取决于智能化系统与智能交互能否满足终端用户的用车体验;相信不久后的将来,一台好车的定义将变成:全车传感器与数据驱动方式定义智能移动终端。本文将从开发模式变革来讨论软件定义汽车所需要的改变,并介绍软件定义汽车模式下的典型应用场景。

1.开发模式变革

传统汽车的软件开发采用 V 字形瀑布式开发模式,如下图所示。

由于各开发部分之间相对独立,更多只是在部分内部展开局部性优化,缺乏系统级平台级的开发全局观,很难做到整体优化。同时,各部分的开发时间并不全然一致,进度顺序依赖很容易造成队列效应,一旦出现某个部分开发发生延误时,便会影响整体的开发进度。每个阶段都过于依赖上个阶段成果,就会导致开发成本较高且周期过长,与“软件定义汽车”涉及的【缩短产品上市周期、产品基于消费者需求、支持不断的迭代、对市场需求迅速响应】等要求相矛盾。

▲传统 V 字瀑布式开发流程图

 

因此,软件定义汽车背景下,汽车软件开发将由传统的瀑布式开发向敏捷开发模式转变。敏捷式开发模式既有利于达到密切的协调合作,最大限度地减少管理成本,同时因其灵活的工作模式能够使开发团队与用户实现高度互动,采用最低可行性产品的形式快速满足用户需求,并在使用中不断创新迭代,实现持续开发、持续集成、持续交付,体现软件定义汽车的优势。主要体现如下:

软件开发流程

传统控制器的开发,遵循 V 型开发流程,以整车厂的需求为输入,考虑信息安全和功能安全,严格执行设计、实现、验证的完整流程,最终也以控制器为对象完成需求的验收,有利于保障需求的完整实现。同时,整个流程也有质保、流程、售后等部门参与其中进行评审和审核,以此形成良好的质量管理和质量保证体系。但整个流程相对封闭,不符合软件快速迭代的开放性和扩展性要求。

开发交付方式

传统汽车软件的开发场景明确,软件与硬件紧密耦合,对于嵌入式软件的交付,并没有明确的“软件交付”的概念,软件随着控制器硬件一起交付。技术层面来看,应用软件与基础软件一起集成和固化,有着明确统一的释放节点。随着软件定义汽车时代的到来,“软硬分离,软软分离”逐渐成了主旋律,嵌入式软件从依附于硬件的一堆“代码”真正脱胎换骨为独立可售卖的产品;且这项产品可以在整个车辆的生命周期内持续产生价值。从嵌入式软件开发和验证的技术层面,这样的趋势使得软件要能够快速迭代,持续更新持续交付。

项目管理

在传统控制器开发中,在项目前期形成相对完备的系统架构和软件架构,再向下分解到软件组件,经由详细设计到达软件开发。这样的开发模式适合控制器的产品形态,依赖成熟技术的完整积累。面向开放架构/持续交付的软件特性,在项目管理上,敏捷成为了关键词,软件交付不再是统一固定的交付节点,软件模块在整个车辆生命周期都有新增的机会:模块化软件具备单独交付的条件和场景,随之而来的是软件的设计/开发/测试/验证的节点也随之迭代起来,变化和持续交付是常态,这对整体的软件项目管理提出了更高的要求。

综上,汽车软件开发模式由传统的瀑布式开发向敏捷开发模式的变革,将为软件定义汽车落地面带来巨大挑战。

 

2.敏捷:应对软件定义汽车时代的开发模式变革

在应对上述变革的诸多方案中,CI/CD是不可忽视的敏捷属性。

不同的汽车ECU提供不同的服务,对底层操作系统给的要求也不同。在电子电气系统架构从分布式向域集中式演进的大背景下,各种功能模块都集中到少数几个计算能力强大的域控制器中。如何在域控制器中使用CI/CD的敏捷方法,助力软件的开发、测试和验证呢?

▲智能汽车软硬件架构

 国产自主可控的天目全数字实时仿真软件SkyEye,可以通过全数字仿真技术,实现汽车所需嵌入式软件的敏捷开发。基于SkyEye所搭建的嵌入式系统虚拟化运行环境,工程师可不受物理硬件限制,随时访问目标系统,快速搭建虚拟硬件模型并提前进行开发、测试和验证工作,实现高效率、高质量的软件交付。

同时,SkyEye支持主流的嵌入式硬件平台,可运行国内外主流的操作系统,对国产生态的支持尤为出色。通过利用基于LLVM的动态二进制翻译技术,SkyEye可使虚拟处理器在典型的桌面计算机上运行速度达到2000MIPS以上。

基于SkyEye的虚拟硬件和CI/CD工作流紧耦合,可应用于汽车软件开发的全生命周期:

▲CI/CD流水线

参考文献

软件定义汽车产业生态创新白皮书V1.0

标签:变革,定义,汽车,开发,敏捷,软件,交付
From: https://www.cnblogs.com/digiproto/p/17879172.html

相关文章

  • 效率MAX!15款最佳协同设计软件推荐
    在当今的数字化时代,协同设计软件已经成为许多设计团队不可或缺的工具。这些软件(或平台)不仅为设计师们提供了协同共创的可能性,还能促进他们的交流和共享。无论是大型企业还是个人设计师,协同设计软件都能够极大地提升工作效率,并在潜移默化中优化设计流程。在本文中,我们将介绍15款备受......
  • 软件构造实验三
    JFinal极速开发框架实验 (2023.12.13日完成)    根据参考资料,学习JFinal极速开发框架的使用并如下任务:    任务一:了解Maven及其使用方法,总结其功能作用(占20%)    任务二:学习JFinal框架,基于Maven建立JFinal工程,并对JFinal框架功能进行总结介绍(占30%)    任务三:基......
  • 软件多开助手的创新使用:在同一设备上玩转多个游戏
    软件多开助手:在同一设备上玩转多个游戏的创新使用随着科技的不断发展,手机和电脑已经成为我们生活中必不可少的工具。众多游戏爱好者也越来越追求在同一设备上同时体验多个游戏的乐趣。而软件多开助手的出现为这一需求提供了创新的解决方案。传统上,一个设备只能运行一个应用程序,这......
  • JFrog Artifactory—高性能软件制品管理仓库
    产品概述    JFrogArtifactory是一个可扩展的通用二进制存储库管理器,可在整个应用程序开发和交付过程中自动管理工件和依赖项。JFrogArtifactory支持大多数开发语言,是整个DevOps流水线中大多数软件包、容器映像和Helm图表的单一数据源。Artifactory对元数据和资产具有丰......
  • ​IT运维产业在大数据驱动变革下的应用建议
    以下是针对IT运维产业在大数据驱动变革下的一些具体实际应用建议:1. 利用人工智能和机器学习技术实现自动化运维:通过利用机器学习算法对系统日志进行分析,可以自动化地发现故障和预测系统的性能瓶颈,提高运维的效率和准确性。同时,通过引入人工智能技术,可以实现对用户行为的智能分析和......
  • 软件测试/人工智能|Python算术运算符:入门指南
    前言在编写程序时,可以使用算术运算符来进行基本的数学计算。Python中的算术运算符包括加法、减法、乘法、除法、取模和幂运算。本文就给大家介绍一下Python算术运算符的使用。加法运算符+加法运算符用于将两个数值相加,例如,a+b表示将a和b相加的结果。如果a和b都是数字,则加法......
  • 软件兼容性测试有哪些好处?专业CMA、CNAS软件测评中心推荐
    软件兼容性测试是保证软件在不同操作系统、不同浏览器、不同设备上正常运行的重要环节。一款兼容性良好的软件能在不同的硬件和软件环境中展现出稳定、高效的性能,用户体验也会更加顺畅,主要有以下好处:1、减少软件上线后的故障和问题:兼容性测试能够帮助发现并解决软件在不同......
  • 软件测试/人工智能|Python Pip 常用命令大全
    前言我们在使用Python进行编程时,难免需要用到Python的各种包,我们在不同的项目中需要用到不同的库,甚至需要用到同一个库的不同版本等,这些库,都是需要我们通过Python的库管理工具——pip来实现的,而pip这个工具也是Python初学者必须要学习掌握的一个工具,本文就来给大家介绍一下pip的......
  • 软件测试/人工智能|Python运算符:初学者指南
    什么是运算符?运算符是用于进行各种运算操作的符号或关键词。在数学和计算机编程中,运算符被用来表示不同的运算操作,例如加法、减法、乘法、除法等。比如:1+2,其中,1和2为操作数,+为运算符。a=18,其中,a和18为操作数,=为运算符。print(),其中,print为操作数,()为运算符。Pyt......
  • 图扑 Web 组态软件在储粮粮仓冷却风机系统上的应用
    粮仓即储藏粮食的专用建筑物,用于存放大量粮食,大型粮仓储粮更需要谨慎呵护每一粒粮,一旦出现问题损失不可估量。从米面油到豆类、玉米等,粮食种类丰富,粮库面积至少在500平以上,若不能有效解决粮库夏季热,冬季冻的问题,粮库将会面临非常大的困境。在夏季一般要求粮仓的循环温度保持在20℃......