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

如何降低电动汽车软件的开发成本和风险?

大多数的汽车制造商无法从销售电动汽车(EV)中获得利润,但计划快速进入市场的电动汽车初创公司是无法承担这样的损失的。

由于飙升的电池价格、高昂的组件成本和低迷的销量削弱了盈利能力,电动汽车初创公司必须将视线转到软件开发,从预算、进度和人力投入水平等方面提高效率。初创公司要想找到解决以上问题的途径,就必须要了解电动汽车软件开发面临的主要挑战。

正如本文所阐述的观点,降低成本并不一定意味着需要提高车辆售价或裁员,你可以在高度复杂且受监管的软件环境中找到更加智能的解决方案。

电动汽车软件开发的范围

每辆电动汽车都是一个车载软件平台。因此,设计、编写和验证代码是提高开发效率的第一步。汽车部件可以被分解为不同的软件领域,以帮助您了解其对人力投入、预算和进度的影响。

这些电动汽车的软件领域包括:

  • 底盘(例如制动和悬架)——由于这个领域历史悠久且存在多个供应商,电动汽车初创公司必须考虑为新功能改装现有技术,如高级驾驶辅助系统,简称ADAS;
  • 动力系统(例如电机、逆变器)——需要开发大量的新软件,来管理电气化组件和自动驾驶系统;
  • 电池——电池管理和保护,以及安全运行,是对软件团队的关键要求;
  • 自动驾驶系统——自动驾驶汽车需要与现有底盘和动力总成系统进行复杂的集成。
  • 连接——车内互联网、无线(OTA)更新、车载信息娱乐系统(IVI)等将给软件开发带来关于可靠性和安全性的巨大挑战。

对于电动汽车初创公司来说,这些领域更多地倾向于新的、前沿的软件组件,且对功能安全和安全性有很高的要求。与传统的汽车制造商不同,初创公司必须从头开始构建这些组件,同时还要应对投资者信心、开发人员招募和监管合规等商业现实方面的挑战。

电动汽车初创公司应该关注的三大挑战

除了上市时间和供应链问题外,以下是影响电动汽车软件开发的三大挑战,以及开发团队应该如何解决这些问题。

  1. 通过标准合规来保护消费者和业务

有些开发人员可能觉得遵守汽车行业的安全和防范标准会阻碍创新和发布的速度。但现实的情况是,标准和指南提供了一个预定义的框架,能够保护业务不出现严重的故障或问题。

有三个常见的汽车标准:

ISO 26262

ISO 26262标准规定了功能安全流程,以减少对车辆乘员的危害,它基于一个风险分类系统,被称为汽车安全完整性级别(ASIL),并通过验证开发制品库来证明合规性。

MISRA

由制造商、部件供应商和工程咨询公司开发和维护,MISRA提供C和C++编码指南,帮助确保代码安全、可靠和可移植。

CERT

CERT是由软件开发和软件安全专业人员社区共同开发的C、C++和Java指南,帮助人们确定违反特定规则或建议可能造成的后果。

对于电动汽车初创企业而言,标准合规是一个棘手的工作:规划、测试和报告必须从一开始就纳入开发流程中。如果忽略了合规性或是流程后期才考它,发布时间就会越来越紧凑,并且在推出产品前要给监管机构提供证据,以证明产品合规。这将威胁到原型车的生产和交付给消费者的时间。

  1. 尽量减少通货膨胀的影响

通胀压力正在打乱汽车供应链中已有的定价模式,并限制消费者的购买力。电动汽车初创公司不能等待有利的市场条件,但在其软件团队中可以寻找机会,创建具有成本效益且可持续的实践。

初创公司的好处在于,开发人员想要测试和采用新工具来简化工作的时候不必花时间征求许可。他们积极地研究任何工具和技术,只要能够帮助他们交付稳定且合规的代码。开发团队的领导者可以通过梳理以下内容来提高这种敏捷性:

  • 所有当前开发流程中的应用程序和工具
  • 能减少手动操作并提高工作效率的新工具
  • 每种工具的所有权和负责人
  • 谁能访问它们以及访问频率
  • 每个用户/团队的每个工具的成本
  • 工具和流程中的冗余 许可条款和续订日期
  • 采用有效的自动化技术

