4. 识别系统边界与外部接口

系统边界不是画在图纸上的一条装饰线,而是决定“谁负责、谁不负责”的工程契约。在SysML建模中,边界一旦确定,内部模块的职责分配、接口的归属、验证的范围都会随之收敛。本节的任务是:从用例和需求出发,把系统上下文(System Context)定义清楚,并提取出外部参与者、外部系统与顶层接口清单,为后续的接口架构设计提供输入。

一、系统边界的三层含义

在工程实践中,“边界”至少包含三层含义,缺一不可:

  • 职责边界:系统承诺完成的功能集合,通常由用例描述。边界之外的功能由外部参与者或外部系统承担。
  • 物理边界:系统实际占据的硬件/软件载体范围,例如一个车载域控制器、一套地面站软件。
  • 接口边界:系统与外部交换能量、物质、信息的连接点集合,是本节要提取的核心对象。

三者不一定重合。例如,一个“自动驾驶域控制器”的职责边界包含感知融合与轨迹规划,但物理边界可能只包含计算板卡,而摄像头、雷达属于外部系统,通过接口边界与它相连。建模时必须明确:接口边界上的每一个连接点,都对应一个需要被管理的顶层接口。

二、从用例提取外部参与者

用例图是识别外部参与者的第一手资料。做法是:把系统画成一个矩形(System Under Design,SUD),所有与它交互的人、设备、系统都放在矩形之外,用关联线连接。每一条关联线都暗示一个潜在的接口。

以一个“无人机地面控制站”为例,从用例“规划航线”“监控飞行状态”“上传任务”“接收遥测”出发,可以识别出以下外部参与者:

  • 操作员(人):通过显控界面输入航线、查看状态。
  • 无人机飞控系统(外部系统):接收任务、回传遥测。
  • 差分GPS基准站(外部系统):提供RTCM差分改正数。
  • 气象数据服务(外部系统):提供风场与能见度信息。

注意区分“参与者”与“外部系统”:参与者可以是人、组织或外部系统;而外部系统通常指具有独立接口、可被单独建模的工程实体。在SysML中,两者都可以用Actor或外部Block表示,但外部系统往往需要进一步展开其接口。

三、从需求补充边界约束

用例给出的是“交互意图”,需求则给出“交互约束”。以下需求类型会直接影响边界与接口清单:

  • 性能需求:如“遥测更新率不低于5Hz”,决定接口的周期与带宽。
  • 安全需求:如“任务上传需双向认证”,决定接口的安全机制。
  • 环境需求:如“工作温度-40℃~+70℃”,可能决定接口的物理介质。
  • 法规需求:如“符合DO-178C”,决定接口数据的完整性等级。

把这些需求逐条映射到边界上,就能判断哪些接口是“必须显式定义”的,哪些可以合并或省略。例如,若需求规定“遥测数据必须加密”,则遥测接口必须包含加密算法与密钥管理两项子接口,而不能只写一个“遥测下行”。

四、顶层接口清单的提取方法

顶层接口清单是本节最直接的交付物。推荐按“参与者—交互—接口”三层展开:

  1. 列出所有外部参与者与外部系统。
  2. 对每个参与者,列出它与系统之间的交互项(数据、能量、物质)。
  3. 对每个交互项,定义接口名称、方向、介质、协议、周期/触发方式、数据内容。

下表给出无人机地面控制站的顶层接口清单示例(参数为教学假设,非实测值):

接口编号接口名称外部对象方向介质/协议周期/触发主要数据
IF-01任务上传无人机飞控出无线电信道 / MAVLink事件触发航点序列、速度、高度
IF-02遥测下行无人机飞控入无线电信道 / MAVLink5Hz周期位置、姿态、电量
IF-03差分改正数差分GPS基准站入串口 / RTCM 3.x1Hz周期伪距改正、载波相位改正
IF-04气象数据气象服务入以太网 / HTTP+JSON10min周期风速、风向、能见度
IF-05操作员指令操作员入人机界面 / 键鼠事件触发航线编辑、模式切换
IF-06状态显示操作员出人机界面 / 图形10Hz刷新飞行态势、告警

清单中的每一行,后续都应能在SysML中对应到一个接口块(Interface Block)或流端口(Flow Port)。方向定义必须统一:本文约定“出”表示数据从系统流向外部,“入”表示从外部流入系统。若切换参照系,必须显式说明。

五、系统上下文图与接口关系

把上述内容整合成一张系统上下文图,是本节最值得可视化的成果。下图以无人机地面控制站为中心,展示外部参与者、外部系统与顶层接口的方向和介质关系。图中每个接口编号与上表一致,便于对照检查。

无人机地面控制站 · 系统上下文与顶层接口 地面控制站 System Under Design 职责:航线规划 / 任务上传 遥测监控 / 状态显示 操作员 人 · 外部参与者 无人机飞控系统 外部系统 · 机载 差分GPS基准站 外部系统 · 地面 气象数据服务 外部系统 · 网络 IF-05 指令 IF-06 显示 IF-01 任务上传 IF-02 遥测下行 IF-03 差分改正数 IF-04 气象数据 图例 入(外部→系统) 出(系统→外部)

对照上图与接口清单,可以检查三件事:第一,每个外部对象是否至少有一条接口线;第二,每条接口线是否有编号、方向与介质;第三,是否存在“有交互但无接口”的遗漏,例如操作员与系统之间除了指令和显示,是否还有告警确认、日志导出等交互。遗漏的接口在后续集成阶段往往表现为“未定义行为”,是排障成本最高的缺陷来源。

六、边界评审的检查要点

完成初稿后,建议用以下问题做一次边界评审:

  • 系统边界内是否包含了不该由本系统承担的功能?例如把“气象数据解析”放在系统内,而它本可由外部服务完成。
  • 外部参与者是否被误当作内部模块?例如把“操作员”建模为系统内部的一个Block。
  • 接口方向是否与数据流一致?是否存在“只定义了下行、没有定义上行”的单向遗漏。
  • 接口的周期与需求中的性能指标是否匹配?例如需求要求5Hz,接口却定义为1Hz。
  • 安全与加密需求是否落到具体接口上,而不是停留在系统级描述。
边界评审的输出不是“通过/不通过”,而是一份修正后的接口清单与更新后的上下文图。建议把每次评审的接口变更记录在配置管理工具中,因为接口一旦冻结,后续修改的成本远高于内部模块。

本节交付的顶层接口清单,将直接作为下一阶段接口架构设计的输入。清单中的每个接口编号,后续都应能在SysML模型中追溯到对应的接口块、端口和流属性,形成从需求到实现的完整链路。