2. SysML核心图与复用表达基础
在SysML架构复用与产品线建模中,图不是“画得越全越好”,而是“选得越准越省”。SysML九种图中,与复用表达最直接相关的是六种:块定义图(BDD)、内部块图(IBD)、参数图(PAR)、需求图(REQ)、活动图(ACT)和状态机图(STM)。它们各自回答不同的问题,也各自有明确的表达边界。选错图,轻则模型冗余,重则复用边界模糊、变体配置失控。
六种图在复用中的分工
块定义图(BDD)回答“系统由哪些可复用单元构成、它们之间是什么关系”。它是产品线公共资产的结构骨架,用块表示可复用组件、子系统或平台元素,用泛化表示共性到变体的继承,用组合表示整体与部分。BDD的复用价值在于:把“哪些块是平台级、哪些是产品级”通过泛化层次和构造型(如«Platform»、«Variant»)显式标注出来。边界是:BDD只表达静态结构,不表达时序、不表达参数约束、不表达行为触发。
内部块图(IBD)回答“一个块内部,可复用部件如何通过端口和连接器装配”。它是BDD的“展开视图”,用端口(Port)、流属性(Flow Property)和连接器(Connector)描述部件之间的接口与交互路径。在复用中,IBD用于验证变体替换后接口是否仍然兼容——例如把«Variant»块替换进平台框架时,端口类型、方向、流属性必须匹配。边界是:IBD不定义块本身,只定义块内部实例化后的连接关系。
参数图(PAR)回答“可复用单元的性能指标之间有什么数学约束”。它用约束属性(Constraint Property)和绑定连接器(Binding Connector)把BDD中的值属性(Value Property)关联起来,形成参数网络。在复用中,PAR是变体配置的“计算引擎”:当平台级参数(如最大载荷、供电电压)被变体覆盖时,PAR能自动传播约束,判断变体是否满足系统级指标。边界是:PAR只表达约束关系,不表达求解顺序,也不表达行为。
需求图(REQ)回答“哪些需求被哪些可复用单元满足、变体如何影响需求覆盖”。它用需求(Requirement)、满足(Satisfy)、派生(Derive)、验证(Verify)等关系,把需求与块、测试用例、活动连接起来。在复用中,REQ用于追踪“平台需求—变体需求—复用单元”的覆盖链,防止变体引入后出现需求空洞或冲突。边界是:REQ不表达设计决策,只表达需求与设计元素之间的追溯关系。
活动图(ACT)回答“可复用流程或算法如何组织、输入输出是什么”。它用动作(Action)、控制流、对象流、分叉/汇合描述行为逻辑。在复用中,ACT适合表达可复用的测试流程、装配流程、信号处理链。边界是:ACT不表达对象的状态依赖,也不表达事件驱动的状态迁移。
状态机图(STM)回答“可复用单元在生命周期内如何响应事件、在状态间迁移”。它用状态(State)、迁移(Transition)、事件(Event)、守卫(Guard)描述离散行为。在复用中,STM适合表达模式切换、故障恢复、变体激活等状态相关逻辑。边界是:STM不表达并发动作的详细数据流,也不表达参数约束。
选择原则:从复用问题出发,而不是从图出发
实际建模中,最常见的错误是“先选图再找内容”。正确的顺序是:先明确当前要解决的复用问题属于哪一类,再匹配图型。以下四条判断路径可以直接使用。
第一,要表达“可复用单元有哪些、如何分类”,选BDD。例如某无人机产品线中,平台级块«Platform»包含飞控、动力、通信三个子块,变体块«Variant»继承平台块并覆盖部分属性。BDD用泛化箭头从变体指向平台,用组合菱形从平台指向子块,一眼就能看出哪些是公共资产、哪些是变体扩展。
第二,要表达“可复用部件如何装配、接口是否兼容”,选IBD。例如飞控块内部,IMU通过SPI端口连接主处理器,主处理器通过UART端口连接通信模块。当变体更换通信模块时,IBD中端口类型和流属性必须一致,否则连接器断裂,复用失败。IBD是接口兼容性的“检查图”。
第三,要表达“变体参数是否满足系统约束”,选PAR。例如平台级约束:起飞重量 = 空机重量 + 载荷重量 + 燃油重量,且起飞重量 ≤ 25kg。当变体把载荷重量从3kg改为5kg时,PAR中的约束属性自动计算,若结果超过25kg则标记冲突。PAR是变体配置的“计算器”。
第四,要表达“需求覆盖与行为逻辑”,选REQ、ACT或STM。REQ用于追踪“平台需求—变体需求—复用单元”的满足链;ACT用于表达可复用的测试流程或装配流程;STM用于表达模式切换、故障恢复等状态逻辑。三者不混用:REQ不画动作流,ACT不画状态迁移,STM不画需求追溯。
一个可执行的选图检查表
为避免选图随意,建议在每次建模前用以下检查表快速判断。该表为示例工具,字段可根据项目实际调整。
| 复用问题 | 首选图 | 辅助图 | 关键检查点 |
|---|---|---|---|
| 可复用单元分类与层次 | BDD | — | 泛化方向是否正确、构造型是否标注 |
| 变体替换后接口兼容性 | IBD | BDD | 端口类型、方向、流属性是否匹配 |
| 变体参数是否满足系统约束 | PAR | BDD | 约束属性绑定是否正确、单位是否统一 |
| 需求覆盖与追溯完整性 | REQ | BDD | 满足/派生/验证关系是否闭环 |
| 可复用流程或算法逻辑 | ACT | IBD | 输入输出对象流是否完整 |
| 事件驱动的状态迁移 | STM | ACT | 事件、守卫、动作是否成对出现 |
总结来说,六种图在复用中的选择原则可以压缩为一句话:结构用BDD,装配用IBD,约束用PAR,追溯用REQ,流程用ACT,状态用STM。每张图只回答它最擅长的问题,不越界、不混用,才能让产品线模型既清晰又可复用。