模型驱动工程(MDE)高级讲义
本模块是张天《软件方法学》研究生课程中MDE 章节的配套讲义——从"压力与进步"的历史叙事出发,走到 OMG 标准族(UML/MOF/XMI/CWM)与 MDA 框架,最后落到"元模型是什么、怎么用三种主流元-元模型(MOF / Ecore / KM3)构造一个领域元模型"的工程方法。 讲义按"总-分-例-实"四段式组织:先把背景与标准理清,再用三节拆开元建模与建模,最后以一节落地"一个最小 DSL 的元模型怎么写"。
概览
| 项目 | 说明 |
|---|---|
| 模块定位 | 与第 1 层教学讲义并列的独立高级模块——专讲 MDE / MDA / 元建模这条"提高抽象层次"的方法学主线 |
| 与第 1 层讲义的关系 | 第 1 层回答"软件工程全过程与 AI Agent 的协作";本模块回答"如何从模型出发自动构造软件系统"——两者通过"模型/元模型/转换"三个概念自然连接 |
| 计数口径 | 本模块单独计数(不计入全站 44 张讲义与 4 张专题),未来扩展后另立统计;模块下讲义为"部分 (Part) → 章节 (Section) → 讲义页 (Lecture)"三级 |
| 目录结构 | mde/index.html(本页)+ mde/NN-<part>.html(每部分一篇长讲义);未来若拆分单讲,可在 mde/ 下再加子目录 |
| 读完整个模块,你会 | 理解 MDA → MDE 的概念演化、OMG 四标准(UML/MOF/XMI/CWM)的协作关系、四层元模型体系、M3/M2/M1/M0 四层的工程含义,并能用 Ecore / KM3 三层结构构造一个领域 DSL 的元模型 |
模块地图
由 4 块积木撑起的 MDE 知识体系
这是本模块的整体导航图。从左到右走过一遍,就知道每篇讲义在拼哪一块积木。
为什么抽象层次要一升再升"] S["标准与框架
OMG 四标准 + MDA 框架"] C["元建模核心概念
元模型 / 体系语言族 / 四层结构"] T["三大元-元模型
MOF / Ecore / KM3"] H -->|"是 ... 的动因"| S S -->|"被 ... 抽象"| C C -->|"由 ... 给出"| T T -.->|"回到工程层:构造一个最小 DSL 元模型"| C
| 板块 | 核心问题 | 对应讲义 |
|---|---|---|
| 历史与压力 | 过去 50 年"提高抽象层次"的两项关键进展是什么?为什么 21 世纪初要提出 MDA? | 第 1 部分 1 |
| 标准与框架 | OMG 四标准(UML/MOF/XMI/CWM)各管什么?PIM/PSM/CIM 三层抽象是怎么落到代码的? | 第 1 部分 2-3 |
| 元建模核心概念 | 元模型 / 元-元模型 / 体系建模语言族是什么?四层结构在工程上意味着什么? | 第 2 部分 1 |
| 三大元-元模型 | MOF / Ecore / KM3 三家为什么都能描述同一个领域?它们各自的取舍点是什么? | 第 2 部分 2-4 |
| 实战检验(2026 新增) | 拿本仓两套真实轨迹元模型(正向 19-EClass / 逆向 13-EClass)+ 18 源真实轨迹,把前四块积木全部过一遍手 | 第四模块 04–08 |
已收录讲义
第一部分:导论(MDE 背景)
这一篇回答三个递进问题:过去 50 年软件抽象层次的演进说明了什么?为什么中间件分化倒逼出 MDA?MDA → MDE 的概念跃迁背后是什么?课程目标、参考资料、四层元模型与 OMG 四标准一并在这一讲里铺底。
- 以机器 / 应用 / 企业为中心的"三段式计算"演进 + 中间件分化带来的异构性挑战
- OMG 四标准(UML / MOF / XMI / CWM)与 MDA 框架的协作关系;CIM/PIM/PSM 三层抽象
- 从 MDA 到 MDE 的术语演化(2005 MoDELS 改名 + 2007 ICSE FoSE 分会),及模型作为首要软件制品的核心思想
- 中间件平台对比图(C/S、B/S、应用服务器、数据库)
- MDA 的 PIM → PSM 映射全景图(5 种中间件平台)
- MDE 四层元模型体系实例(M3 MOF / M2 UML / M1 模型 / M0 对象)
- OMG 四标准对四层的"分管"矩阵图
第二部分:MDE 技术框架 1(元建模和建模)
这一篇是本模块的核心长讲义:4 个 Section(概念 → MOF → Ecore → KM3)覆盖了元建模的"概念-标准-工具-形式化"全栈。每个 Section 都用图示 + 反例 + 操作步骤把"如何构造一个领域元模型"的方法一步步铺开。
- Section 1 概念层:元模型层次、建模语言族、体系建模语言族、反射式元建模
- Section 2 MOF 层:MOF 2.0 与 UML 2.0 的"复用-被复用"尴尬关系;四层元模型结构;包引入 / 包合并两种复用机制
- Section 3 Ecore 层:3 层结构(合并 M3/M2);EClass / EAttribute / EReference / EDataType / EPackage 五大构造块;Structural Feature / Behavioral Feature 分裂
- Section 4 KM3 层:14 类的极简设计;一阶谓词逻辑形式化定义;SimpleKM3 + Opposite + Inheritance 三层扩展
- MOF 与 UML "Core 包双层复用"示意图
- Ecore Kernel / Structural Features / Classifiers / Operations / Packages 五大图谱
- KM3 元建模栈(4 张图)
- SimpleKM3 一阶谓词定义(Node / Edge / IsKindOf)
第三部分:前沿拓展(2026)
这一篇是本模块的 v0.2 新增长讲义:6 个章节覆盖了讲义停留 2001 年视角的所有关键更新点——OMG 治理变更(2025-10-01)、MDA 四标准 2026 年官方状态核验表、SysML v2 / KerML(2025-07-21 OMG 最终采纳)、Störrle / Lano / Akthar 2024 实证研究、LLM × MDE 双向赋能(Di Rocco SoSyM 2025)、语言工程工具栈分叉(Xtext / Langium / MPS)、MBSE 与数字孪生。
- 第一节:OMG → EDM Association(2025-10-01)的治理变更与对标准生态的潜在影响
- 第二节:UML 2.5.1 / MOF 2.5.1 / XMI 2.5.1 / CWM 1.1(停滞)/ QVT 1.3 — 五大标准 2026 官方状态
- 第三节:Störrle(汽车行业质性)/ Lano(25 年 349 篇综述)/ Akthar(75.1% 建模使用率)— 三项 2024 实证
- 第四节:SysML v2 三件套(KerML + SysML v2 + API & Services)的 2025 最终采纳与对元建模形式化的工业级落地
- 第五节:LLM × MDE 双向赋能 + Xtext/Langium/MPS 三足鼎立
- 第六节:MBSE 闭环(SysML v2 为核心)与数字孪生(Digital Twin Consortium)
- OMG 时间线(1989 → 2025 → 2026+)mermaid 图
- SysML v2 三件套关系图(KerML 语义地基 + SysML 语法 + API 接口)
- LLM × MDE 双向赋能图(LLM for MDE / MDE for LLM)
- 语言工程工具栈取舍矩阵(Xtext / Langium / MPS)
- MBSE 生命周期闭环图
- 第二部分 2:元建模的高级话题(多视点、Profile、约束、OCL)
- 第二部分 3:模型转换(QVT、ATL、规则系统)
- 独立实验模块:基于 Ecore / KM3 构造一个领域 DSL 元模型(IDE / EMF 项目骨架)
第四模块:轨迹元建模实战(双元模型 + 真实实例)
理论三部曲回答「MDE 是什么」;这个专题回答「MDE 在 2026 年的真实研究里怎么用」:同一领域(Agent 执行轨迹)的两套元模型互为镜子——正向精雕(先设计语言、19 个类、20 条不变量、「元模型即代码」的工程治理)与逆向归纳(26 种真实落盘收敛成 13 个类、认源 → 映射 → 回译、宁可拒答不可错认)——再用 18 源真实轨迹把「文件 → 实例 → 元类」三层一线走给你看。
阅读路径建议
| 角色 | 目标 | 推荐路径 |
|---|---|---|
| 第一次来 | 了解 MDE 在说啥 | 第 1 部分:1.1 抽象层次演进 + 1.2 OMG 四标准 + 1.3 MDA → MDE 概念跃迁(其余可扫) |
| 动手派 | 用 Ecore / KM3 写一个领域元模型 | 第 2 部分 Section 3(Ecore 五大构造块)+ Section 4(KM3 形式化定义)为主,跳过 Section 2(MOF) |
| 研究者 | 理解 OMG 标准族的内在逻辑 | 第 1 部分 1.3(四层元模型 + OMG 标准分管矩阵)+ 第 2 部分 Section 2(MOF 与 UML 的复用关系)+ 第 3 部分第四节 SysML v2/KerML |
| 工业派 | 选型:Eclipse EMF 生态怎么挑 | 第 2 部分 Section 3(Ecore 实战:EClass/EReference/containment/opposite)+ Section 5(EMF 2.44 生态)+ 第 3 部分第五节 Xtext/Langium/MPS 选型 |
| 教师 / TA | 带这门课需要哪些前置 | 第 1 部分 1.1(历史压力)+ 第 2 部分 Section 1(基本概念)即可铺垫;2026 现状修订必看第 3 部分第一节 OMG 治理变更 + 第二节四标准现状 |
| 想看活案例 | 用真实项目检验理论 | 直接进第四模块实战专题:04 建立地图 → 07 看真实实例(最直观)→ 08 动手;理论卡壳再回第 2 部分 |
| LLM 时代的研究者 | 了解 LLM × MDE 的双向赋能 | 第 3 部分第五节 LLM × MDE 双向赋能(Di Rocco SoSyM 2025 综述 + Fedeli MODELS 2026 论文) |
课件来源与版本
| 项目 | 说明 |
|---|---|
| 原始课件 | 南京大学计算机科学与技术系 张天(ztluck@nju.edu.cn) 《软件方法学》研究生课程 · 2025 秋季 · MDE 章节 |
| 讲义电子化 |
v0.1(2026-09-22):将原始 PPT(第一部分 55 张 + 第二部分 192 张 = 247 张幻灯片)整理为讲义网页;保留原讲义章节结构、核心论点、图示与参考文献;补充大量图示化 / 结构化 / 上下文衔接注释 v0.2(同日增量):基于《模型驱动工程-导论与元建模-深度调研报告-2026.09》(31 篇参考文献)增补——
|
| 整理方式 | 按"总-分-例-实"四段式重组:先导论给出概念骨架,再元建模和建模拆开三个元-元模型,v0.2 新增第三部分作为 2026 年现状与前沿拓展,逐节配图表 + 反例 + 操作步骤 + 调研报告延伸 |
| 与原讲义的差异 | 原 PPT 中的"目录页 / 课程章节 / 章节重复页"合并为讲义侧栏导航;章节重复的总结页仅保留第一节后的版本;图示全部重新归类并标注编号;v0.2 在不删除原讲义内容的前提下,追加 2026 年事实更新与前沿拓展 |