汽车电子行业开发者的内功心法:汽车软件开发V模型(瀑布模型)腾讯云开发者社区

金庸笔下有四大内功心法:《易筋经》、《九阴真经》、《九阳神功》和《神照经》,习武之人,必先修炼至高内功心法,再结合武功绝技,方可独步武林。

汽车软件开发过程中的V模型对行业内开发者早已是司空见惯的模型,由于该模型的构图形似字母V,所以俗称V模型。V模型核心思想是通过A-SPICE流程(汽车产业的软件流程改进和能力测定标准)来支持和管理整个开发流程,从需求到源代码的每个过程都有相应的测试。

V模型大体可划分为几个不同的阶段步骤即:功能需求、功能开发、软件开发、软件集成测试、功能集成测试、整车集成测试(系统合格性测试),如下图所示,左边为需求分析和设计开发的过程,右边则为针对左边的测试验证,左边的每个过程是与右边的过程正好相对应。

从系统需求到软件需求,再到软件的释放,需要工具对其进行管理,以达到可追溯,可记录的目的,目前市场主流的工具含有Door、ClearCase、GIT、SDOM等,也有公司自己研发的一些流程工具,当然这些工具的运作方式都遵循V流程的需求、研发和测试要求。

系统需求需要系统工程师完成。

基于项目的整体需求,以及软硬件整体定义,对系统逻辑架构进行整体定义,这部分工作包括:硬件功能定义,控制器与其他控制器通信定义,软件简要功能定义。这个过程并不会对具体的技术实现做出定义。

软件需求需要系统工程师完成。

根据项目规划,制定软件开发计划。

软件需求分析建立需求追踪矩阵,将软件需求映射到系统需求,确保软件要实现的系统需求全部覆盖。

成功实施这个过程的结果如下:

软件架构需要架构工程师完成。

架构工程师需要使用EA等架构软件画出整个控制器软件所有模块的输入输出接口、以及内部动态行为。

如果项目基于AUTOSAR开发,需要架构工程师配置应用层的所有组件,并输出每个组件的ARXML描述文件。

一般来说,还需要架构工程师输出架构文档。

软件单元设计需要软件开发工程师完成。

在此阶段,需要对每个组件内部的算法逻辑进行详细的内部设计。组件功能的详细设计需要与软件需求建立有效的对应关系。

如果是算法逻辑编码,建议使用Matlab进行模型开发,如果是接近底层的复杂驱动,一般是使用手写代码。

如果项目使用AUTOSAR架构,使用模型开发时需要导入arxml生成模型框架进行开发,使用手写代码进行开发时需要使用AUTOSAR工具生成的组件代码框架进行开发。

需要将代码经过多次代码审查和优化之后,将最终版本上传至代码库,以实现最佳的可靠性和性能。

组件单元测试一般需要软件开发工程师完成,也可以让测试工程师完成。

当进行单元测试通过后,将会将软件编译成ECU可执行的文件,比如Hex格式的文件,将其刷写到ECU进行集成测试(或称HIL测试),如果只是测试底层软件,那么一般只需要额外的硬件负载箱支持就行,比如用负载箱来模拟一些传感器信号输入,或制造一些执行器的短路和开路故障;如果测试包括应用层软件,那么就还需要物理模型支持才行,比如电机控制就需要电机的物理模型,变速箱控制可能就需要整个动力传动系统的模型才行。

单元测试与软件单元设计对应。

单元测试是根据软件单元设计,进行代码级别上进行的测试。

单元测试一般可以通过Matlab和Tessy等工具进行。

集成测试需要测试工程师完成。

集成测试与软件需求对应。

集成测试将各个组成部分整合入一个软件系统中之后,最后进行软件的集成测试。根据定义的需求,测试相应的功能是否满足软件需求。

成功实施本过程的结果如下:

系统测试需要测试工程师完成。

系统测试与系统需求对应。

因为软件给各个ECU提供了相应的功能,因此在集成测试中,需要将软件烧录至硬件中。然后ECU要与其他电子系统组件集成起来,比如传感器和执行器。在接下来的系统综合测试中,对所有系统设备的交互响应进行评估。

汽车软件开发的过程中有严格的追溯性和一致性要求,每个阶段的过程要求、使用的工具方法和人员要求,前一阶段的输出交付物作为下一阶段输入,在每个阶段完成后对交付物进行验证,在软件集成后在最后阶段进行确认与软件需求的一致性。概览如下图所示:

特斯拉人工智能总监AndrejKarparthy在他的一篇技术博客中提出构建软件2.0技术栈的观点,代码正在从软件1.0(由人类编写的代码)过渡到软件2.0(由优化编写的代码,以神经网络训练的形式编写)。

软件1.0是我们熟悉的V模型(瀑布模型),它是用Python、C++、C等语言书写的。它包括程序员对计算机的明确说明,通过编写每行代码,程序员会用一些可取的行为识别程序空间中的特定点。

