Ran Wei / MBSE Series / 模块 3
EN
MBSE Series — Ran Wei

模块 3:建模语言

建模语言是什么、为什么重要,以及对 SysML v1、SysML v2、UML 及其他选项的概览 — 不深入教授任何一种语言。

前置要求:MBSE 模块 2
1

什么是建模语言?

在构建模型之前,你需要一种语言来表达它。建模语言(Modelling Language)不是编程语言 — 它不在计算机上运行以生成软件。相反,它提供了一种结构化的方式来描述系统:系统的组成部分、行为、需求和关系。

每种语言 — 无论是人类语言还是建模语言 — 都有三个基本方面:

类比

想想英语。它有语法(Syntax)— 例如"主语 + 动词 + 宾语"的规则。它有含义(Semantics)— 句子"The car accelerates"(汽车加速)传达了一个具体的概念。它用拉丁字母(Notation)书写 — 但同样的含义也可以用西里尔字母或汉字来表达。建模语言的工作方式完全相同:语法定义了你能写什么,语义定义了它意味着什么,表示法定义了它在页面或屏幕上的呈现方式。

概念人类语言示例建模语言示例
语法(Syntax)主语 – 动词 – 宾语 的语序Block 必须有名称;Port 连接到 Connector
语义(Semantics)"泵输送流体"有明确含义一个由 part def 定义类型的 part 表示"这是该定义的一个实例"
表示法(Notation)用拉丁字母书写(A、B、C…)带标签的方框(图形化)或 part pump : Pump(文本化)

表 1 — 语言的三个方面:人类语言 vs 建模语言

在评估任何建模语言时,请思考:语法是否定义良好?语义是否精确且无歧义?表示法是否支持团队的工作方式?

2

SysML v1:成熟的标准

SysML v1(Systems Modeling Language,系统建模语言第一版)由 OMG 于 2007 年发布。它被设计为 UML 的一个 Profile(剖面)— 即扩展和定制 UML 的面向软件的构造,使其适用于系统工程。近二十年来,SysML v1 一直是 MBSE 中使用最广泛的建模语言。

九种图类型

SysML v1 将模型组织为九种图类型,分为三个类别:

类别图类型用途
结构图Block Definition Diagram(BDD,模块定义图)定义 Block 及其关系(组合、泛化)
Internal Block Diagram(IBD,内部模块图)展示内部结构 — Block 内部的 Part、Port 和 Connector
Package Diagram(包图)将模型元素组织到包(命名空间)中
Parametric Diagram(参数图)捕获连接值属性的约束方程
行为图Activity Diagram(活动图)建模工作流、数据/控制流和动作
Sequence Diagram(序列图)展示 Part 之间随时间的消息交换
State Machine Diagram(状态机图)建模 Block 的状态、转换和事件
Use Case Diagram(用例图)捕获参与者及其与系统的交互
跨领域Requirement Diagram(需求图)追踪需求及其 satisfy/verify/refine 关系

表 2 — SysML v1 的九种图类型

优势

局限性

说明

本模块仅从高层次概述 SysML v1。我们不会在此深入教授其图形语法 — 目标是理解它是什么以及它在 MBSE 版图中的位置。

3

SysML v2:下一代语言

SysML v2 是系统建模语言的全新设计,由 OMG 于 2024 年发布。SysML v2 不再扩展 UML,而是建立在自己的基础之上 — KerML(Kernel Modeling Language,核心建模语言)— 提供精确的、数学化的语义。

核心创新

SysML v1 与 v2 对比

维度SysML v1SysML v2
基础UML Profile(继承 UML 元模型)KerML — 独立的、数学化的基础
表示法仅图形化图形化 + 标准文本表示法(STN)
语义非正式的,常有歧义精确的,由 KerML 形式化定义
互操作性无标准 API;工具锁定格式用于模型交换的标准 API
行为建模多种互不关联的图类型统一的 Action/State/Interaction 框架
成熟度成熟(2007);广泛的工具支持新发布(2024);生态系统快速成长中

表 3 — SysML v1 与 SysML v2 对比

提示

如需深入了解 SysML v2,请参阅我们的 SysML v2 教程系列。该系列通过九个模块从基础到高级全面介绍该语言。

4

其他建模语言

SysML 是最通用的系统建模语言,但并不是唯一的选择。根据你的领域,领域特定语言(Domain-Specific Language,DSL)可能更合适 — 或者可以与 SysML 一起使用,以解决专门的关注点。

语言领域表示法类型核心优势
UML软件工程图形化全面的软件设计;14 种图类型
AADL实时/嵌入式系统文本 + 图形精确建模时序、调度和资源预算
Modelica物理/仿真文本(基于方程)多领域物理仿真(热、电、机械)
EAST-ADL汽车行业图形(基于 UML)与 AUTOSAR 对齐的汽车专用抽象
Capella / Arcadia系统架构图形(方法驱动)方法与工具紧密集成;引导式架构工作流

表 4 — SysML 之外的建模语言概览

关键结论:SysML 是最通用的系统建模语言,也是 MBSE 的事实标准。然而,领域特定语言的存在是有充分理由的 — 它们编码了通用语言无法涵盖的领域知识。在实践中,组织通常使用 SysML 进行系统级架构建模,并使用 DSL 进行详细的领域建模。

说明

这并不是一个详尽的列表。其他值得注意的语言包括 BPMN(业务流程)、ArchiMate(企业架构)以及各种安全专用表示法(如故障树、STPA 图)。正确的选择取决于你的领域和工程环境。

5

如何选择语言

选择建模语言不是一个纯粹的技术决策。语言必须适合你的领域、你的团队、你的工具以及你的组织环境。最重要的是,语言不是孤立存在的 — 它必须与建模方法(模块 4)和建模工具(模块 5)协同工作。这三大支柱是相互依赖的。

决策因素

因素需要考虑的问题
领域适配性该语言是否支持你的领域所需的模型类型?(如实时约束、物理仿真、安全分析)
团队熟悉度你的团队是否已经了解这种语言?需要多少培训投入?
工具支持你的组织使用或能够采购的工具是否支持该语言?
标准合规性你的行业或客户是否要求使用特定标准?(如国防合同通常要求使用 SysML)
互操作性模型能否与供应商、合作伙伴或生态系统中的其他工具进行交换?
生态系统成熟度是否有教材、培训课程、社区论坛和咨询支持?

表 5 — 选择建模语言的决策因素

在许多组织中,答案很明确:SysML(v1 或 v2)是通用 MBSE 的默认选择,必要时辅以领域特定语言。但这个选择应该是经过深思熟虑的,而不是偶然做出的。

请记住:语言只是 MBSE 三大支柱之一。一种好的语言配合糟糕的方法,仍然会产生糟糕的模型。在下一个模块中,我们将转向支柱二 — 建模方法

下一模块

模块 4 — 支柱二:建模方法 — 为什么"只有语言"是不够的 — 视点、视图,以及主要 MBSE 框架的预览。