4. 块定义图构建系统静态结构

块定义图构建系统静态结构 学习卡片

从需求到静态结构:块定义图要解决什么

需求图回答“系统必须做什么”,块定义图(BDD)回答“系统由哪些静态结构承担这些需求”。本案例以一个“智能温控风扇系统”为建模对象,用 BDD 定义顶层块、组成块、属性、操作和关联关系,并检查块间接口的一致性。

BDD 的核心元素只有四类,先明确它们的语义边界,后续建模才不会混用:

  • 块(Block):系统中承担职责的结构单元,如 ThermalControlSystem、TemperatureSensor、FanActuator。
  • 属性(Property):块拥有的值属性或部件属性,如 samplePeriod : Real、sensor : TemperatureSensor。
  • 操作(Operation):块可被请求的行为,如 readTemperature()、setDutyCycle()。
  • 关联(Association):块与块之间的静态结构连接,可带多重性和角色名,如 ThermalControlSystem 与 TemperatureSensor 之间的 1 对 1 关联。

建模对象与结构划分

本案例的静态结构划分为三层:顶层系统块、三个组成块、一个外部接口块。顶层块通过组合关系拥有组成块,组成块之间通过关联关系协作,外部接口块通过关联接入系统。

块名类型关键属性关键操作
ThermalControlSystem顶层系统块targetTemp : Real、samplePeriod : Realregulate()
TemperatureSensor组成块rangeMin : Real、rangeMax : Real、accuracy : RealreadTemperature()
Controller组成块kp : Real、ki : Real、dutyLimit : RealcomputeDuty()
FanActuator组成块maxRpm : Integer、pwmFreq : RealsetDutyCycle()
PowerSupply外部接口块voltage : Real、currentMax : Realsupply()

块定义图结构

下图给出本案例的 BDD 静态结构。实心菱形表示组合关系,普通实线表示关联关系,箭头方向表示关联的可导航方向。图中同时标注了每个块的关键属性、操作和关联端的多重性,便于后续检查接口一致性。

«block» ThermalControlSystem targetTemp : Real samplePeriod : Real regulate() «block» TemperatureSensor rangeMin : Real rangeMax : Real accuracy : Real readTemperature() : Real «block» Controller kp : Real ki : Real dutyLimit : Real computeDuty() : Real «block» FanActuator maxRpm : Integer pwmFreq : Real setDutyCycle(d : Real) 1 1 tempValue 1 1 dutyCmd «block» PowerSupply voltage : Real currentMax : Real supply() power power power 图例 组合关系(实心菱形) 关联关系(可导航) 供电依赖(外部接口)

接口一致性检查

BDD 画完后,必须检查块间接口是否自洽。本案例的检查项和判断依据如下:

检查项检查内容通过条件
属性类型匹配TemperatureSensor.readTemperature() 返回 Real,Controller 接收的 tempValue 是否为 Real类型一致
操作参数匹配Controller.computeDuty() 输出 Real,FanActuator.setDutyCycle(d : Real) 参数为 Real参数类型一致
多重性一致Sensor 与 Controller 关联端均为 1,Controller 与 FanActuator 关联端均为 1无 0..* 与 1 冲突
供电范围覆盖PowerSupply.voltage 是否覆盖 Sensor、Controller、FanActuator 的工作电压电压范围包含各块需求值
操作可见性关联可导航方向是否允许调用目标块的操作箭头方向与调用方向一致
检查时优先看“类型”和“多重性”两类错误:类型不匹配会导致后续 IBD 中连接器无法绑定,多重性冲突会导致实例数量无法确定。这两类问题在 BDD 阶段修正的成本最低。

建模操作要点

  1. 先建顶层块 ThermalControlSystem,再建三个组成块,最后建外部接口块 PowerSupply。
  2. 用组合关系把三个组成块挂到顶层块下,组合端多重性设为 1。
  3. 在 Sensor 与 Controller 之间、Controller 与 FanActuator 之间建立关联,设置角色名和多重性。
  4. 用虚线依赖表示 PowerSupply 对三个组成块的供电关系,标注 power 角色。
  5. 逐个块填写属性和操作,属性类型使用 SysML 值类型(Real、Integer),操作标注返回类型和参数类型。
  6. 按上表逐项检查接口一致性,发现类型或方向不一致时回到对应块修正。
不要用关联关系代替组合关系。组合表示“整体—部分”的强拥有关系,部分不能脱离整体独立存在;关联只表示结构连接。混用会导致后续 IBD 中部件实例的归属关系错误。