汽车软件开发之敏捷开发

news2025/2/23 19:33:21

一、前言

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

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

目前汽车软件研发,主要采用 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.coloradmin.cn/o/2146418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能时代,我们依旧有无限的选择权!

人工智能时代,即有人两眼放光,又有人忧心忡忡。前者看到大量的机遇、蓝海,后者看到了失业和糟糕的未来,亦或是有人有喜有忧。但是只要你知晓一个真谛:凡事皆有利有弊,那便不用内耗了。或是选择当前的生活节…

SAP B1 - 新账套设置密码不过期

背景 建立新账套后,每隔一段时间就会自动弹出以下要求更改密码的提示窗口,最讨厌的是系统会记住你的所有历史密码,新设置密码不能与所有曾用密码相同。找到终止该自动更换密码的设置,遂总结为经验帖。 操作 点击位于顶栏的小人图…

示例:WPF中Grid显示网格线的几种方式

一、目的:介绍一下WPF中Grid显示网格线的几种方式 二、几种方式 1、重写OnRender绘制网格线(推荐) 效果如下: 实现方式如下: public class LineGrid : Grid{private readonly Pen _pen;public LineGrid(){_pen new P…

C#实战|大乐透选号器[11]:确认选号功能的实现

哈喽,你好啊,我是雷工! 接着练习大乐透选号器的功能,这里练习实现确认选号功能; 以下为实现笔记; 01 效果演示 实现点击确认选号,将机选或手动选出的号码,添加到列表中显示; 02 设置DataGridView 首先设置控件GataGridView的属性; 2.1、编辑列 选中控件,点击右上角的…

最新Kali Linux超详细安装教程(附镜像包)

一、镜像下载: 链接:https://pan.baidu.com/s/1BfiyAMW6E1u9fhfyv8oH5Q 提取码:tft5 二、配置虚拟机 这里我们以最新的vm17.5为例。进行配置 1.创建新的虚拟机:选择自定义 2.下一步 3.选择稍后安装操作系统 4.选择Debian版本 因…

AI绘画实操 Stable Diffusion 到底怎么玩儿,新手必看的AI绘画入门安装使用教程

大家好,我是灵魂画师向阳 2024年,是AI绘画技术飞速发展的一年,各种AI绘画工具层出不穷,为了让大家在了解和学习AI绘画的过程中少走弯路,今天我将详细介绍目前世界上使用用户最多,社区最大,生态…

Springboot与minio

一、介绍 Minio是一个简单易用的云存储服务,它让你可以轻松地把文件上传到互联网上,这样无论你在哪里,只要有网络,就能访问或分享这些文件。如果你想要从这个仓库里取出一张图片或一段视频,让网站的访客能看到或者下载…

遭华尔街大幅看好,收入高速增长但面临困境,Zillow股票还能买入吗?

来源:猛兽财经 作者:猛兽财经 猛兽财经的核心观点: (1)Wedbush已经将Zillow的评级上调为“跑赢大盘”,目标价为80美元。 (2)第二季度业绩强劲,收入继续保持着两位数增长…

esp32-C2 对接火山引擎实现语音转文本(二)

目录 一、 语音转文本初始化 二、 WedStream 事件处理函数 一、 语音转文本初始化 Volcengine_vtt_handle_t Volcengine_Vtt_Init(Volcengine_vtt_config_t *config) {// 管道配置audio_pipeline_cfg_t pipeline_cfg = DEFAULT_AUDIO_PIPELINE_CONFIG();Volcengine_vtt_t *vt…

架构师:在 Spring Cloud 中实现全局异常处理的技术指南

1、简述 在分布式系统中,微服务架构是最流行的设计模式之一。Spring Cloud 提供了各种工具和库来简化微服务的开发和管理。然而,随着服务的增多,处理每个服务中的异常变得尤为复杂。因此,实现统一的全局异常处理成为了关键。本篇博客将介绍如何在 Spring Cloud 微服务架构…

DevExpress中文教程:如何将WinForms数据网格连接到ASP. NET Core WebAPI服务?

日前DevExpress官方发布了DevExpress WinForms的后续版本——将.NET桌面客户端连接到安全后端Web API服务(EF Core with OData),在本文中我们将进一步演示如何使用一个更简单的服务来设置DevExpress WinForms数据网格。 P.S:DevExpress WinForms拥有180…

关于github GPG的配置

GitHub 使用 OpenPGP 库来确认本地签名的提交和标记,是否根据你在 GitHub.com 上添加到帐户的公钥进行加密验证。 这里是github关于GPG密钥的文档:https://docs.github.com/zh/authentication/managing-commit-signature-verification/about-commit-sig…

开放式耳机和骨传导耳机哪个好用?全面解析哪个品牌的开放式蓝牙耳机质量好

当谈到开放式耳机与骨传导耳机之间的选择时,两种类型的耳机各有千秋,适合不同的使用场景和个人偏好。 开放式耳机的设计让耳朵可以自由呼吸,同时让部分环境音进入,这样用户可以在享受音乐的同时保持对外界的感知,非常…

求Huffman树及其matlab程序详解

#################本文为学习《图论算法及其MATLAB实现》的学习笔记################# 算法用途 求Haffman树 算法思想 根据定理4.17,给出求Huffman树的算法步骤如下: ①对给出的所要求的叶子顶点的权进行从小到大排序,写出的权重向量 ; ②根据定理4.17,写出兄弟的权重分别为…

9月19日微语报,星期四,农历八月十七

9月19日微语报,星期四,农历八月十七,工作愉快,生活喜乐! 一份微语报,众览天下事! 1、台风“普拉桑”将影响东海,自然资源部启动海洋灾害三级应急响应。 2、国家体育总局&#xff…

Spring6梳理9—— 依赖注入之注入对象类型属性

9.1 依赖注入之外部注入对象类型属性 9.1.1 创建dept与emp类 1.dept类 package com.atguigu.spring6.iocxml.ditest;//部门类 public class Dept {private String dname;public String getDname() {return dname;}public void setDname(String dname) {this.dname dname;…

强化雨天巡检,智能巡检机器人确保变电站安全运行

中央气象台9月19日6时继续发布暴雨黄色预警:预计,9月19日8时至20日8时,内蒙古中部、河北北部、安徽东南部、江苏南部、上海、浙江大部、海南岛以及青海东北部、甘肃西南部、辽宁中部、福建西北部、江西中部等地部分地区有大到暴雨&#xff0c…

Linux系统编程入门 | 模拟实现 ls -l 命令

模拟实现代码 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <pwd.h> #include <grp.h> #include <time.h> #include <string.h>int main(int argc, char* argv[]) {if (a…

Sidewalk介绍

目录 1 前言2 简介2.1 注意事项 3 结束语 1 前言 Sidewalk是Amazon出的一个针对IoT物联网的协议&#xff0c;类似于LoRaWAN协议&#xff0c;针对小而美的低功耗设备。Amazon Sidewalk支持低带宽和远程连接&#xff0c;使用BLE进行短距离通信&#xff0c;使用900MHz的频率的LoR…

Selenium实现滑动滑块验证码验证!

背景&#xff1a;在部分的登录中有滑动验证码的验证&#xff0c;由于滑动验证码的缺块是随机的就导致实现起来比较困难&#xff01; 01、实现方案 模板匹配 通过openCV分析两个图片的相似度&#xff0c;获取两个相似度很高图片的坐标&#xff0c;从而计算两个图片的距离。 轮…