车载计算平台工具链介绍

2023-10-31 15:26
图片
图 1 车载智能计算基础平台参考架构

完善的工具链对车载智能计算基础平台产品快速开发迭代、高质量交付具有关键作用,主要包含开发调试工具、测试仿真工具、持续集成工具、过程管理工具(见图 2)。工具链为汽车软件开发过程(V 模型、敏捷开发等)提供安全、易用、可扩展的支撑工具,并为各阶段建立数据流或工作流的联接,实现研发的数据统计和过程追溯。工具链应具备开放性、兼容性和互操作能力,能够适应各类业务场景,形成无缝协同的一体化平台,支持软件模块的复用,降低开发成本,提升开发效率。

图片
图 2 工具链构成


一、开发调试工具

开发调试工具是进行软件开发、配置、编译、调试、源码管理、版本管理和软件发布的可视化集成开发环境。开发调试工具需要支持的编程语言包括 C/C++、Rust、Python、Java 等。


1.1 开发工具


开发工具用于架构设计、模块定义以及通信模式搭建等任务。开发工具以图形化的方式创建和修改架构,简化系统架构设计的复杂性,并提供模块和接口的定义、配置功能,提高系统的可维护性和稳定性,同时支持多种通信协议和标准,能够设计和验证通信路径,能够扩展自动驾驶应用场景库,覆盖自动驾驶整体研发过程,具备采集、回放、清洗、标注的数据闭环能力。


1.2 配置工具


配置工具辅助实现软硬件抽象,屏蔽软硬件的差异性、复杂性,支撑产品模块化、标准化。配置工具一般包括基础软件配置工具和应用软件配置工具,支持模块化、标准化代码生成和验证。


1.3 调试工具


调试工具可支撑实时或离线的故障定位和问题分析,提高车载智能计算基础平台调试效率。调试工具主要包括标定工具、运行监控工具、录制与回放工具等,可以将产生的边角案例(Corner Case)保存下来,用于支撑自动驾驶场景系统失效故障分析。


1.4 集成工具


集成工具可将多个开发环境跨平台整合到一个工具环境中,提供无缝集成的软硬件基础设施和标准化接口。集成工具包含编辑器、编译器、调试器、构建工具和版本控制的应用程序,具备模块化设计、代码自动生成、组件配置和参数管理等功能,支持可扩展的自动驾驶应用场景库、车云一体化的敏捷集成开发模式。



二、测试仿真工具


测试仿真工具可支撑算法、软件的测试验证,以保证车载智能计算基础平台的质量和可靠性。测试仿真在保障软硬件功能符合需求定义的基础上,进一步满足功能安全、预期功能安全、网络安全等要求。


2.1 测试工具


测试工具具备测试用例自动化执行、测试流程标准化管理和报告生成等功能。测试工具用于单元测试、集成测试、系统测试等关键环节,支撑验证软硬件的功能、性能、安全和可靠等测试内容,帮助规范测试方法和测试流程。


2.2 仿真工具


仿真工具用于模拟自动驾驶运行场景及软硬件环境。仿真工具包括虚拟仿真工具和物理系统在环仿真工具,可以模拟车辆控制、静态场景、动态交通流、感知传感器等,支持自动驾驶设计运行场景及响应测试。仿真工具具备多种核心能力,包括测试场景库建设能力、仿真场景生成能力、场景孪生测试能力、云端大规模并行加速测试能力等。仿真测试根据不同阶段可分为模型在环、软件在环、处理器在环、硬件在环、车辆在环等。



三、持续集成工具


持续集成工具具有自动化的检出代码、编译构建、运行测试、结果记录、测试统计等功能,是实现敏捷开发流程及 OTA 更新安全上车质量保障的重要支撑。


DevOps 工具可用于执行自动驾驶算法和软件构建过程中的代码仓库管理、依赖管理、代码编译、代码分析、安全测试等任务。DevOps 工具可以减小算法集成与灌装上车的交付风险,缩短产品迭代周期,加强过程保障。


ModelOps 工具用于执行对自动驾驶 AI 模型的搜索、转换、压缩、测试与训练任务。ModelOps 工具可以提升模型质量及其开发速度,提升模型的推理响应速度,确保数据安全和隐私。



四、过程管理工具


过程管理工具可以全面地规约车载智能计算基础平台相关软件过程的需求、复用过去的过程经验,减少过程开发和改进中的重复劳动。


过程管理工具可为软件质量管理体系提供基于软件开发数据的客观证据,使产品研发过程满足 IATF16949、ASPICE、GB/T 34590、ISO 21434 等标准要求。


4.1 需求规约与管理工具


需求规约与管理工具用于需求获取、分析、评审、管理,保证需求的一致性和可追踪性,具备协作功能,可以实现多人在线协同。


需求规约与管理包括四种工具。需求获取工具支持汽车软件功能、性能效率、安全性、可靠性等需求内容的收集;需求分析与规约工具制定系统需求,生成软件需求,形成符合规范的规约描述;需求评审工具通过模型检查、形式化验证等自动化检测需求之间的冲突、不一致性或遗漏,提供相应的反馈和建议;需求管理工具支持需求追踪、需求变更,扩展、维护、追踪、可视化需求关联,可以生成报告或报表,为决策与规划提供依据。


4.2 任务和缺陷管理工具


任务管理工具提供各类开发任务的建立、分配、状态和进度管理、历史查询分析等功能。任务管理工具与代码版本管理工具之间需要建立任务与代码提交操作的关联关系,支撑对代码修改原因的深入回溯分析。缺陷管理工具为软件中发现的缺陷提供全生命周期的管理,实现缺陷的快速发现、全程追踪、及时消除和主动预防。


4.3 代码分析与追溯工具


代码分析与追溯工具用于跟踪、评估、优化代码质量,确保交付高质量、可追溯的软件产品。工具包括静态分析工具、动态分析工具和代码演化追溯工具。模型或代码静态分析通过程序分析等技术识别代码中的潜在缺陷。模型或代码动态分析通过持续监测和代码测试,确保代码符合开发规范,规避已知漏洞。代码演化追溯工具用于代码变化历史的分析,呈现问题引入、发现和修复的过程,可根据代码依赖关系进行回溯,找出问题的原因。


4.4 软件供应链安全工具


软件供应链安全工具用于检测商业或开源软件安全漏洞、许可证合规性等问题。汽车软件往往来源于不同的供应商,且包含开源组件,可能存在安全漏洞、许可证不合规、版本更新不及时32等问题。软件供应链安全工具可以实现软件组件级、源码级和二进制级的组成成分分析,构建软件物料清单,在此基础上实现安全风险分析、许可证合规分析、维护风险分析。