过程参考模型:过程类别、过程组、过程ID的划分逻辑
好,咱们今天聊点硬核的。ASPICE的过程参考模型,说白了就是一张「汽车软件开发的全景地图」。你想想看,一个项目几十号人,几百个活动,如果没有清晰的分类,那不乱成一锅粥了?
我个人习惯,把过程参考模型理解成一个「三层抽屉柜」。最上面一层是过程类别,中间一层是过程组,最下面一层才是具体的过程ID。今天我就把这个抽屉柜的划分逻辑,掰开了揉碎了讲给你听。
为什么要有这三层结构?
我在项目中遇到过这样的场景:审核员问「你们的需求管理过程属于哪一类?」工程师支支吾吾答不上来。其实这不怪工程师,是大家没搞懂背后的分类逻辑。
ASPICE这么设计,目的就两个:
- 便于管理:把相近的活动归到一起,审核时按类别查,效率高
- 便于追溯:从大类到小类,层层细化,不会漏掉任何关键活动
嗯,这里要注意,这个分类不是拍脑袋定的。它背后有ISO 12207的影子,也参考了汽车行业的工程实践。说白了,是经过大量项目验证的成熟框架。
第一层:过程类别(Process Category)
过程类别是最粗的粒度。ASPICE把所有的过程活动,分成了三大类:
| 类别编号 | 类别名称 | 包含什么? |
|---|---|---|
| ACQ | 获取过程 | 供应商选择、合同签订、外包管理 |
| SUP | 支持过程 | 配置管理、质量保证、文档管理 |
| MAN | 管理过程 | 项目管理、风险管理、度量分析 |
你可能会问:「怎么没有工程过程?」别急,工程过程在ASPICE里是单独一个大类,叫系统工程过程和软件工程过程。我习惯把它们统称为「核心工程类」。
为什么会这样分?我个人的理解是:工程过程是「干活」的,管理过程是「管人」的,支持过程是「保障」的。三者缺一不可。
第二层:过程组(Process Group)
过程组是在类别下面的进一步细分。拿「系统工程过程」来说,它下面又分了几个组:
- SYS.1:需求挖掘组(获取利益相关方需求)
- SYS.2:需求分析组(系统需求分析)
- SYS.3:架构设计组(系统架构设计)
- SYS.4:集成测试组(系统集成与集成测试)
- SYS.5:合格性测试组(系统合格性测试)
你看,每个过程组都对应一个V模型上的关键阶段。我记得有一次做项目,团队把「系统需求分析」和「系统架构设计」混在一起做,结果审核时被开了不符合项。为什么?因为这两个过程组虽然同属系统工程,但输入输出完全不同。
关键点:过程组的划分逻辑,本质上是按照「生命周期阶段」来切的。从需求到设计,从设计到实现,从实现到测试,每个阶段一个组。
第三层:过程ID(Process ID)
过程ID是最细的粒度。每个过程ID对应一个具体的过程,有明确的目的和成果。
举个例子,软件工程过程组(SWE)下面,过程ID是这样划分的:
| 过程ID | 过程名称 | 一句话描述 |
|---|---|---|
| SWE.1 | 软件需求分析 | 把系统需求转化为软件需求 |
| SWE.2 | 软件架构设计 | 定义软件的顶层结构 |
| SWE.3 | 软件详细设计 | 把架构拆成可编码的单元 |
| SWE.4 | 软件单元验证 | 验证每个单元的正确性 |
| SWE.5 | 软件集成与集成测试 | 把单元拼起来并测试 |
| SWE.6 | 软件合格性测试 | 确认软件满足需求 |
这里有个小细节:过程ID的编号不是随便排的。SWE.1到SWE.6,严格遵循V模型的左臂到右臂。你想想看,如果SWE.3(详细设计)跑到了SWE.1前面,那整个流程就乱套了。
我的小技巧:做过程定义时,先把过程ID列出来,然后按编号排序。如果发现编号跳跃太大,说明中间可能漏了某个关键过程。我曾经用这个方法,帮一个团队找出了他们缺失的「软件单元验证」过程。
划分逻辑的核心原则
讲完了三层结构,咱们总结一下划分逻辑的核心原则。我个人认为,就三条:
- 按生命周期阶段划分:从需求到退役,每个阶段一个组或一个过程。这是最直观的逻辑。
- 按职责边界划分:系统工程师管SYS,软件工程师管SWE,项目经理管MAN。谁干活谁负责。
- 按输入输出划分:每个过程的输出,必须是下一个过程的输入。如果两个过程之间没有明确的输入输出关系,那它们就不应该放在同一个组里。
避坑指南:我曾经见过一个团队,把「软件需求分析」和「软件架构设计」合并成一个过程。理由是「我们团队小,没必要分那么细」。结果呢?需求变更时,架构文档没人更新,因为大家觉得那是「需求分析」阶段的事。嗯,后来审核时被开了严重不符合项。
所以我的建议是:过程可以裁剪,但划分逻辑不能乱。哪怕你只做两个过程,也要明确它们属于哪个组、哪个类别。
实际项目中的应用
说了这么多理论,咱们看看实际项目中怎么用。
假设你是一个项目的过程负责人,现在要定义项目的过程模型。我建议你按以下步骤来:
- 第一步:确定项目涉及哪些过程类别。通常汽车电子项目会涉及系统工程、软件工程、支持过程、管理过程这四大类。
- 第二步:在每个类别下,列出需要的过程组。比如软件工程组,你至少要有SWE.1到SWE.6。
- 第三步:为每个过程组分配具体的过程ID。注意,不是所有过程ID都必须有,可以根据项目裁剪。
- 第四步:检查每个过程ID的输入输出,确保它们能串起来。
我记得有一次帮一个Tier 1供应商做过程定义,他们只做嵌入式软件,不做系统级开发。那怎么办?很简单,把SYS相关的过程组全部裁剪掉,只保留SWE和SUP、MAN。但注意,裁剪不是删除,而是明确说明不适用。
最后说两句
过程参考模型的划分逻辑,说白了就是「分而治之」的思想。把复杂的事情拆成小块,每块有明确的边界和接口,这样管理起来才不累。
你想想看,如果ASPICE没有这三层结构,直接给你100多个过程ID,你头不头大?所以,理解了这个划分逻辑,你就掌握了ASPICE的骨架。剩下的,就是往骨架上填肉了。
好,今天就聊到这儿。下一节咱们聊聊「过程能力等级」的判定逻辑,那个更有意思。