虽然大多数的科技创业公司都倾向于雇佣那些自发解决问题的人(通常还要身兼数职),但电动汽车软件团队不能把风险控制的责任交给运气,这个赌注太高了。所以,您需要通过静态分析工具(如Helix QAC和Klocwork)自动执行复杂而繁琐的任务,这样可以降低风险并帮助开发人员专注于交付价值。
考虑到标准和安全合规要求的严格性,以下是电动汽车初创公司可以利用静态分析工具等自动化技术的领域:

  • 编码标准的合规性——识别是否违反了安全和防范标准中的规则和准则;
  • 代码覆盖率的合规性——满足ISO 26262代码覆盖率要求,如语句、分支和MC/DC;
  • 问题优先级排名——根据风险对问题进行排名,避免浪费时间或让开发人员产生“问题疲劳”。

使用静态分析工具降低电动汽车初创公司的创新成本

是时候减少浪费了。随着通货膨胀造成的供应链波动,以及市场监管的壁垒越来越高,电动汽车软件开发团队现在必须优化开支,并建立灵活和可适应的工具和流程,以便应对未来的不确定性和变化。

Perforce的静态代码分析和SAST工具让电动汽车软件开发团队能够轻松提升开发的效率。这些工具使用精准确切的静态代码分析功能来帮助您确保代码在质量、可靠性、安全性和防范性方面持续符合相关标准和要求。从概念验证到移植到新车型,Helix QAC和Klocwork帮助您高速开发,并降低市场风险。

文章来源:https://bit.ly/3M3ovKR

相关文章:

如何降低电动汽车软件的开发成本和风险?

大多数的汽车制造商无法从销售电动汽车(EV)中获得利润,但计划快速进入市场的电动汽车初创公司是无法承担这样的损失的。 由于飙升的电池价格、高昂的组件成本和低迷的销量削弱了盈利能力,电动汽车初创公司必须将视线转到软件开发…...

使用pytest和allure框架实现自动化测试报告优化

目录 -x出现一条测试用例失败就退出测试 生成测试报告json pytest: 需要安装pytest和pytest-html(生成html测试报告) pip install pytest 和 pip install pytest-html 命名规则 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头…...

chatGPT免费站点分享

下面的应该都能用,试试吧... ChatGPT是一种人工智能聊天机器人,能够生成虚拟语言和交互回复。使用ChatGPT,您可以与机器人进行真实的交互,让机器人根据您提出的问题或请求来生成回复。但是,在使用ChatGPT时&#xff0…...

【计算机网络】已知一个/27网络中有一个地址是 167.199.170.82,问这个网络的网络掩码,网络前缀长度和网络后缀长度是多少?网络前缀是多少?

目录 题: 1. 网络掩码 2.网络前缀长度 3.网络前缀 4.网络后缀长度 题: 已知一个/27网络中有一个地址是 167.199.170.82, 问这个网络的网络掩码,网络前缀长度和网络后缀长度是多少?网络前缀是多少? 1.…...

Java8 - Stream

介绍 Java8中有两大最为重要的改变。第一个是 Lambda 表达式; 另外一个则是 Stream API(java.util.stream.*)。Stream是 Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用 Stream …...

什么样的冷链保温箱,既环保又实用?

冷链物流运输已经应用在了很多行业中,作为冷链物流运输中的重要设备——冷链保温箱,起到了举足轻重的作用。如果选择不当,选到了劣质产品,尤其是化学行业或者食品行业,就有可能造成试剂失效或者是影响粮食食品安全问题…...

Eclipse的介绍与安装

Eclipse简介 Eclipse 是一个开放源代码的,基于 Java 的可扩展开发平台。Eclipse官方版是一个集成开发环境(IDE),可以通过安装不同的插件实现对其它计算机语言编辑开发,如C、Php、Python等等。 Eclipse的下载 下载时需要访问网址 http://…...

<IBM AIX> 《AIX中HA的网卡IP确认方法》