软件1.0的工程方法遵循以下4个步骤:

软件2.0时代正在逐渐到来,目前AI算法大量应用于自然语言识别、行为分析、决策协助、身份识别等不涉及公众安全的领域,也在自动驾驶、医疗诊断等安全领域也在逐步应用。对于安全关键系统,系统工程方法学是否还适合软件2.0时代,功能安全标准如IEC61508、ISO26262、EN50128不同行业安全软件开发所遵循的标准,是否还能指导软件2.0的开发实践,下面从开发过程、软件需求、开发工具三个方面谈谈想法。

软件1.0的开发生命周期模型按照系统工程V模型的方式开发,从上到下是瀑布式的,规定每个阶段的过程要求、使用的工具方法和人员要求,前一阶段的输出交付物作为下一阶段输入,在每个阶段完成后对交付物进行验证,在软件集成后在最后阶段进行确认与软件需求的一致性。在实际应用中,设计实现阶段和测试阶段,会规划小版本之间的迭代,从整体过程来看还是V模型。

在软件2.0中,软件的行为需求很大程度上取决于所使用的数据集(datasets),数据集不同于传统意义上的数据,以往的数据如传感器数据、系统的参数(如配置参数、校准数据等)或系统使用的数据库(如导航数据库、障碍物数据库等),这些数据可以一定程度上确定系统的行为,但它们并不描述这种行为的逻辑。而机器学习使用的数据集不仅用来提取信息,而且用来建立模型,用来处理其他数据并确定一个系统的行为,确定安全关键系统的需求,等同于软件需求。当软件需求阶段无法获得完整的训练数据集,从V模型来说,后面的架构、设计实现阶段也无法开始。

软件2.0的开发模型始于数据,可以划分为数据管理、模型训练、模型验证、模型部署,这四个阶段不断往复迭代,不是一次性完成的。

既然软件2.0的系统行为主要由数据集决定,系统是否符合其预期功能,很大程度上取决于数据集的质量。要证明数据集对于软件的预期功能在系统的操作环境下是足够的,对于认证来说是非常大的挑战。与软件1.0的需求对比,有以下不同:

ISO26262软件单元测试用例生成推荐方法

传统软件开发中已建立完善的工具链用于支持开发,集成开发环境,编辑器,编译器,调试器,git集成,单元测试,集成测试工具,在功能安全软件工具的鉴定中,根据工具对软件安全性影响的不同,划分为不同的级别,例如ISO26262-8对软件工具的TCL1、TCL2和TCL3分级。在软件2.0中,也可以按照类似的分类对工具进行分级,但目前还没有完善的开发工具链和如何对工具鉴定的标准。

从软件领域的发展来看,软件2.0所占的规模越来越大,已出现机器自动生成的代码,当这类软件应用于安全关键系统时,有可能彻底改变既有软件的开发模式,需要识别与现有标准的差异,安全关键领域如航空航天、铁路、汽车标准,采用协作的方式在不同领域之间获取经验;对应用软件2.0产品的鉴定也不再是一次性的,与软件2.0生命周期类似,是一个迭代的过程,评估系统运行性能表现是重要环节;软件的变更会更加频繁,如智能网联汽车的OTA功能,对软件变更的评估,应考虑其服务期限、运行设计域差异、产品异常行为记录报告等所有既有数据记录。

