2、过程参考模型(PRM):过程类别与过程组的划分

好,咱们今天聊聊ASPICE里最基础、也最容易让人迷糊的一个概念——过程参考模型(PRM)。

说实话,我刚接触ASPICE那会儿,看到什么“主要生命周期过程”、“组织生命周期过程”,头都大了。这玩意儿到底怎么分的?跟我做嵌入式开发有什么关系?

别急,我带你捋一遍。其实没那么复杂。

2.1 三大过程类别

ASPICE把所有的过程分成了三大类。你可以想象成三个大抽屉:

  • 主要生命周期过程:直接跟产品开发相关的活儿
  • 组织生命周期过程:公司层面、管理层面的活儿
  • 支持生命周期过程:给前面两类打辅助的活儿

我个人习惯把这三大类记成“干活儿的”、“管活儿的”、“帮活儿的”。你想想看,是不是这个理?

2.1.1 主要生命周期过程

这是咱们工程师最熟悉的部分。说白了,就是从客户需求到产品交付的全链条。

我在项目中遇到过不少团队,只盯着“写代码”这一块,觉得其他都是虚的。结果呢?需求没对齐,测试用例写偏了,最后返工改到崩溃。

主要生命周期过程包含两个过程组:

  • 系统工程过程组:关注系统层面的活动
  • 软件工程过程组:关注软件层面的活动

嗯,这里要注意:系统工程师和软件工程师的边界经常打架。我建议你记住一句话——系统管“做什么”,软件管“怎么做”。

2.1.2 组织生命周期过程

这类过程不直接产出代码,但决定了你能不能持续、高效地产出代码。

我曾经在一个项目里,公司连基本的配置管理流程都没有。版本号乱标,基线说改就改。结果客户来审计,我们拿不出任何证据证明“哪个版本给了客户”。

组织生命周期过程包括:

  • 管理过程组:项目管理、风险管理、质量保证等
  • 过程改进过程组:持续优化流程本身
  • 重用过程组:管理复用资产

说白了,这类过程就是“让团队跑得更稳”的保障机制。

2.1.3 支持生命周期过程

这类过程是“万金油”,哪个阶段都可能用到。

举个例子:配置管理。你在需求阶段要管文档版本,在设计阶段要管模型版本,在测试阶段要管用例版本。它贯穿始终。

支持生命周期过程包括:

  • 配置管理
  • 质量保证
  • 验证
  • 确认
  • 联合评审
  • 审计
  • 问题解决管理
  • 决策管理

核心理解: 三大类别不是孤立的。主要过程是“主角”,支持过程是“配角”,组织过程是“导演”。缺一个,戏都演不好。

2.2 过程组的划分逻辑

ASPICE把过程进一步分组,目的是让审核和评估更有条理。咱们重点看两个最常用的过程组。

2.2.1 系统工程过程组(SYS)

这个组关注的是“系统”层面。什么是系统?硬件+软件+机械+人机交互,所有东西合在一起。

我记得有一次做ADAS项目,系统工程师定义了一个“自动紧急制动”的需求。软件团队直接开干,结果发现硬件传感器根本达不到那个响应速度。这就是典型的系统级和软件级脱节。

系统工程过程组包含的关键过程:

  • SYS.1:需求挖掘
  • SYS.2:系统需求分析
  • SYS.3:系统架构设计
  • SYS.4:系统集成与集成测试
  • SYS.5:系统合格性测试

你想想看,如果SYS.2没做好,后面的软件设计就是空中楼阁。

2.2.2 软件工程过程组(SWE)

这是咱们软件工程师的主战场。从软件需求到软件测试,全在这里。

软件工程过程组包含:

  • SWE.1:软件需求分析
  • SWE.2:软件架构设计
  • SWE.3:软件详细设计与单元构建
  • SWE.4:软件单元验证
  • SWE.5:软件集成与集成测试
  • SWE.6:软件合格性测试

我的经验: 很多团队在SWE.3和SWE.4之间跳来跳去,觉得“先写代码再补测试”也行。千万别!我吃过这个亏。单元验证不是走过场,它是你代码质量的最后一道防线。

2.2.3 管理过程组(MAN)

这个组容易被工程师忽略。但说实话,没有管理过程,项目就是一团乱麻。

管理过程组包括:

  • MAN.3:项目管理
  • MAN.5:风险管理
  • MAN.6:测量

我曾经在一个项目里,项目经理说“我们不需要风险管理,反正也预测不准”。结果呢?芯片供货延期,项目直接停摆三个月。嗯,从那以后,我再也不敢轻视MAN.5了。

2.3 过程类别与过程组的关系

咱们用一张表来总结,这样更清楚:

过程类别 过程组 典型过程 我的理解
主要生命周期过程 系统工程(SYS) SYS.1~SYS.5 系统级“做什么”
主要生命周期过程 软件工程(SWE) SWE.1~SWE.6 软件级“怎么做”
组织生命周期过程 管理(MAN) MAN.3, MAN.5, MAN.6 管人管风险管度量
组织生命周期过程 过程改进(PIM) PIM.3, PIM.4 持续优化流程
组织生命周期过程 重用(REU) REU.2 复用管理
支持生命周期过程 支持(SUP) SUP.1~SUP.10 配置、质量、验证等

避坑指南: 我曾经见过一个团队,把所有过程都往“软件工程”里塞。需求分析用SWE.1,系统测试也用SWE.6。这是不对的。系统级的事情归SYS,软件级的事情归SWE。混在一起,审核员一眼就能看出来。

2.4 为什么你要理解这个划分?

你可能会问:“我就是一个写代码的,知道这些分类有什么用?”

用处大了去了。

  • 第一,明确职责边界。 系统工程师和软件工程师各管各的,别互相甩锅。
  • 第二,知道什么时候该做什么事。 需求阶段别急着写代码,测试阶段别想着改架构。
  • 第三,应对审核。 审核员问“你们怎么保证需求可追溯?”你得知道这是SYS.1和SWE.1的衔接问题。

说白了,理解PRM的划分,就是理解ASPICE的“世界观”。你知道了游戏规则,才能玩好这个游戏。

好,这一章就到这里。下一章咱们聊聊具体的过程实施,看看每个过程到底要产出什么“证据”。