当前位置: 首页 > news >正文

汽车软件开发之敏捷开发

一、前言

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

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

目前汽车软件研发,主要采用 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 流于形式。转向敏捷开发,不仅需要软件开发企业内部管理的调整,也依赖于未来行业标准的转变。       

相关文章:

汽车软件开发之敏捷开发

一、前言 目前汽车电子产品,特别是汽车几大域控(如:智能座舱、智能驾驶、智能网联、车身控制)市场竞争激烈,消费者对汽车的需求逐渐多元化和个性化,用户对座舱和智驾产品的要求也越来越高。他们不仅要求产…...

ListBox显示最新数据、左移和右移操作

1、程序 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static Sys…...

mysql实用系列:日期格式化

在MySQL中,你可以使用DATE_FORMAT()函数来格式化日期。DATE_FORMAT() 函数通常用于格式化 DATETIME 或 TIMESTAMP类型的字段。这个函数允许你按照指定的格式来显示日期和时间。下面是一些常见的日期格式化的例子: 显示年-月-日: SELECT DATE_…...

时钟频率、AI采样率与AO更新率的关系

在数据采集和信号生成设备(如NI板卡)中,时钟频率、AI(模拟输入)采样率、以及AO(模拟输出)更新率是三个至关重要的参数。它们共同决定了设备在信号采集与生成时的性能表现。本文将详细分析它们之…...

代理IP设置后IP不变?可能的原因及解决方法

在使用代理IP时,有时会遇到代理设置后IP地址却没有变化的情况。这种问题可能会让人感到困惑,但其实背后有多种原因。本文将详细探讨这些原因,并提供相应的解决方法,帮助你顺利解决问题。 可能的原因 代理IP设置后IP地址不变的原…...

瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商

本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法,本次使用了触觉智能的EVB3588开发板演示,搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计,为工业场景设计研发的模块化产品,10年以上稳定供货,帮助…...

Varjo在芬兰开设新工厂,以满足国防部门在XR模拟训练中的需求

在军事国防领域,全新技术的投入使用最看重的就是保密与安全。作为全球领先的XR头戴式显示器提供商Varjo,近日正式宣布将在位于芬兰的赫尔辛基开设一家新的安全制造工厂。 此次工厂扩建将使Varjo能够满足国防训练和模拟领域对其高分辨率XR解决方案日益增…...

python 识别省市、区县并组建三级信息数据库

一、网址: 全国行政区划信息查询平台 二、分析并搭建框架 检查网页源码: 检查网页源码可以发现: 所有省级信息全部在javaScript下的json中,会在页面加载时加载json数据,填充到页面的option中。 1、第一步&#xff1a…...

家用小型超声波清洗机怎么选?四大人气爆款品牌不可错过!

在现代社会快节奏的步伐中,保持高度的个人及家居卫生标准成为了日常生活的重要组成部分,对于追求高端生活品质的人群而言,这一点尤为重要。因此,选取一款集高效与便利于一体的超声波清洗机,无疑是升级日常清洁体验的理…...

NVIDIA最新AI论文介绍NEST:一种用于语音处理的快速高效自监督模型

语音处理专注于开发能够分析、解释和生成人类语音的系统。这些技术涵盖了多种应用,例如自动语音识别(ASR)、说话人验证、语音转文本翻译以及说话人分离。随着对虚拟助手、转录服务和多语言交流工具的依赖不断增加,高效准确的语音处…...

聊聊对别人表示真正的关注

在工作和生活中,那些重要人士所得到的关注已经很多了,所以你不能只关注那些重要的人,对那些保洁门卫、前台等也需要我们给予真心的关注。 他们可使你的生活正常有序,但却经常被你忽略,见面打个招呼时常跟他们聊一聊,这…...

大数据-133 - ClickHouse 基础概述 全面了解

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

第1步win10宿主机与虚拟机通过NAT共享上网互通

VM的CentOS采用NAT共用宿主机网卡宿主机器无法连接到虚拟CentOS 要实现宿主机与虚拟机通信,原理就是给宿主机的网卡配置一个与虚拟机网关相同网段的IP地址,实现可以互通。 1、查看虚拟机的IP地址 2、编辑虚拟机的虚拟网络的NAT和DHCP的配置,…...

Python学习——【2.3】for循环

文章目录 【2.3】for循环一、for循环基础语法(一)基础语法※、练习 (二)range语句※、练习 (三)变量作用域 二、for循环嵌套使用※、练习 【2.3】for循环 一、for循环基础语法 (一&#xff09…...

Element UI:初步探索 Vue.js 的高效 UI 框架

Element UI:初步探索 Vue.js 的高效 UI 框架 一 . ElementUI 基本使用1.1 Element 介绍1.2 Element 快速入门1.3 基础布局1.4 容器布局1.5 表单组件1.6 表格组件1.6.1 基础表格1.6.2 带斑马纹表格1.6.3 带边框表格1.6.4 带状态的表格 1.7 导航栏组件讲解 二 . 学生列…...

React Native防止重复点击

项目中遇到了点击按钮重复提交的问题,防止重复点击首先是想到的是给点击事件一个定时,下次触发的条件是要距离上一次点击的时间大于N秒的之后才能再执行。 // 防重复点击函数 export const preventRepeatPress {lastPressTi1me: 0, // 上次点击时间…...

如何将Git本地代码推送到Gitee云端仓库

如何将Git本地代码推送到Gitee云端仓库 在使用Git进行版本控制时,将本地代码推送到远程仓库是一个基本且重要的操作。本文将详细介绍如何将你的Git本地代码推送到Gitee(码云)云端仓库。Gitee是一个国内非常流行的代码托管平台,类…...

架构师论文备考-论云原生架构及其应用

摘要 2022年3月,我有幸参与了公司的新智慧公交系统的研发工作。该系统基于B/S架构设计,并以多租户SaaS平台化为发展目标,旨在创建一个功能更全面、性能更卓越、稳定性更强、用户体验更佳的公交调度一体化平台。在这一项目中,我主要…...

12.java面向对象:java构造器

构造器 一个类即使什么都不写,也会存在一个方法。 假如我创建了一个类叫Student里面什么都不写,然后使用StudentDemo创建对象,运行没有结果,也没有报错。 public class Student {}public class StudentDemo {public static voi…...

微服务之间的安全通信

在微服务架构中,服务之间的通信是系统的核心部分。然而,由于服务的分布式和独立性,确保它们之间的通信安全至关重要。如果没有适当的安全机制,微服务系统可能会暴露在各种网络攻击和安全漏洞中。本文将讨论几种常见的微服务间安全…...

<6>-MySQL表的增删查改

目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表&#xf…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

【题解-洛谷】P10480 可达性统计

题目&#xff1a;P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图&#xff0c;分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M&#xff0c;接下来 M M M 行每行两个整数 x , y x,y x,y&#xff0c;表示从 …...