1. 课程导入

各位好,我是老张。做了十几年汽车软件,今天咱们聊聊 ASPICE。

很多人第一次听到 ASPICE,觉得是个高大上的标准。其实说白了,它就是一套告诉你「怎么把汽车软件开发好」的流程框架。我刚开始接触时也觉得复杂,后来发现,它就是把那些优秀工程师的做事习惯,总结成了可复用的流程。

1.1 历史背景:为什么会有 ASPICE?

故事要从 2000 年代初说起。那时候汽车电子越来越复杂,但开发方式还很原始。我记得有个项目,ECU 软件出了问题,团队花了三周才定位到是需求写错了。这种事在当时太常见了。

为什么会这样?因为没有统一的开发标准。各家车企各搞一套,供应商今天按 A 的要求做,明天又要满足 B 的规范,质量完全靠个人经验。

2005 年,欧洲主要车企联合起来,基于 ISO 15504(也就是 SPICE)搞了个汽车行业的专用版本——ASPICE。它的全称是 Automotive SPICE,专门用来评估汽车软件开发过程的能力。

时间 事件 意义
2005 ASPICE 1.0 发布 汽车行业有了自己的过程评估标准
2007 ASPICE 2.0 增加了对系统级过程的关注
2015 ASPICE 3.0 引入硬件过程,覆盖更全面
2017 ASPICE 3.1 当前主流版本,细化了评估规则

核心要点:ASPICE 不是凭空造出来的,它是汽车行业对软件质量失控的回应。说白了,就是大家被坑怕了,才决定统一标准。

1.2 核心价值:它到底能带来什么?

我经常被问到:「老张,我们公司做 ASPICE 评估,到底图什么?」

答案其实很简单——可预测性。

没有 ASPICE 的时候,项目能不能按时交付、质量好不好,全看团队里有没有大神。有了 ASPICE,你就能把「靠运气」变成「靠流程」。我个人习惯用三个词概括它的价值:

  • 透明:每个阶段做什么、产出什么,一目了然
  • 可控:出了问题能快速定位,知道是需求、设计还是测试的锅
  • 可改进:评估结果告诉你哪里弱,下次怎么改

举个例子。我曾经参与过一个项目,客户要求 ASPICE CL2 级。刚开始团队很抵触,觉得流程太繁琐。但做到一半,需求变更来了三次。要是以前,肯定乱成一锅粥。但因为有了 ASPICE 的变更管理流程,每次变更都有记录、有评审、有回归测试,最后项目反而提前两周交付了。

我的经验:别把 ASPICE 当成负担。它就像你开车时的导航,虽然有时候会提醒你绕路,但总比迷路强。

1.3 与 ISO 26262 的关系:两个标准怎么配合?

很多人搞不清 ASPICE 和 ISO 26262 的区别。我打个比方:

  • ISO 26262 是「做什么」——它告诉你安全目标是什么,比如「这个功能失效的概率要低于 10^-8」
  • ASPICE 是「怎么做」——它告诉你用什么流程来保证这些安全目标能实现

两者不是替代关系,而是互补关系。我见过不少项目,ISO 26262 的安全计划写得漂漂亮亮,但实际开发流程一塌糊涂。结果呢?安全评审时发现,需求没追溯、测试没覆盖,安全目标根本没法验证。

维度 ASPICE ISO 26262
关注点 过程能力 功能安全
核心问题 流程是否规范 风险是否可控
评估对象 开发过程 产品/系统
输出 能力等级(CL1~CL5) ASIL 等级(A~D)
典型应用 供应商能力评估 安全认证

注意:很多客户现在要求供应商同时通过 ASPICE CL2 和 ISO 26262 ASIL B 以上认证。别想着只做一个就能蒙混过关,两个都得抓。

1.4 评估模型概览:一张图看懂结构

ASPICE 的评估模型,说白了就是两大部分:过程参考模型(PRM) 和 过程评估模型(PAM)。

PRM 定义了有哪些过程,PAM 定义了怎么评估这些过程。我习惯用下面这张图来给团队做培训:

ASPICE 评估模型结构 ASPICE 评估模型 过程参考模型 (PRM) 过程评估模型 (PAM) 系统工程过程组 软件工程过程组 能力等级 (CL1~CL5) 评估指标 SYS.1 需求分析 SWE.1 软件需求 SWE.6 软件测试 CL1: 已执行 BP/PA 指标 关键说明 • PRM 定义了 32 个过程,分为 3 个过程组 • PAM 定义了 6 个能力等级,从 CL0(不完整)到 CL5(优化中) • 评估时,PRM 和 PAM 组合使用:对每个过程评定能力等级

嗯,这张图我每次培训都会用。你注意看,左边 PRM 定义了「有哪些事要做」,右边 PAM 定义了「做得怎么样」。评估的时候,就是把两者结合起来看。

1.5 过程组与能力等级

ASPICE 3.1 定义了 32 个过程,分成三大组:

  • 系统工程过程组(SYS):从系统需求到系统测试,共 4 个过程
  • 软件工程过程组(SWE):从软件需求到软件测试,共 6 个过程
  • 支持过程组(SUP):配置管理、质量保证等,共 8 个过程

能力等级从 CL0 到 CL5,共 6 级。我见过最多的要求是 CL2(已管理级),也就是「流程有定义、有执行、有证据」。说实话,能做到 CL2 的团队,在行业内已经算不错的了。

等级 名称 核心要求
CL0 不完整 过程未执行或部分执行
CL1 已执行 过程被执行,有产出物
CL2 已管理 过程被规划、监控、调整
CL3 已建立 过程基于组织级标准
CL4 可预测 过程被量化管理
CL5 优化中 过程持续改进

避坑指南:我曾经见过一个团队,为了冲 CL3,花了大半年写流程文档。结果评估时发现,文档写得漂亮,但实际开发还是老一套。记住,ASPICE 评估的是「你实际怎么做」,不是「你文档怎么写」。

好了,这一章就到这里。ASPICE 的框架你已经有了基本概念。后面我们会一步步深入每个过程组、每个能力等级,以及怎么在实际项目中落地。