基于 Eclipse Epsilon 的模型驱动工程
在实践中学习模型驱动工程:把系统描述为模型,定义编写模型所用的语言,再让工具对模型进行查询、检查、转换和生成。所有示例都可以在浏览器中通过 Eclipse Epsilon Playground 运行。
学习方式
每个模块需要三到四小时。读完一节后,点击示例上的在 Playground 中打开。Epsilon Playground 会载入该示例,你可以运行、修改并再次运行。第 9 模块之前无需安装任何软件。
每个示例下方的输出由构建页面时的 Eclipse Epsilon 2.8.0 实际运行得到。Playground 可能运行较新的 Epsilon,部分提示措辞会有所不同,并且不显示关于模型的警告。你在 Playground 中的修改不会被保存;如需保留,请使用其 Download 按钮。
每个模块最后都有附参考解答的练习和简短自测。学习进度保存在当前浏览器中,中英文版本共享。
模块列表
模块 01
什么是模型驱动工程?
模型、元模型与符合性;为何借助模型实现自动化;四类模型管理任务;初识 Epsilon Playground。
已开放 · 3 小时
模块 02
元建模
用 Emfatic 设计元模型:类、属性、引用、包含、反向引用、继承与枚举。
已开放 · 4 小时
模块 03
构建与查看模型
用 Flexmi 的 XML 与 YAML 写法编写模型,按名称解析引用,读懂符合性警告并生成模型图。
已开放 · 3 小时
模块 04
查询模型
用 EOL 导航和查询模型:集合、一阶操作、类型上的操作以及修改模型。
已开放 · 4 小时
模块 05
验证模型
用 EVL 表达良构性规则:约束、建议性检查(critique)、守卫条件与修复。
已开放 · 3 小时
模块 06
生成代码与文本
用 EGL 模板和 EGX 规则从模型生成 Java、HTML 和图。
已开放 · 4 小时
模块 07
模型到模型转换
用 ETL 规则、守卫条件、equivalent 与惰性规则在元模型之间转换。
已开放 · 4 小时
模块 08
模型驱动工程与大语言模型
让大语言模型起草元模型和程序,用 Epsilon 检查草稿,并从模型生成提示词。
已开放 · 3 小时
模块 09
从 Playground 到真实项目
安装 Eclipse Epsilon,通过 Ant、Maven 和 Java 运行程序,并处理非 EMF 模型。
已开放 · 4 小时
模块 10
综合项目:MiniJDL
端到端构建一个 JHipster 风格的实体语言:元模型、模型、验证、生成与转换。
已开放 · 4 小时
致谢
本系列借鉴了 Dimitris Kolovos 关于模型驱动工程的文章,并在使用处注明出处:Model-Driven Engineering Terminology、Metamodelling with ChatGPT 和 Minimal JHipster JDL Monolith Example。示例均为本系列编写;贯穿全系列的组件与连接器示例受到他的元建模文章以及 Epsilon Playground 中组件示例的启发。
Eclipse Epsilon 是 Eclipse 基金会的开源项目,由约克大学牵头开发。它的 Playground 由约克大学托管,让本系列的每个示例都能直接从浏览器运行。