4. 用例与系统上下文建模

在系统工程中,用例建模解决的核心问题是:谁在使用系统、系统为谁提供什么可观察的价值、系统的边界在哪里。它不描述系统内部如何实现,而是从外部视角锁定系统职责。对于 IBM Rhapsody 而言,用例图是需求工程的起点,也是后续状态图、活动图和序列图的输入来源。本节围绕用例图、参与者与系统边界、用例描述与场景、上下文图以及用例与需求追溯五个方面展开,重点说明在 Rhapsody 中如何落地这些概念。

一、用例图:外部视角的职责契约

用例图由参与者(Actor)、用例(Use Case)、系统边界(System Boundary)以及它们之间的关系构成。参与者是位于系统外部、与系统交互的角色,可以是人、外部系统、定时器或环境;用例是系统对外提供的一组可观察行为,通常以“动词+名词”命名,例如“启动巡航”“采集温度”“下发控制指令”。

用例之间的关系主要有三种:关联表示参与者与用例之间的通信;包含(include)表示一个用例必然复用另一个用例的行为,例如“执行自检”包含“读取传感器状态”;扩展(extend)表示在特定条件下才插入的附加行为,例如“处理告警”在“温度超限”时扩展“触发降温”。在 Rhapsody 中,这些关系通过用例图中的连线类型直接表达,并在浏览器中形成可追溯的模型元素。

二、参与者与系统边界:先划清“内外”

系统边界是本节最容易被忽视却最关键的概念。边界之内是系统要负责实现的部分,边界之外是系统需要交互但不负责实现的部分。划错边界会导致需求蔓延或职责缺失。判断方法很直接:如果一个对象的行为需要由本项目实现,它就在边界内;如果它由外部提供、系统只能与其交互,它就在边界外。

参与者识别可以从三个方向入手:直接操作者(如操作员)、被动受益者(如维护人员)、外部系统(如飞控计算机、地面站)。在 Rhapsody 中,参与者通常建模为 Actor 元素,外部系统可以建模为带有构造型的外部类,以便后续在序列图中作为消息端点。系统边界在用例图中用矩形框表示,框内放用例,框外放参与者。

无人机巡检系统用例图与上下文关系 系统边界:无人机巡检系统 规划巡检航线 采集环境数据 回传巡检结果 处理低电量告警 «include» «extend» 巡检操作员 地面站系统 电池管理系统 上下文要素 • 外部接口:遥测链路、供电 • 环境约束:风速、温度 • 边界外:地面站、电池系统

三、用例描述与场景:把“一句话”展开成可验证行为

用例图只给出骨架,真正承载需求细节的是用例描述。一个完整的用例描述通常包含:用例名称、参与者、前置条件、后置条件、基本流、备选流、异常流以及非功能约束。基本流描述最典型的成功路径,备选流描述条件分支,异常流描述失败或降级处理。

以“采集环境数据”为例,基本流可以写成:操作员下发采集指令 → 系统校验航线状态 → 系统启动传感器 → 系统按采样周期读取温度、湿度、气压 → 系统打包数据 → 系统回传地面站。备选流可以包括“航线未就绪时拒绝启动”“传感器无响应时切换备用通道”。这些描述在 Rhapsody 中可以直接作为用例的说明属性,也可以关联到需求元素。

场景是用例的一次具体执行实例。同一个用例可以有多个场景,例如正常采集、传感器故障采集、通信中断采集。场景是后续绘制序列图和状态图的重要输入,也是测试用例设计的直接依据。

四、上下文图:把系统放进真实环境

上下文图与用例图互补。用例图强调“谁与系统交互、系统提供什么用例”,上下文图强调“系统与外部实体之间的接口、数据流和约束”。在上下文图中,系统通常画成中心方块,外部实体围绕四周,连线标注接口类型、数据方向、协议或物理介质。

例如无人机巡检系统的上下文图可以标注:与地面站之间是遥测数据下行和指令上行,采用无线链路;与电池管理系统之间是电量状态和告警信号,采用 CAN 总线;与环境之间是风速、温度等物理量输入。这些接口信息会直接影响后续的端口定义和接口建模。

五、用例与需求追溯:让每个需求都有归属

用例与需求追溯的目标是建立双向可追踪关系:每个需求至少被一个用例覆盖,每个用例至少对应一个需求来源。在 Rhapsody 中,可以通过需求元素、追溯关系(Trace)或需求图来实现。常见做法是:在需求库中为每条需求分配唯一标识,例如 REQ-ENV-001“系统应支持每 100 ms 采集一次温度”;然后在用例描述中引用该标识,并在模型浏览器中建立 Trace 链接。

追溯关系建立后,可以做两类检查:覆盖检查——是否存在没有任何用例覆盖的需求;冗余检查——是否存在没有需求来源的用例。这两类检查能有效防止需求遗漏和范围蔓延。下表给出一个简化的追溯示例。

需求标识 需求描述 关联用例 场景 验证方式
REQ-ENV-001 系统应支持每 100 ms 采集一次温度 采集环境数据 正常采集 时序测试
REQ-ENV-002 温度超过 85 ℃ 时应触发告警 处理低电量告警 温度超限 边界值测试
REQ-COM-003 巡检结果应在 2 s 内回传地面站 回传巡检结果 通信正常 时延测量
在 Rhapsody 中建立追溯时,建议先固定需求标识命名规则,再统一在用例属性中引用。这样在生成追溯矩阵或需求覆盖报告时,可以按标识自动分组,减少人工核对成本。
常见错误是把系统内部模块当作参与者。参与者必须位于系统边界之外。如果一个模块由本项目实现,它就不应出现在用例图的参与者位置,而应作为系统内部结构在后续章节中建模。

综合来看,用例与上下文建模的产出不是一张图,而是一组相互关联的模型元素:参与者、用例、边界、用例描述、场景、上下文接口和需求追溯关系。它们共同回答了一个问题——系统对外承诺什么、与谁交互、在什么条件下完成、由哪条需求驱动。只有这些关系在 Rhapsody 模型中真正建立起来,后续的行为建模和验证才有可靠的需求基础。