我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。
老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的豁达,往不幸上面喷“香水”来掩盖问题。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。
时间不知不觉中,快要来到元旦。2024快要结束,2025又开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。
本文主要讲述软件革命⸺功能独立,基础软件平台创造新机遇。
一、背景信息
随着汽车逐渐成为“轮子上的电脑”,车载软件在整车BOM(物料清单)中的占比显著增加,这对传统车企的架构、研发体系、流程和观念都提出了严峻的挑战。
传统ECU(电子控制单元)架构及其附带的软件在面对复杂的车载软件集成需求时显得力不从心。功能之间的紧密关联导致无法实现差异化,用户无法感知到功能的差异性,同时产生了大量冗余和臃肿的软件代码。此外,随着跨终端应用和服务需求的增加,需要为不同功能设定独立的生命周期管理与迭代,这进一步加剧了传统架构的局限性。
传统车企的架构及其背后的研发体系、流程和观念在面对这些挑战时显得捉襟见肘。软件能力的缺失和日益复杂的软件集成使得车企不得不将大量技术、资金与时间投入到查漏补缺中,而原有的研发重点则被迫忽视或推延。这种“不断救火”的恶性循环不仅影响了车企的研发效率和产品质量,还导致了资源的浪费和成本的增加。
二、SOA(服务导向架构)带来软件新机遇
将功能独立出来,并将架构从“信号导向”转变为“服务导向”(SOA)的观点,正是汽车行业在智能化、网联化转型过程中的重要趋势。SOA(Service-Oriented Architecture,面向服务的架构)作为一种架构类型或指导思想,其核心要义确实如您所述,包括用抽象层分离软件与硬件、用一套基础软件平台承载独立的功能、以及用功能集的方式增加软件复用率:
1、用抽象层分离软件与硬件:
在SOA架构中,抽象层起到了至关重要的作用。它使得软件可以在不同的硬件平台上运行,而无需关心底层硬件的具体实现。这种分离提高了系统的灵活性和可扩展性,使得软件可以更容易地适应不同的硬件环境和需求。
抽象层的引入还为实现软硬件的完全分离以及域融合提供了重要基础。这有助于降低系统的复杂性和冗余度,提高整体性能和可靠性。
2、用一套基础软件平台承载独立的功能:
在SOA架构中,各个功能被设计为独立的、可重用的服务。这些服务可以被不同的应用程序和业务场景复用,从而提高了开发效率和系统的可维护性。
一套统一的基础软件平台可以承载这些独立的功能服务。这些功能可以是传统的Blackbox(黑盒)功能,也可以是全新的智能网联功能,甚至可以是存在于云端和其他终端设备的功能。这种设计使得系统可以更加灵活地组合和调用不同的服务,以满足不同的业务需求。
3、用功能集的方式增加软件复用率:
通过将功能设计为独立的、可重用的服务,并构建功能集(Function Catalog),可以显著提高软件的复用率。这有助于降低开发成本和时间,提高系统的质量和稳定性。
功能集还可以促进不同系统和服务之间的互操作性和跨平台的兼容性。这使得车企可以更加高效地整合和利用现有的技术和资源,加速智能化、网联化转型的进程。
总之,将功能独立出来,并将架构从“信号导向”转变为“服务导向”(SOA)是汽车行业在智能化、网联化转型过程中的重要趋势。SOA架构的核心要义包括用抽象层分离软件与硬件、用一套基础软件平台承载独立的功能、以及用功能集的方式增加软件复用率。这些要义的实现将有助于车企提高系统的灵活性和可扩展性、降低开发成本和时间、提高系统的质量和稳定性,从而加速智能化、网联化转型的进程。
SOA(Service-Oriented Architecture,面向服务的架构)在汽车行业中的应用,确实展现了其强大的多功能、多终端无缝连接能力。通过SOA架构,车企可以高效地整合和利用传统ECU功能、独立的智能网联服务、云端服务、智慧交通体系内的服务以及其他终端设备,实现功能之间的高效沟通和协作。
随着SOA架构的广泛应用,基础软件平台解决方案将成为车企需要把握的价值高地。这一解决方案包含了抽象软件层和基础服务层(包括OS、车内网络、诊断等固件),为车企提供了强大的软件支撑和灵活性。通过这一平台,车企可以更加高效地开发、部署和管理车载软件,提高系统的整体性能和可靠性。
同时,SOA架构也为供应商带来了全新的产品机遇。这些机遇不仅限于软件平台本身以及端到端应用软件的提供,还包括相关的服务提供,如云服务、OTA(Over-The-Air,空中下载技术)服务等。供应商可以依托SOA架构,为车企提供更加全面、专业的解决方案和服务,共同推动汽车行业的智能化、网联化转型。
三、软件的工业化生产
“软件工厂”理念在汽车行业中的应用,确实展现了ICT(信息通信技术)行业与汽车行业融合的趋势。随着车载软件代码量的不断增加,汽车行业玩家开始借鉴ICT行业的成功经验,通过打造软件工厂来提高软件开发的效率和质量。
戴姆勒旗下的全资软件开发公司MBition正在打造的软件工厂,正是这一趋势的缩影。通过对软件组件的标准化、结构化运用,软件工厂能够实现快速开发,将软件开发从“定制化手工制作”转变为“自动化产线制造”。这种转变不仅提高了软件产品的一致性和品质,还大大提升了开发效率。
软件工厂为开发者提供了可行的软件框架、配套的开发指令、预设的程序模板、可复用的代码以及伴随开发进程可以连续测试的环境。这些工具和环境使得开发者能够更加高效地拆解需求模块,并将其分配至各个“产品线”。每个产品线再根据新需求识别可以复用和需要新开发的部分,判断开发工作所需资源,最后部署开发、测试工具并完成任务。
相比于传统的“手工”开发模式,软件工厂具有以下显著优势:
-> 提升软件产品的一致性和品质:通过标准化、结构化的软件组件和流程,软件工厂能够确保每个软件产品都符合既定的标准和规范,从而提高产品的一致性和品质。
-> 提高开发效率:软件工厂通过提供可复用的代码和模板,以及自动化的开发和测试工具,能够显著缩短开发周期,提高开发效率。
-> 提前识别开发工作量,前置风险:在软件工厂中,开发者能够根据现有能力拆解需求模块,并判断开发工作所需资源。这使得车企能够提前识别开发工作量,前置风险,从而更加准确地预测整个开发和部署流程。
-> 提升车企对软件工作的资源配置和进程管控能力:通过软件工厂,车企能够更加灵活地调配资源,优化开发流程,从而实现对软件工作的有效管控。
搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者