中国汽车行业变革进入下半场,智能化成为主旋律,也是行业各方参与者发力的重点。而“软件定义汽车”是智能化的内核,智驾和座舱是智能化的两大外显因素,体现智能化的水平和终端体验。
2024年3月12日,在2024第五届软件定义汽车论坛暨AUTOSAR中国日上,一汽软件研究工程院基础软件部总监李军坦言,汽车软件的复杂性在膨胀,然而与软件开发的复杂性相比,现阶段汽车企业的软件开发效率存在短板,现有的汽车企业软件生产力与软件复杂性之间存在较大的生产力鸿沟。而弥合软件生产力鸿沟的关键在于创新,软件研发需要不断创新才能跟上时代的步伐。
李军 | 一汽软件研究工程院 基础软件部总监
以下为演讲内容整理:
行业发展洞见
随着汽车电动化的普及,电池、电控、电芯等关键技术已基本满足用户需求,未来的重点将在于提升续航里程和充电速度,为用户提供更优质的体验。然而,在智能化方面,无论是从用户角度还是车企自身期望来看,都仍存在较大发展空间。自动驾驶和智能座舱的人机交互体验尚需提升,而这受限于芯片算力以及整车和软件架构的发展。
尽管软件具有灵活性,其差异化同样伴随着高昂的成本。随着整车软件复杂度的增加,软件已成为影响整车按时交付的关键因素。据统计,全球78%的车企交付延期都与软件问题有关。智能化软件产品的仿真测试和质量保证面临诸多挑战,缺乏足够的工具和方法支持。
与此同时,用户对汽车智能化功能的期望日益提高。智能驾驶和智能座舱等新技术的应用逐渐受到用户的认可,他们希望享受更便捷、更智能的驾驶和乘坐体验。这些期望推动了汽车软件产品的快速演进,但也带来了更高的复杂性和协同要求。
因此,汽车软件的导入和整合,包括整车控制系统和智能化生态体系的建立,都使得软件复杂度大幅提升。汽车软件的整体代码行数已超万行,需要多个核心控制器和子控制器系统之间的紧密协同,以确保整车的稳定运行。面对这些挑战,我们需要不断创新和突破,以满足用户对汽车智能化的更高期望。
整车软件日趋日益复杂,整车企业及其合作伙伴在软件开发效率上仍有巨大的提升空间。传统的软件开发或互联网软件开发,其硬件产品已高度标准化,无需过多关注硬件差异。然而,汽车软件却面临不同情况。目前,无论是座舱还是自动驾驶,其软件产品的硬件基础都相对割裂,芯片和控制器外设选择众多,接口尚未统一。因此,每款汽车软件产品的开发都呈现出定制化特征,导致复用率有限。
图源:演讲嘉宾素材
在中央计算平台全面实现之前,我们还面临算力和资源的约束,需要在这些限制条件下完成整车功能产品的开发,并满足用户日益增长的性能要求。此外,整车开发环节极为复杂,涉及数十甚至上百个不同团队的协作,这些团队可能分布在整车厂的各个部门或合作伙伴的开发团队中。由于软件之间的透明度有限,只能在接口层面进行衔接,导致在代码整车集成实施过程中存在诸多问题。
软件创新思考
针对上述问题,我们进行了深入思考,并提出了一些创新性的想法。我们计划从三个维度、六个方面来提升软件开发效率。
首先,提升开发理念,包括采用SOA架构设计和软件平台化策略。其次,运用更丰富的工具和手段,如AI赋能和数据驱动逻辑。最后,在模式上,通过构建软件开发的数字化管理体系,配合管理体系和整车复杂软件开发场景下的组织变革,以支持新体系下智能软件汽车软件的开发。
图源:演讲嘉宾素材
SOA作为一种开发方法,在整车软件领域已备受关注。虽然其理念简单,即将原子服务灵活配置给开发者,但在实际操作中却面临诸多挑战。传统的软件开发模式中,底层软件为上层提供接口,应用软件调用这些接口实现功能,并经过联调验证后稳定发布。然而,在SOA框架下,底层提供原子服务能力,上层软件可以灵活调用这些能力以实现丰富的操作体验。
然而,这种灵活性也带来了新的问题。我们无法保证原子服务能力在所有使用场景下的接口稳定性和可靠性,因为无法覆盖所有可能的调用情况,也无法完全通过联调解决上下层软件之间的接口调用和异常场景防护问题。因此,采用SOA架构后,对底层软件,尤其是基础能力的要求大大提高。它需要在任何场景下都能提供标准且足够的回馈。
同时,上层软件也期望调用的原子能力能够封装成一个理想的数字车模型,只要调用接口,就能得到稳定的结果。因此,在SOA的封装过程中,我们需要在传统的接口功能定义基础上增加稳定性设计。由于底层软件无法预知应用软件如何使用服务,之前的稳定性设计部分会转移到应用软件上,这会增加应用软件的开发复杂度、难度以及测试验证的难度。
因此,从整车视角来看,服务开发方法需要一个稳定的平台来支撑应用软件的稳定运行。每个SOA服务能力都应在硬件或环境场景发生变化时,提供稳定、正确或明确的错误反馈,以确保应用软件能够灵活组合功能。为此,我们在软件开发中会对SOA能力封装层进行大量设计,包括异常场景的防护,以营造一个理想的数字环境供应用软件运行。
关于软件平台化,虽然我们期望软件能够高度复用,以此降低成本并提升产品收益。然而,在现实中,汽车架构正经历着快速演进,从传统的ECU分布式架构到域控架构,再到未来的中央计算架构,各种架构并存。这导致我们在软件开发时,必须同时考虑这些不同的架构,并封装和抹平架构间的差异,以确保应用软件不受影响。
汽车的生命周期长达六至十年,因此,软件开发团队需要在三种架构上同时工作。此外,不同车型的配置和硬件差异也对软件平台化构成了挑战。
我们更倾向于将软件平台化转变为软件产品的货架化。这意味着我们需要将大软件平台细化为多个独立的软件模块,这些模块在功能维度上尽可能单一,同时与硬件支撑服务模块和中间件能力相结合,形成可组合的模式。这样,我们可以根据不同车型的需求,选择适合的软件模块进行组合,形成一个灵活且可裁减的软件平台。
另一方面,数据驱动正在赋能整个软件开发过程,无论是智能座舱的用户体验优化,还是智能驾驶的数据训练体系。我们更关注边缘数据和端侧数据的赋能,因为随着整车软件的SOA化,应用软件需要在不同车型和配置上灵活运行。边缘数据和端侧实时状态数据对于应用软件在端侧的动态运行调配至关重要,这确保了软件能在不同车型和车系上稳定运行,并支持复杂功能。
图源:演讲嘉宾素材
此外,AI技术也在改变软件开发的模式。它不仅能提升软件的质量和开发效率,还可以在代码自动生成、智能测试和bug分析等方面发挥重要作用,进一步提升整车软件开发的效率。
上述内容更多涉及技术手段提升整车复杂软件开发的方案,而管理手段同样重要。
汽车软件开发通常涉及庞大的团队,数百甚至上千人。每个团队成员效能的微小提升,都能为整个团队带来显著进步。因此,我们需要利用数字化手段、效能评估与支持工具,通过数据分析、日常工作数据提取与度量,来识别并解决开发过程中的问题。这包括软件、硬件仿真手段以及开发流程的梳理,旨在全面提升开发效率。
最后,技术开发往往受到团队或组织架构的制约。为实现软件货架化及智能化目标,软件开发的组织架构也需与技术发展相适应。例如,建立软硬解耦合的专业性工具团队,以及以独立技术平台为中心的组织架构,都能有效提升软件开发效率。这有助于融合传统的V字形整车开发流程与软件所期望的敏捷开发流程,既保证整车开发的稳定交付与质量,又发挥软件开发的敏捷迭代与演进特性。
图源:演讲嘉宾素材
(以上内容来自一汽软件研究工程院基础软件部总监李军于2024年3月12日在2024第五届软件定义汽车论坛暨AUTOSAR中国日发表的《车载软件开发的挑战与创新》主题演讲。)
文章来源于互联网:一汽软件研究工程院:弥合汽车软件生产力鸿沟?关键在于创新