汽车软件开发之敏捷开发

devtools/2024/11/13 9:09:36/

一、前言

目前汽车电子产品,特别是汽车几大域控(如:智能座舱、智能驾驶、智能网联、车身控制)市场竞争激烈,消费者对汽车的需求逐渐多元化和个性化,用户对座舱和智驾产品的要求也越来越高。他们不仅要求产品具有创新性和科技感,还要求产品能够提供更加优质、便捷的驾驶体验。但目前该领域产品迭代快、精度高、制造工艺难,所面临的形势无疑格外严峻。

如何平衡消费者对产品、服务及交付时间的期待,成为每个品牌与产品无法绕开的难题。车企需要不断学习并提升自己快速适应变化的能力来加快创新速度、缩短生产周期,以确保新车型在进入市场时能够占领创新高地。敏捷开发方式成为众多车企的选择。

目前汽车软件研发,主要采用 V 模型,其是由瀑布模型演变而来的,也是目前汽车行业运用最广的软件开发模型。它强调在项目开始阶段就对需求进行详细的分析和定义,然后依次进行设计、编码、测试等流程,直到项目完成。V 模型标准化软件开发流程是客户和产品开发方的共同语言,通过实施 V 模型,方便客户进行评审和管控供应商开发质量;通过规范和标准化软件开发流程,有助于降低产品缺陷率和提高产品质量。但其实施成本高、开发周期长、无法及时评审过程产物,也成为汽车软件研发的难题。

二、产品敏捷开发流程管理

与传统瀑布式方法相比,汽车电子产品开发流程的优化方案就是将敏捷开发和 V 模型结合使用。敏捷开发是一种迭代式、增量式的开发方法,强调对需求变化的快速响应和持续交付有价值的软件,将其用于产品的开发,实现敏捷迭代。同时,针对具体产品的特点,强调功能安全的重要性,利用 V 模型的需求管理方法来确保需求的准确性和完整性。通过结合敏捷开发和 V 模型,可以实现对汽车软件开发过程的全面评估和改进,提高产品研发质量和可靠性。

1. 产品敏捷迭代

持续开发、持续集成和持续部署共同构成了敏捷开发过程。通过持续开发,可以快速响应客户需求的变化,提高软件的质量和可靠性;通过持续集成和持续部署,可以确保软件的完整性和稳定性,并最终实现软件的快速上市。

2. 敏捷开发在汽车软件开发上的应用

2.1 需求驱动

减少需求层级,适应快速敏捷的需求:传统 V 模型的开发流程中有 4-5 级的需求文档,每层均对应一个团队,每层均需要文档编写、上下游对齐时间,阻碍了敏捷开发。在运用了敏捷模型的汽车软件开发团队,将需求层级减少为 1-2 级,最终完成从产品需求到软件需求。这些需求编写同样采取敏捷迭代的方式进行。

产品负责人驱动产品&软件开发:传统V 模型的开发流程中是由项目经理驱动软件开发,在运用了敏捷模型的汽车软件开发团队,产品经理负责产品和软件需求,由产品经理将需求下派到软件开发团队,并确定开发计划、验证计划等,最终完成产品的验收。

2.2 功能和安全事项不同的开发管理方法

对于不涉及汽车安全的功能或产品,采用快速迭代的敏捷开发方式:对于不涉及汽车安全的功能或产品,强调的是快速回应用户需求和满足用户体验,允许在软件系统鲁棒性方面进行迭代改善(包含量产后的迭代改善—OTA)对于功能安全需求,采用 V 模型进行开发:对于功能安全需求,强调的开发受控,达到减少用户危害、同时满足严苛的(对内&对外)审核的要求,需要重视流程和文档管理,采取 V 模型进行开发。

三、总结与展望

随着智能汽车的蓬勃发展,汽车功能日新月异,软件代码量日益增加,传统 V 模型下的瀑布式开发已经不堪重负,为了快速交付给客户最迫切需要的功能,软件开发流程的转变至关重要。目前,越来越多的开发公司转向了敏捷开发。但在实际工作中,要实现敏捷转型,也面临不小的挑战。

根据敏捷年度报告中的统计,敏捷转型中面临的挑战主要有以下方面:

