3. 需求追溯的核心概念与模型

在医疗软件的需求工程中,追溯不是一张“事后补出来的表格”,而是一套贯穿需求、设计、实现、测试与风险控制的关系网络。要真正用好追溯,必须先理解五个核心概念:追溯链、追溯矩阵、双向追溯、追溯粒度,以及追溯关系类型(派生、满足、验证、依赖)。它们共同构成了需求追溯的模型基础。

追溯链:从需求到证据的路径

追溯链(Trace Chain)描述的是从一个需求出发,沿着关系边一路走到最终验证证据的完整路径。例如,一条“输液泵阻塞报警响应时间不超过 5 秒”的用户需求,可能派生出“阻塞检测模块应在 200 ms 内识别压力异常”的软件需求,再被“阻塞检测函数 detect_occlusion()”满足,最终由“阻塞报警响应时间测试用例 TC-0412”验证。这条 用户需求 → 软件需求 → 设计/代码 → 测试用例 → 测试结果 的路径就是一条追溯链。

追溯链的价值在于:当测试失败或发生变更时,可以沿链快速定位受影响的所有节点。链的完整性(无断链)是医疗软件合规审查的重点,例如 IEC 62304 要求每个软件需求都能追溯到其实现与验证。

追溯矩阵:关系网络的结构化表达

追溯矩阵(Traceability Matrix, TM)是把追溯链组织成二维表格的形式,通常行表示上游对象(需求、风险),列表示下游对象(设计、代码、测试)。矩阵中的每个标记表示一条关系边。矩阵的优点是便于批量检查覆盖率,例如“有多少条需求没有对应测试用例”。

在实际项目中,矩阵往往不是单一的一张表,而是分层组织的:用户需求—系统需求矩阵、系统需求—软件需求矩阵、软件需求—测试用例矩阵等。分层矩阵可以避免单表过大,也便于不同角色维护各自负责的层级。

双向追溯:正向与反向都要通

双向追溯(Bidirectional Traceability)要求关系不仅可以从上游查到下游(正向),也能从下游回溯到上游(反向)。正向追溯回答“这条需求被实现和验证了吗”,反向追溯回答“这个测试用例为什么存在、它验证的是哪条需求”。

只有双向都成立,追溯才具备变更影响分析和覆盖度审计的能力。例如,当某条软件需求被修改时,正向追溯可以找到受影响的测试用例;当某个测试用例失败时,反向追溯可以定位到它验证的需求和对应的风险控制措施。

追溯粒度:多细才算够

追溯粒度(Traceability Granularity)指追溯对象的大小和层级。粒度过粗(如“整个模块对应整个测试计划”)会失去定位能力;粒度过细(如“每一行代码对应一条需求”)则维护成本极高。医疗软件中常见的合理粒度是:需求级 → 设计单元级 → 测试用例级,并在高风险需求上适当细化到函数或分支级别。

粒度选择应遵循“风险驱动”原则:安全等级高、失效后果严重的需求,追溯粒度应更细;一般功能需求可以保持在需求—用例级别。

追溯关系类型:派生、满足、验证、依赖

追溯关系不是只有“有关联”一种,而是有明确语义的多种类型:

  • 派生(Derive):下游需求由上游需求推导而来。例如系统需求派生出软件需求,软件需求派生出详细设计约束。
  • 满足(Satisfy):设计或实现满足某条需求。例如某个类或函数满足一条软件需求。
  • 验证(Verify):测试用例或验证活动证明某条需求被满足。例如 TC-0412 验证“阻塞报警响应时间 ≤ 5 s”。
  • 依赖(Depend):需求之间或需求与外部条件之间存在依赖。例如“报警功能”依赖“电源监控功能”正常。

区分关系类型的意义在于:不同类型的边在变更影响分析中的传播规则不同。派生关系会向下传播变更,验证关系会向上反馈测试结果,依赖关系可能引入跨模块的连锁影响。

示例:一条完整追溯链的关系标注

UR-012(用户需求:阻塞报警 ≤ 5 s)—派生→ SR-045(软件需求:200 ms 内检测阻塞)—满足→ DES-108(设计:detect_occlusion())—验证→ TC-0412(测试用例)—验证结果→ PASS。同时 SR-045 —依赖→ SR-031(电源监控需求)。

需求追溯链与关系类型模型 派生 → 满足 → 验证,依赖为横向约束 UR-012 用户需求 阻塞报警 ≤ 5 s SR-045 软件需求 200 ms 内检测阻塞 DES-108 设计单元 detect_occlusion() TC-0412 测试用例 阻塞报警响应时间 RES-0412 验证结果 PASS(4.2 s) SR-031 电源监控需求 依赖约束 派生 满足 验证 验证结果 依赖 关系类型图例 派生 Derive 满足 Satisfy 验证 Verify 依赖 Depend 正向追溯:UR → SR → DES → TC → RES;反向追溯:RES → TC → DES → SR → UR

模型整合:五个概念如何协同工作

把五个概念放在一起看:追溯链是路径,追溯矩阵是路径的集合视图,双向追溯是路径必须可正反通行,追溯粒度决定路径上节点的粗细,关系类型决定路径上每条边的语义和传播规则。五者缺一不可。

在医疗软件项目中,建议先定义关系类型和粒度策略,再建立矩阵模板,最后通过工具或脚本自动生成追溯链视图。这样既能满足合规审查,也能在变更和缺陷分析中真正发挥作用。

实践提示:追溯矩阵中的每个标记都应能回答“这条边是什么关系类型”。如果只标“√”而不区分派生、满足、验证、依赖,变更影响分析时就无法判断传播方向,追溯的价值会大打折扣。