2. SysML图分类与汽车电子适用场景

SysML 共定义九种图,分为三大类:结构图(块定义图、内部块图、参数图、包图)、行为图(活动图、序列图、状态机图、用例图)和需求图。对汽车电子系统而言,这九种图并非"每张都要画",而是各自承担不同的建模职责。理解每种图"回答什么问题、适合什么场景",比记住图形符号更重要。本节按"结构—行为—需求"三条主线,结合汽车电子典型对象说明其适用场景。

结构图:描述系统"由什么组成、如何连接"

块定义图(BDD)回答"系统由哪些部件构成、各自具备什么属性"。在汽车电子中,BDD 常用于整车电子电气架构的顶层分解。例如将"整车控制器"分解为"动力域控制器、车身域控制器、智能座舱域控制器",每个块定义其端口、属性与操作。BDD 的典型元素包括块(Block)、值属性、端口、接口和关联关系。汽车电子中常见的 <<ecu>>、<<sensor>>、<<actuator>> 等构造型(Stereotype)就是通过 BDD 表达的。

内部块图(IBD)回答"块内部各部件如何连接、数据如何流动"。BDD 给出静态分解,IBD 则展示块内部实例(Part)之间的连接器和端口绑定。汽车电子中,IBD 非常适合描述一个域控制器内部 SoC、MCU、CAN 收发器、电源管理芯片之间的信号连接,或描述一条 CAN 总线上各 ECU 的连接拓扑。IBD 中的连接器(Connector)对应实际线束或总线,端口(Port)对应引脚或通信接口。

参数图(Parametric Diagram)回答"系统性能参数之间满足什么约束"。它通过约束块(Constraint Block)和约束参数,把工程方程绑定到值属性上。汽车电子中,参数图常用于制动距离计算、电机扭矩—电流关系、电池 SOC 估算、热管理散热功率等场景。例如将制动距离公式 s = v²/(2·a) 作为约束,把车速、减速度、制动距离三个值属性绑定,即可在模型层面进行参数权衡。

包图(Package Diagram)回答"模型如何组织、命名空间如何划分"。汽车电子项目模型规模大,包图用于按域、按功能或按层级组织模型元素,例如 Vehicle::Powertrain::BMS 这样的包结构,并可通过依赖关系表达模型间的引用。

行为图:描述系统"如何运行、如何交互"

用例图(Use Case Diagram)回答"系统为谁提供什么服务"。汽车电子中,用例图适合在需求早期界定系统边界与外部参与者。例如"驾驶员"作为参与者,与"启动车辆""开启自适应巡航""远程解锁"等用例关联;"诊断仪"作为另一参与者,与"读取故障码"关联。用例图不描述内部实现,只界定系统对外提供的功能范围。

活动图(Activity Diagram)回答"一个功能或流程按什么顺序执行、有哪些分支与并发"。汽车电子中,活动图适合描述控制逻辑、诊断流程、上下电时序等。例如"高压上电流程"可用活动图表达:钥匙 ON → 自检 → 预充继电器闭合 → 预充完成判断 → 主继电器闭合 → 上电完成,其中"预充完成判断"是一个决策节点,超时则进入故障处理分支。活动图支持分叉/汇合(并发)和泳道(责任分配),适合表达多 ECU 协同的流程。

序列图(Sequence Diagram)回答"对象之间按时间顺序交换了哪些消息"。汽车电子中,序列图是描述通信协议交互的利器。例如描述 BMS 与 VCU 之间通过 CAN 报文交互:VCU 发送 0x101 请求上高压,BMS 回复 0x201 允许上高压,VCU 再发送 0x102 闭合主继电器。序列图能清晰展示消息顺序、同步/异步、超时与备选路径(alt/opt 组合片段),是通信矩阵设计的常用工具。

状态机图(State Machine Diagram)回答"一个对象在其生命周期内经历哪些状态、什么事件触发状态迁移"。汽车电子中,状态机图几乎无处不在:整车电源状态(OFF/ACC/ON/READY)、BMS 状态(休眠/待机/预充/放电/故障)、车门锁状态、充电状态等。状态机图强调状态、事件、迁移条件和动作,适合表达具有明确状态语义的控制逻辑。

需求图:描述"需求是什么、如何被满足"

需求图(Requirement Diagram)回答"需求之间以及需求与设计元素之间是什么关系"。SysML 需求图的核心是需求元素及其 <<derive>>、<<satisfy>>、<<verify>>>、<<refine>> 等关系。汽车电子中,需求图用于建立"法规/客户需求 → 系统需求 → 子系统需求 → 设计元素 → 测试用例"的追溯链。例如"整车续航 ≥ 500 km"这一需求,可被"电池包容量 ≥ 75 kWh"和"整车风阻系数 ≤ 0.28"两条子需求派生,并由具体块和测试用例满足与验证。

SysML 九图分类与汽车电子适用场景 结构图 · 由什么组成 行为图 · 如何运行 需求图 · 要满足什么 块定义图 BDD 整车E/E架构分解、ECU构造型 端口/属性/操作定义 内部块图 IBD 域控制器内部SoC/MCU/收发器 CAN总线拓扑、线束连接 参数图 PAR 制动距离、扭矩-电流、SOC估算 约束块绑定值属性 包图 PKG 按域/功能/层级组织模型 命名空间与依赖管理 用例图 UC 驾驶员/诊断仪与系统交互 界定系统边界与对外服务 活动图 ACT 高压上电时序、诊断流程 决策/并发/泳道责任分配 序列图 SD BMS↔VCU CAN报文交互 消息顺序、超时、alt/opt 状态机图 STM 整车电源、BMS、车门锁状态 事件触发迁移与动作 需求图 REQ 建立需求追溯链: 法规/客户需求 ↓ <<derive>> 系统需求 ↓ <<derive>> 子系统需求 ↓ <<satisfy>> 设计元素(块) ↓ <<verify>> 测试用例 示例:续航≥500km → 电池≥75kWh → 风阻≤0.28 静态结构 · 定义"是什么" 动态行为 · 定义"怎么做" 需求追溯 · 定义"为什么"

汽车电子场景下的选图原则

面对一个具体建模任务,可按以下判断路径选图:若问题是"系统由哪些部件组成",选 BDD;若问题是"部件之间怎么连",选 IBD;若问题是"性能参数满足什么方程",选参数图;若问题是"模型怎么组织",选包图;若问题是"系统对外提供什么服务",选用例图;若问题是"一个流程按什么顺序走",选活动图;若问题是"两个对象之间消息怎么交互",选序列图;若问题是"对象有哪些状态、怎么迁移",选状态机图;若问题是"需求怎么追溯、怎么被满足和验证",选需求图。

实际项目中,九种图往往组合使用。以 BMS 开发为例:用 BDD 定义 BMS 块及其端口;用 IBD 描述内部 AFE、MCU、CAN 收发器连接;用状态机图描述 BMS 状态迁移;用序列图描述与 VCU 的 CAN 交互;用活动图描述故障诊断流程;用参数图描述 SOC 估算约束;用需求图把"过压保护阈值 4.25V"追溯到具体设计元素与测试用例;用包图组织整个 BMS 模型。这种"结构 + 行为 + 需求"的组合,正是 SysML 在汽车电子中落地的基本形态。

选图速记:结构图回答"是什么",行为图回答"怎么做",需求图回答"为什么"。同一对象通常需要多张图从不同视角描述,不存在"一张图包打天下"的情况。
常见误区:不要用活动图去表达对象间的消息交互(那是序列图的职责),也不要用状态机图去表达无状态语义的纯计算流程。选错图型会导致模型语义模糊,后续难以自动校验和追溯。