从占比最高的前三项可以看出,对于很多组织来说,内部文化仍然是敏捷转型的巨大阻碍。

因此,汽车软件开发流程向敏捷开发转变的过程,也是内部组织架构调整的过程。主要需要解决以下问题:

1.缺乏领导层的支持:

实行敏捷,组织架构上的微调是必不可免的,例如,一个SCRUM 团队,需要产品、开发、测试、集成等各个职能人员,而这些人员通常分属不同部门管理,SCRUM 团队管理者想要有序推进工作,就需要领导层的支持才能保证团队各成员的配合。

2.组织对变革的阻力:

  • 接受新的观念、流程对很多人都较为困难,且在转型初期会较为痛苦;

  • 敏捷特别讲究量化数据,这会使得一些浑水摸鱼、工作量较少的员工暴露出来,他们天然会反抗这种转型;

  • 敏捷转型后,整个组织自驱力越来越强,需要的管理人员则会变少,造成的人员冗余问题又会导致内部产生阻力。

综上所述,敏捷开发将会是汽车软件开发流程的转变趋势,但转向敏捷的过程仍面临组织内部的巨大阻力。同时,目前汽车行业仍然要求软件开发必须符合 ASPICE 认证要求,这导致软件开发团队无法彻底摆脱传统开发模式的束缚。当前 ASPICE 与敏捷开发的结合,往往也是敏捷主导着整个开发流程,而 ASPICE 流于形式。转向敏捷开发,不仅需要软件开发企业内部管理的调整,也依赖于未来行业标准的转变。       


http://www.ppmy.cn/devtools/114195.html

相关文章

在 Windows 上恢复已删除的 PDF 文件的最佳方法

如果您不小心删除了 PDF 文件或由于系统突然崩溃而无法再找到它们,本指南介绍了恢复已删除文件的最佳方法。 帖子中列出的方法简单、有效且可行。我们在列出它们之前对其进行了测试。 什么是 PDF,Adobe 将未保存的 PDF 存储在哪里? 自从 Ad…

家居小程序有什么用?

家居小程序在现代家居生活中扮演着越来越重要的角色,其功能和用途广泛且实用。以下是家居小程序的主要用途: 一、商品展示与购物 商品展示:家居小程序可以展示各种家居产品,包括家具、家电、装饰品等,用户可以通过分类…

【Linux下的cpp】编译调试(gcc、g++、gdb)

【Linux下的cpp】编译调试(gcc、g、gdb) 文章目录 【Linux下的cpp】编译调试(gcc、g、gdb)简述gcc、g、gdb编译过程g 编译参数命令行编译演练1、直接编译2、生成库文件并编译链接静态库并生成可执行文件链接动态库生成可执行文件 …

鸿蒙Harmony应用开发,数据驾驶舱页面的实现

先来看看我们要实现的驾驶舱的页面是什么样的 对于这种 响应式布局的页面构建,我们的脑子里面要有一个概念,就是"分而治之"。我们把这个页面进行分割,分割成不同的块然后再来逐个实现. 不难发现,我们可以将这个看到的效…

json格式互相转换

您提供的字符串已经是一个JSON格式的字符串,但是JSON标准要求键名必须用双引号括起来,而不是单引号。因此,您需要将字符串中的单引号替换为双引号。以下是转换后的JSON字符串: {"图片描述": "高速公路上发生了严重…

基于Spring Boot的学生社区故障维修预约系统的设计与实现(开题报告)

毕业论文(设计)开题报告 基于Spring Boot的学生社区故障维修预约系统设计与实现 姓 名 学 院 数学与数据科学学院 专业班级 信息与计算科学202 学 号 202021314223 校内指导教师 职称/职务 副教授 校外指导教师 职称/职务 技术经理 起始时间 2023年9月 教务部制 一、开…

go语言中的数组指针和指针数组的区别详解

1.介绍 大家知道C语言之所以强大,就是因为c语言支持指针,而且权限特别大,c语言可以对计算机中任何内存的指针进行操作,这样自然而然也会带来一些不安全的因素,所以在golang中,「取消了对指针的一些偏移&…

Day.js时间插件的安装引用与常用方法大全

🚀 个人简介:某大型国企资深软件研发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~ 💟 作 者:码喽的自我修养&#x1f9…