| 编辑推荐: |
本文主要介绍了Automotive SPICE流程分类框架及其如何融入V模型开发、AI机器学习工程和可追溯性要求,以系统化规范汽车行业软件开发与采购过程,希望对你的学习有帮助。
本文来自于系统及流程思考,由火龙果软件Alice编辑,推荐。 |
|
1. 流程分类的表格形式
Automotive SPICE 的过程参考模型(Process Reference Model)是一个标准化的框架,它定义了汽车行业中系统和软件开发与采购的各个过程,包括它们的用途、预期结果和基本实践。
如下根据APQC的流程分类框架,对ASPICE中的流程进行分类整理后的表格。从如下表格我们可以看到ASPICE建议汽车相关的整车厂、零部件供应商应该具备的业务能力。比如需要具备供应商监控的能力、系统分析的能力、AI方面的能力等。
同时,针对每个业务能力的输出,在《 Automotive-SPICE-PAM-v40.pdf》中也有详细介绍,后续的文章中我们也会针对每个业务能力的输出进行简单介绍。
在考虑每个业务能力时可以参考ASPICE规定的流程成熟度评估模型,如此可以对每个业务能力的成熟度有更深刻的认识。比如对于供应商监控的能力,按照流程成熟度评估模型就可以全面有层次地考虑与分析供应商监控对应的流程:有没有流程、流程是否可以得到对应的结果、流程是否标准化、流程是否被监控、流程是否被持续优化、流程是否在持续创新、流程改善是否在闭环状态中等。
下图是ASPICE流程分类框架的内容:
如下是流程分类框架的表格形式:
| 过程 分类 |
过程组 |
过程ID |
过程名称 |
| 主要生命周期过程 |
采购过程组 (ACQ) |
ACQ.4 |
供应商监控 |
| 供应过程组 (SPL) |
SPL.2 |
产品发布 |
| 系统工程过程组 (SYS) |
SYS.1 |
需求获取 |
| SYS.2 |
系统需求分析 |
| SYS.3 |
系统架构设计 |
| SYS.4 |
系统集成与集成验证 |
| SYS.5 |
系统验证 |
| 软件工程过程组 (SWE) |
SWE.1 |
软件需求分析 |
| SWE.2 |
软件架构设计 |
| SWE.3 |
软件详细设计与单元构建 |
| SWE.4 |
软件单元验证 |
| SWE.5 |
软件组件验证与集成验证 |
| SWE.6 |
软件验证 |
| 验证过程组 (VAL) |
VAL.1 |
验证 |
| 机器学习工程过程组 (MLE) |
MLE.1 |
机器学习需求分析 |
| MLE.2 |
机器学习架构 |
| MLE.3 |
机器学习训练 |
| MLE.4 |
机器学习模型测试 |
| 硬件工程过程组 (HWE) |
HWE.1 |
硬件需求分析 |
| HWE.2 |
硬件设计 |
| HWE.3 |
针对硬件设计的验证 |
| HWE.4 |
针对硬件需求的验证 |
| 支持生命周期过程 |
支持过程组 (SUP) |
SUP.1 |
质量保证 |
| SUP.8 |
配置管理 |
| SUP.9 |
问题解决管理 |
| SUP.10 |
变更请求管理 |
| SUP.11 |
机器学习数据管理 |
| 组织生命周期过程 |
管理过程组 (MAN) |
MAN.3 |
项目管理 |
| MAN.5 |
风险管理 |
| MAN.6 |
测量 |
| 过程改进过程组 (PIM) |
PIM.3 |
过程改进 |
| 重用过程组 (REU) |
REU.2 |
可重用产品管理 |
2. 流程分类框架遵循V字形开发模型
Automotive SPICE 框架中一个被称为“即插即用”的核心概念。其核心思想是:
- 分层结构: 框架的最顶层是通用的系统工程过程,它们以“V”字形开发模型来组织,代表了从需求到测试的完整系统开发生命周期。
- 可扩展性/灵活性: 根据具体开发的产品类型(例如,如果是硬件产品,或软件产品),可以灵活地“插入”或添加相应领域的特定工程过程。这意味着,如果项目涉及硬件,就可以纳入硬件工程(HWE)过程;如果涉及软件,则纳入软件工程(SWE)过程。这种模块化的设计使得评估范围可以根据项目的具体需求进行定制。
- 领域无关性: 除了核心的系统工程和领域特定工程过程之外,其他如项目管理和支持性过程(例如质量保证、配置管理等)被设计成是通用的、不依赖于特定领域的。这意味着它们可以适用于整个系统层面,也可以应用于软件、硬件等各个具体领域。
简而言之,这个概念使得 Automotive SPICE 框架能够灵活地适应不同类型产品的开发和评估需求,通过“插入”特定领域的过程来定制,同时保持管理和支持过程的通用性 3. 开发过程融入AI 机器学习工程 (MLE) 过程融入工程 V 字形周期中,并得到集成和应用。如下图所示:
分析如下: V 字形周期集成: MLE 过程被整合到工程 V 字形周期中。这意味着机器学习的开发活动遵循与传统软件或系统开发类似的生命周期阶段,从需求分析到测试和集成。 高度迭代性: MLE 过程通常以高度迭代的方式使用。这反映了机器学习开发中常见的循环特性,例如模型训练、评估和调优的反复进行。 与软件工程的结合: 在软件架构设计阶段,需要识别出哪些软件元素将采用机器学习进行开发。
- 对于这些基于机器学习的软件元素,适用 MLE 过程。
- 而对于其他非机器学习的软件组件,则继续适用传统的软件详细设计与单元构建 (SWE.3) 和软件单元验证 (SWE.4) 过程。
- ML-based 软件元素经过成功测试后,需要通过应用软件集成与集成测试 (SWE.5) 过程与其他软件组件进行集成。
数据管理的重要性: 上图还提及了 MLE 过程组内部以及与支持过程 SUP.11“机器学习数据管理”之间的相互依赖关系。 这强调了机器学习开发中数据管理的关键作用。 总而言之, Automotive SPICE 引入了专门的 MLE 过程,并在 V 字形开发模型中明确其与现有工程过程(特别是软件工程和数据管理)的接口和迭代特性,从而适应和规范机器学习在汽车系统开发中的应用。
4. 机器学习架构实例 下图展示了一个机器学习(ML)架构的示例,描述了基于 ML 的软件元素的整体结构,以及该 ML 软件元素内部和与其他软件元素的接口。
ASPICE通过这个实例详细阐述了 Automotive SPICE 中对机器学习(ML)架构的理解和要求。
4.1 ML 架构的构成
- 核心是 ML 模型: 这是 ML 架构的主要部分,是执行学习和推理的核心。
- 辅助的“经典”软件组件: ML 架构不仅仅是 ML 模型本身,还包括其他传统的软件组件。这些组件是按照成熟的软件工程过程(SWE.3 详细设计和 SWE.4 单元验证)开发的,它们的功能是支持 ML 模型的生命周期,包括:
- 训练 (train):例如数据预处理模块、模型训练框架接口等。
- 部署 (deploy):例如模型加载器、推理引擎封装、运行时环境等。
- 测试 (test):例如测试数据管理、模型评估指标计算、测试框架等。
4.2 模型内部细节 ML 架构还需深入到 ML 模型的内部结构,如神经网络的“层 (layers)”、“激活函数 (activation functions)”、“损失函数 (loss function)”和“反向传播 (backpropagation)”机制。这表明对 ML 模型的理解和文档化需要达到一定的技术深度。
4.3 ML 开发的迭代性与架构变化 超参数的重要性与管理: 强调在训练过程中超参数会不断调整。因此,规范建议在架构中明确超参数的推荐范围和初始值。这反映了 ML 模型的性能对超参数的敏感性,以及需要对其进行版本控制和管理。
4.4 ML 架构的演进 明确指出由于 ML 软件元素开发的高度迭代性(这是 ML 开发的固有特点),ML 架构本身也可能频繁发生变化。这意味着 ML 架构文档需要持续更新和适应。
4.5 训练与部署架构的差异
- 分离的架构考量: 一个重要的洞察是,用于训练模型的 ML 架构可能与最终部署到车辆中集成的模型的架构不同。
- 差异的文档化: 这种差异必须作为 ML 架构文档的一部分进行记录。例如,训练时可能需要更多的数据预处理、日志记录和调试组件,而在部署时,为了效率和资源限制,这些组件可能会被移除或简化。理解并管理这些差异对于确保部署模型的正确性和高效性至关重要。
4.6 总结
- ML 不仅仅是模型: Automotive SPICE 强调,在汽车领域开发 ML 功能,不仅仅是开发一个机器学习模型,更重要的是围绕这个模型构建一个完整的、可工程化的软件体系。
- 工程化和规范化: 通过引用 SWE.3 和 SWE.4,SPICE 旨在将传统的、成熟的软件工程实践引入到 ML 辅助组件的开发中,从而提升整个 ML 系统的质量和可靠性。
- 适应 ML 特性: 该框架认识到 ML 开发的独特挑战,如迭代性、超参数管理以及训练与部署架构可能存在的差异,并要求对其进行明确的规划和文档化。
- 整体视图的重要性: 对 ML 架构的描述要求包含模型内部细节和与外部软件元素的接口,这促使开发者从一个系统性的角度来设计和评估 ML 解决方案 ,而不是仅仅关注模型本身的算法。
- 可追溯性和透明度: 强调记录超参数范围、架构变化和训练/部署架构差异,有助于提高 ML 开发过程的可追溯性和透明度,这对于汽车行业的功能安全和可靠性至关重要。
5. 流程参考模型强调可追溯性与一致性
下图是 系统架构与软件设计 之间的 可追溯性与一致性
下图是 系统架构与硬件设计 之间的 可追溯性与一致性
下图是 机器学习架构之间 的 可追溯性与一致性
可追溯性 确保了产品生命周期中不同阶段的工作产品之间存在明确的链接,从而可以追踪元素的来源、演变和影响。 可追溯性是实现功能安全、提高开发效率和支持法规遵从性的基石。在汽车行业,当出现故障或需要进行产品召回时,能够快速准确地追溯到根本原因(例如,哪个需求引发了缺陷,哪个设计导致了问题),这对于快速响应和最小化损失至关重要。Automotive SPICE 通过细化每个过程中的“双向可追溯”要求和具体工作产品的记录内容,将可追溯性嵌入到日常开发活动中。 一致性 确保了产品和过程在不同视图、不同阶段和不同利益相关者之间保持连贯和无冲突。一致性是避免开发过程中出现冲突、返工和缺陷的关键。在复杂的汽车软件开发中,多个团队、不同技术栈和迭代周期并存,保持信息和工作产品的一致性极具挑战性。Automotive SPICE 通过强制执行多方协议、严格的变更控制、定期的评审以及对关键工作产品的详细记录要求,来系统地建立和维护这种一致性,从而降低集成风险并提升最终产品的可靠性。 总而言之, 可追溯性和一致性 并非 Automotive SPICE 中的独立过程,而是贯穿于所有相关过程和工作产品中的核心原则。它们共同构成了框架的骨架,确保了汽车软件产品的高质量、高可靠性以及对行业标准的严格遵从。
|