THE END
1.整车架构工程师整车架构工程师招聘猎聘整车架构工程师招聘频道为您提供大量的整车架构工程师招聘信息,有超过10000多整车架构工程师招聘信息任你选寻,招聘整车架构工程师人才就来猎聘整车架构工程师招聘!求职找工作就用猎聘聊。https://www.liepin.com/s/9395c07eff86d68dba3e118198987d6e/
2.车载网络工程师岗位职责(工作内容,是做什么的)车载网络工程师岗位职责来自新拓尼克(北京)科技研发中心有限公司 职责描述: 1、定义整车网络架构,开发需求标准; 2、设计整车若干ECU间交互报文及信号、诊断协议及数据; 3、定义整车网络测试标准、编写测试程序、执行测试并分析问题; 4、开发车载网络自动化测试系统; https://www.jobui.com/gangwei/chezaiwangluogongchengshi/
3.「重庆大渡口区电气架构工程师招聘」电气架构工程师 已下线 8千-1.5万 杭州虬龙科技有限公司 重庆 1-3年 本科 05-15 工作地址 茄子溪都市工业园职位描述 岗位职责: 1、负责电动摩托车整车电气系统架构的构建及规划,负责制订整车电气系统架构方案;2、负责整车CAN网络架构设计和网络规范制定,负责整车CAN网络通信矩阵、通信数据库、诊断协议及诊断数据库https://m.zhaopin.com/jobs/CC336828386J00336490307.htm
4.开启报名AES2024第五届中国国际汽车以太网峰会邀您洞见车载小米 架构工程师 本次峰会的主题都挺接地气的,给大家的实际应用提供了解决方案和思路 东风汽车技术中心 网络工程师 会上不少嘉宾分享了TSN技术落地的难点痛点,以及TSN相关标准,为以后的工作具有指导意义 奇瑞捷豹路虎 高级网络架构工程师 活动主办方认真负责,活动嘉宾质量也很高,既有学术教授的,也有业内专家,收益匪浅https://www.techweb.com.cn/news/2024-01-10/2939456.shtml
5.华为造车全面SOA化,详解华为iDVP数字底座基础管理框架主要负责分布式通信、整车OTA、功能安全、诊断等基本功能。 1.5 工具链 工具链可以提供车辆软件开发过程中的工具,匹配软件开发工作流程。 按照工作流程,工具链产品可分为:整车级架构设计工具——包括iDVP API服务定义库、iDVP SWC工程库、iDVP网络拓扑库等。 https://www.dongchedi.com/article/7289878178812969530
6.谈谈整车电子电气架构EEAee和eea谈谈整车电子电气架构EEA 汽车智能化、电子化程度的不断提高,这是大背景,这个大家肯定没异议。毕竟客户爸爸们现在很喜欢,未来会更喜欢。 这时候来了三批工程师要搞定这个事,他们首先要解决的就是怎么把车上这么多电子设备连接起来,这个设计过程就是电子电器架构https://blog.csdn.net/usstmiracle/article/details/108973171
7.鉴源实验室丨汽车电子架构和CAN网络基础系列简介:为了让不了解汽车电子零部件测试领域内知识的工程师尽快入门,或者让其他相关人员对本领域内的测试内容有所认识,我们编制了汽车电子测试相关的此系列文章。希望对阅读者有所帮助。本系列文章从汽车电子架构和网络历史开始,逐步往汽车电子零部件的嵌入式软件,零部件的通用基础功能各网络诊断服务等方面内容,从粗到https://www.yoojia.com/ask/17-11627525242521739384.html
8.BMS架构工程师概念bms三级架构mob64ca13fba42b的技术博客BMS主要由BMU主控器、CSC从控制器、CSU均衡模块、HVU高压控制器、BTU电池状态指示单元及GPS通讯模块,从小到主从一体架构的电动工具、电动单车、电动叉车、智能机器人、IOT智能家居、轻混合动力汽车到主从分离式电动汽车(纯电动、插电式混合动力)、电动船舶等,再到三层架构的储能系统(EMS)。 https://blog.51cto.com/u_16213597/8985742
9.如何设计一种安全的最优的车载异构网络系统车载以太网的加入就会使得车载网路系统变得越来越复杂,那么在这种不可逆转的大趋势大背景下,我们该如何保证通信延迟以及多数据并发的时候依然能够保证车载网络架构满足功能要求呢?如何才能设计出一种安全的、最优的车载异构网络系统呢? 基于上述车载网络日趋复杂的背景下,车载网络工程师/架构师急需一款专业并且功能强大的https://www.elecfans.com/d/1831906.html
10.上海机动车检测认证技术研究中心有限公司人脉圈怎么样发现77+共有56名员工在此公司工作过,他们的职位有汽车整车认证工程师、电池检测工程师、仿真工程师、交通仿真工程师、动力电池工程师、工程师等,他们擅长管理。办公地点位于上海市。 任先生 上海机动车检测认证技术研究中心有限公司·汽车整车认证工程师 影响力91访客286上海 https://maimai.cn/mai/FslyMIBcIr9xem0u6m7edADN4hqS8PHQmF0a3FuelRY
11.自动驾驶整车企业53个重要岗位及紧俏程度排名另一类是算法工程师,他们主要是分布在感知、决策、路径规划、地图定位、系统控制、多领域融合等算法技术的研发中。其中感知融合和定位融合是自动驾驶的基础要素,在其中扮演了重要角色。一起来看看紧俏程度和岗位职责吧~ 系统工程师类(整车) 1.智能驾驶系统架构https://mp.weixin.qq.com/s?__biz=MzU2NjU3OTc5NA==&mid=2247570311&idx=1&sn=efb8aca3e7c9b425ac37ad1b5e5aab94&chksm=fca9d4bacbde5dacde417e14600ebddf14bb3aab3f8ef36f9e4ee25cbd151b735b7767a50819&scene=27
12.保时捷工程技术研发(上海)有限公司ADAS开发高级工程师 30-40万/年 Responsibilities工作职责 2021-08-07 Engineer Data Analysis 20-30万/年 本科以上 Responsibilities工作职责 2021-08-05 整车网络架构工程师 20-30万/年 本科以上 Job Purpose 工作目的 2021-08-05 UI UX工程师 20-30万/年 本科以上 Responsibilities工作职责..https://www.11467.com/qiye/71271159.htm