第四章 ASPICE基础:历史、模型与能力等级详解

各位同学,今天我们聊聊ASPICE的基础。说实话,这个标准在汽车圈里已经成了“硬通货”。你出去跟OEM谈项目,人家第一句话可能就是“你们ASPICE过了几级?”

我最早接触ASPICE是在2015年,那时候国内还没多少人懂。我记得第一次做评估,被评估师问得满头大汗——不是因为技术不行,而是根本不知道“过程”这个词在ASPICE里意味着什么。好,我们从头捋一遍。

4.1 ASPICE的历史与背景

ASPICE的全称是“Automotive SPICE”。它脱胎于软件行业的SPICE标准(ISO/IEC 15504),后来被汽车工业专门化。

为什么会诞生这个东西?说白了,汽车里的软件越来越多。2000年左右,一辆车只有几十万行代码。现在呢?高端车型轻松上亿行。代码多了,出问题的概率就大了。你想想看,刹车系统的软件要是出了bug,那是要命的事。

所以,OEM们坐不住了。他们需要一个标准,来评估供应商的开发能力。于是,在2005年,ASPICE正式发布。后来经过几次修订,现在主流用的是ASPICE 3.1版本(2017年发布)。

核心要点:ASPICE不是教你怎么写代码的,它是教你怎么管理开发过程的。过程好了,产品质量自然有保障。

我个人习惯把ASPICE理解成“汽车软件开发的ISO 9001”。它不关心你用了什么技术栈,只关心你有没有把该做的事情做到位。

4.2 过程参考模型(PRM)

PRM,全称Process Reference Model。它定义了ASPICE里有哪些过程,以及这些过程之间的关系。

PRM把过程分成了三大类:

  • 主要生命周期过程(Primary Life Cycle Processes):包括需求获取、系统设计、软件设计、编码、测试等。说白了,就是直接产出产品的那些活儿。
  • 支持生命周期过程(Supporting Life Cycle Processes):包括配置管理、质量保证、问题解决等。这些过程不直接产出产品,但保证产品做得靠谱。
  • 组织生命周期过程(Organizational Life Cycle Processes):包括项目管理、过程改进等。这是管理层的事。

我举个例子。你在做软件单元测试,这属于“主要生命周期过程”里的“软件测试”过程。但你测试时发现的bug怎么记录、怎么跟踪?这就涉及到“支持生命周期过程”里的“问题解决管理”过程。

我的经验:很多团队只关注主要过程,忽略了支持过程。结果就是代码写得飞快,但bug管理一塌糊涂。我曾经见过一个项目,测试人员发现了一个严重bug,但因为没有规范的问题跟踪流程,这个bug在系统里躺了三个月没人管。最后在客户现场炸了。

PRM里一共定义了40多个过程。别怕,你不需要全部记住。实际项目中,最常用的是那些与软件开发直接相关的过程,比如:

过程ID 过程名称 简要说明
SYS.1 需求获取 从客户那里拿到需求,并理解它
SYS.2 系统需求分析 把客户需求转化成系统级的技术需求
SWE.1 软件需求分析 从系统需求里提取出软件要做什么
SWE.6 软件测试 验证软件是否满足需求
MAN.3 项目管理 计划、跟踪、控制项目

4.3 过程评估模型(PAM)

PAM,全称Process Assessment Model。它告诉你:怎么去评估一个过程做得好不好。

PAM里有两个核心概念:

  • 过程能力(Process Capability):一个过程能达到什么水平。比如,你的需求分析过程是“能干活”还是“能稳定地干活”。
  • 过程属性(Process Attributes):用来衡量过程能力的指标。每个能力等级对应一组过程属性。

举个例子。你要评估“软件测试”这个过程。PAM会问你:

  • 你们有没有测试计划?(过程属性PA1.1)
  • 测试计划有没有被执行?(过程属性PA1.2)
  • 测试结果有没有被记录?(过程属性PA2.1)
  • 等等。

每个过程属性都有一个评分:N(未实现)、P(部分实现)、L(大部分实现)、F(完全实现)。

注意:PAM不是让你“做样子”的。我见过有些团队,为了应付评估,临时补了一堆文档。结果评估师一问细节,漏洞百出。评估师都是老江湖,你骗不了他们的。

4.4 能力等级(CL1-CL5)详解

能力等级是ASPICE里最“性感”的部分。它把过程能力分成了6个等级(从0到5)。

我直接说人话:

  • CL0(不完整级):过程没做,或者做了但没证据。说白了,就是“一团糟”。
  • CL1(已执行级):过程被执行了。你能证明你做了这件事。比如,你写了测试用例,也跑了测试。
  • CL2(已管理级):过程被管理了。你有计划、有资源、有监控。比如,测试有测试计划,测试结果有评审。
  • CL3(已建立级):过程被标准化了。你有一套标准流程,整个组织都在用。比如,公司有统一的测试流程规范。
  • CL4(可预测级):过程被量化了。你能用数据预测过程表现。比如,你能根据历史数据预测测试需要多少天。
  • CL5(优化级):过程被持续优化了。你能主动改进过程。比如,你发现测试效率低,主动引入自动化测试工具。

我给大家一个直观的感受。大部分汽车供应商的目标是CL2或CL3。CL4和CL5,说实话,能做到的企业凤毛麟角。为什么?因为量化需要大量的数据积累,优化需要组织文化的支撑。

避坑指南:我曾经见过一个团队,非要冲CL3。他们花了大半年时间写流程文档,结果项目进度严重滞后。最后评估没过,项目也黄了。我的建议是:先做到CL2,把基础打牢。CL3是水到渠成的事,不是硬冲出来的。

每个等级都有对应的过程属性。我列个表,方便你对照:

能力等级 过程属性 含义
CL1 PA1.1 过程执行 过程被执行,产出工作产品
CL2 PA2.1 执行管理
PA2.2 工作产品管理
过程有计划、有监控;工作产品被管理
CL3 PA3.1 过程定义
PA3.2 过程部署
过程被标准化,并在组织内推广
CL4 PA4.1 过程测量
PA4.2 过程控制
过程被量化,用数据说话
CL5 PA5.1 过程创新
PA5.2 过程优化
过程被持续改进

嗯,这里要注意。能力等级是“累积”的。你要达到CL3,必须先满足CL1和CL2的所有要求。不能跳级。

最后,我分享一个心得。ASPICE不是目的,而是手段。它的最终目标是帮你做出高质量的软件。如果你只是为了拿证书而做ASPICE,那你的团队会很痛苦。如果你是为了提升能力而做ASPICE,你会发现它其实是一套很好的管理方法论。

好,这一章就到这里。下一章我们讲ASPICE的评估流程,包括怎么准备评估、评估师会问什么问题、怎么应对。到时候我会分享一些实战中的“骚操作”,敬请期待。