《HA网卡确认方法》 1 HA IP地址类型2HA IP地址设置原则3 HA网卡日常查看方法3.1 查看hosts文件3.2 查看网卡和IP 4 通过命令方式直接查看5 直接查看HA配置4 HA网卡SMIT查看方法(暂不完整)4.1 根据hosts文件确认IP对应的别名4.2 根据serviceIP确认Persis…...

AMB300系列母线槽红外测温解决方案某锂电厂房项目案例分享

安科瑞 耿敏花 一、 行业背景 近年来,在国家政策引导与技术革新驱动的双重作用下,锂电产业保持快速增长态势,产业规模持续扩大,同时新能源产业工厂锂电池生产线对于电的依赖性很高,因而对供电设备的可靠性提出…...

go语言学习——4

文章目录 Map Map map是一种特殊的数据结构:一种元素对pair的无序集合,pair的一个元素是key,对应一个value,这种结构也称为“关联数组或字典”引用类型 map声明 var map1 map[keytype] valuetype var map1 map[string] intmap可以…...

vulnhub-RAVEN:2(MYSQL-UDF提权,手工提权/工具自动提权)

镜像下载:Raven: 2 ~ VulnHub 实验环境:kali:192.168.78.128 vulnhub镜像:192.168.78.133 1、kali查看本地ip地址,以便使用nmap扫描ip段存活主机 2、nmap扫描IP段,发现靶机的IP地址为192.168.78.133 4、访问…...

如何完整地掌握一个机器学习模型

如何完整地掌握一个机器学习模型 要全面地学习、掌握一个机器学习模型,可以遵循以下步骤: 基础理论学习:了解该模型的背后数学原理和推导过程,包括假设、损失函数、优化方法等。 学习算法实现:通过查阅论文、教程或…...

Nevron Open Vision for .NET 2022.3 Crack

Nevron Open Vision for .NET 适用于 Blazor、WPF、WinForms 和 Xamarin.Mac 的领先用户界面组件 Nevron Open Vision for .NET 是一套高级 UI 组件,可帮助您从单个代码库开发功能丰富的 Web (Blazor WebAssembly) 和桌面 (WinFor…...

【Linux】冯诺依曼体系结构以及操作系统的初步认知

🏖️作者:malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、冯诺依曼体系结构二、操…...

盖雅工场重磅发布「劳动力账户」,助力企业实现全面工时成本管理

2023年5月10日,亚太地区领先的劳动力管理云服务商盖雅工场宣布,在原有的智能排班和实时考勤系统基础之上,正式推出全新模块「劳动力账户」,通过为企业里的每一位员工建立劳动力账户,实现工时与成本的全面管控&#xff…...

数据结构与算法基础(青岛大学-王卓)(2)

第二弹火爆来袭中 这波是单链表的内容整理,废话不多说,上小龙虾呀(又到了龙虾季节了,哎,口水直流了~~) beautiful的分割线 文章目录 第二弹火爆来袭中这波是单链表的内容整理,废话不多说,上小龙虾呀(又到了…...

水产亚硝酸盐偏高解决办法,饮用水亚硝酸盐超标

使用常规的离子交换树脂处理含硫酸盐水中的硝酸盐是困难的。因为树脂几乎交换了水中的所有的硫酸盐后,才与水中的硝酸盐交换。也就是说,硫酸盐的存在会降低树脂对硝酸盐的去除能力。采用Tulsimer A-62MP除硝酸盐树脂优先交换硝酸盐,对硝酸盐的…...

linux 设备树详解

设备树 描述设备树的文件叫做 DTS(Device Tree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、IIC 接口上接了哪些设备、SPI 接口上接了哪些设备等等。 树的主干就是系统总线&#x…...

STM32 学习笔记_7 定时器中断:输出比较

输出比较 电机相关比较重要。 OC Output Compare(IC 是输入捕获,CC代指这两个单元),用于输出一定频率和占空比的PWM波形。 右下角四个就是CCR。只有通用计时器和高级计时器有,共用一个cnt计数器,高级计数…...

HTML购物车示例(勾选、删除、添加和结算功能)

以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID。 以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID以下…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

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

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

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...