3. 过程参考模型(PRM):PRM的构成、过程类别、过程组、过程定义
好,咱们进入第三章。这一章要聊的是ASPICE的骨架——过程参考模型,也就是PRM。
说实话,我刚接触ASPICE那会儿,看到那一堆过程名字,头都大了。什么“系统需求分析”、“软件详细设计”、“单元验证”……感觉像是一锅大杂烩。后来我才明白,PRM其实是有套路的。它把整个开发活动拆成了几个大类,每个大类下面再分组,组里再细分具体的过程。
说白了,PRM就是一张地图。告诉你做嵌入式软件,到底要干哪些事,按什么顺序干。
3.1 PRM的构成:三个维度
PRM的构成,我习惯从三个维度去理解:
- 过程类别:最高层级的分类。比如“这是管理类的事”、“这是工程类的事”。
- 过程组:每个类别下面,再按功能或阶段分组。比如工程类里,有“系统开发组”、“软件开发组”。
- 过程定义:最底层,具体到每一个过程。比如“软件需求分析”就是一个具体的过程。
你想想看,这就像咱们的文件夹结构。类别是根目录,组是子文件夹,过程就是里面的文件。ASPICE一共定义了40多个过程,都装在这几个文件夹里。
核心要点:PRM不是凭空捏造的。它基于ISO 12207(国际软件生命周期标准)和ISO 15288(系统工程标准)。ASPICE只是把它们裁剪了一下,更适合汽车行业。
3.2 过程类别:三大支柱
PRM把过程分成了三大类别。我当年做项目时,经常跟同事开玩笑说,这三大类就是“管人的”、“干活的”、“搞支持的”。
| 过程类别 | 英文缩写 | 一句话解释 |
|---|---|---|
| 主要生命周期过程 | PRM-M | 直接跟产品开发相关的核心活动 |
| 组织生命周期过程 | PRM-O | 公司层面怎么管、怎么改进 |
| 支持生命周期过程 | PRM-S | 给核心活动提供“后勤保障” |
主要生命周期过程,这是咱们工程师最熟悉的。从客户需求开始,一路到系统设计、软件设计、编码、测试、集成、发布。说白了,就是产品从无到有的全过程。我在项目中遇到过最典型的坑,就是需求分析没做好,直接跳到编码。结果后面返工返到哭。嗯,这个类别里的过程,一个都不能省。
组织生命周期过程,这个类别离一线工程师稍微远一点。它关注的是公司怎么建立流程、怎么培训人、怎么持续改进。比如“过程改进过程”、“人力资源管理过程”。我个人的感觉是,很多公司这块做得比较虚,但ASPICE审核时,这块是必查的。审核员会问:“你们公司有没有流程改进的机制?”如果你说没有,那基本就凉了。
支持生命周期过程,这个类别很有意思。它不直接干活,但所有活都离不开它。比如“配置管理”、“质量保证”、“验证”、“确认”、“文档管理”。我曾经在一个项目里,因为配置管理没做好,导致版本混乱,测试组拿到的代码跟开发组的不一样。那叫一个惨。所以,支持过程虽然看起来“不直接创造价值”,但少了它,整个项目会崩。
3.3 过程组:把过程分门别类
每个类别下面,又细分了过程组。我列个表,你一看就明白了。
| 过程类别 | 过程组 | 包含的过程举例 |
|---|---|---|
| 主要生命周期过程 | 系统开发组 | 系统需求分析、系统架构设计、系统集成测试 |
| 软件开发组 | 软件需求分析、软件架构设计、软件详细设计、软件构建、软件集成测试 | |
| 采购/供应组 | 供应商管理、外包开发管理 | |
| 组织生命周期过程 | 管理组 | 项目管理、风险管理、质量保证 |
| 改进组 | 过程改进、过程评估 | |
| 支持生命周期过程 | 支持组 | 配置管理、文档管理、验证、确认 |
| 复用组 | 软件复用、资产库管理 |
这里要注意一点:过程组不是固定的。ASPICE 3.1版本和4.0版本,分组方式略有不同。但核心逻辑没变——就是把相关的过程放在一起,方便管理。
我的小技巧:做ASPICE合规时,不要死记硬背过程组。你只需要记住“工程类”、“管理类”、“支持类”这三个大方向。审核员问起来,你能说出每个过程属于哪个类别,基本就过关了。
3.4 过程定义:每个过程长什么样
每个过程,PRM都给出了明确的定义。我拿“软件需求分析”举个例子,你就知道过程定义长啥样了。
一个完整的过程定义,包含以下要素:
- 过程ID:比如 SWE.1(Software Requirements Analysis)
- 过程名称:软件需求分析
- 过程目的:一句话说明这个过程要达成什么目标。比如“建立并维护软件需求的基线”。
- 过程成果:完成这个过程后,应该产出什么。比如“软件需求规格说明书”、“需求追溯矩阵”。
- 基础实践:具体要做什么活动。比如“获取系统需求”、“定义软件需求”、“分析软件需求的一致性”。
我举个例子,你感受一下:
过程ID: SWE.1
过程名称: 软件需求分析
过程目的: 将系统需求转化为软件需求,并确保其完整性、一致性和可验证性。
过程成果:
- 定义了软件需求及其优先级
- 建立了软件需求与系统需求的追溯关系
- 评估了软件需求的技术可行性和风险
基础实践:
BP1: 获取并理解系统需求
BP2: 定义软件需求
BP3: 分析软件需求的质量
BP4: 建立需求追溯
BP5: 评审并批准软件需求
你看,每个过程都定义得清清楚楚。你照着做就行。但我在实际项目中发现,很多团队只关注“基础实践”,忽略了“过程成果”。结果活干了,文档没留下。审核员来了一看,说:“你们做了吗?证据呢?”
避坑指南:我曾经在一个项目里,团队把软件需求分析做得很细,但没写需求规格说明书。审核员问:“你们的需求文档呢?”项目经理说:“都在工程师脑子里。”审核员当场就给了个不符合项。记住:过程成果是审核的硬证据。没有文档,等于没做。
3.5 过程定义的层级关系
PRM里的过程定义,不是孤立的。它们之间有明确的输入输出关系。比如:
- 系统需求分析(SYS.1)的输出,是软件需求分析(SWE.1)的输入。
- 软件需求分析(SWE.1)的输出,是软件架构设计(SWE.2)的输入。
- 以此类推,形成一个链条。
这个链条,就是V模型的核心。你想想看,如果上游的输出不完整,下游肯定做不好。我见过太多项目,系统需求写得模棱两可,软件工程师只能靠猜。猜出来的需求,能对吗?
所以,PRM的过程定义,本质上是在告诉你:每个环节该干什么,干完要留下什么,然后交给谁。 这就是流程的威力。
3.6 小结:PRM是地图,不是镣铐
最后说一句。PRM不是用来束缚你的。它是一张地图,告诉你从哪出发、经过哪些站、最终到哪。你可以根据自己的项目特点,裁剪过程。比如小项目,可以合并一些过程。但核心的输入输出关系,不能断。
我个人习惯,每次做新项目前,先把PRM的过程列表打印出来,贴在墙上。每完成一个过程,就打个勾。这样项目进度一目了然,审核时也心里有底。
好,这一章就到这。下一章咱们聊聊过程能力等级——也就是怎么评价你的过程做得好不好。