# lab03 **Repository Path**: ye-puxu/lab03 ## Basic Information - **Project Name**: lab03 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-08 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## **实验三 特定领域建模实验报告** ### **1.** **实验目标** ​ 掌握基于模型驱动的特定领域建模基本方法。 ​ 熟练掌握使用Eclipse EMF对语言进行元模型建模方法,使用Eclipse Sirius对选定语言进行图形建模方法,使用Eclipse Xtext对选定语言进行文本建模方法。 ### **2.** **实验内容** **实验准备:** 选定目标模型、实验插件安装 **任务1**: Eclipse EMF元模型建模 **任务2**: Eclipse Sirius图形语言建模 **任务3**: Eclipse Xtext文本语言建模 **任务4**: 插件构建及测试 ### 3.实验步骤 #### 任务一 选取Family模型,首先进行EMF元模型建模,如下所示: ![image-20250609062111784](readme.assets/image-20250609062111784.png) 然后在metamodel中进行测试,右击metamodel,点击run as Eclipse Application ![image-20250609062354388](readme.assets/image-20250609062354388.png) ​ 在Family中添加几个Man和Woman,并在Properties中配置他们之间的关系,设定Tom和Lucy为父母,其余三人为他们两个人的孩子 ![image-20250609062753063](readme.assets/image-20250609062753063.png) ​ Tom的children属性配置如下 ![image-20250609063042058](readme.assets/image-20250609063042058.png) 三个孩子的属性如下 ![image-20250609063315786](readme.assets/image-20250609063315786.png) #### 任务二 ​ 首先将自己定义的icon放入项目中,然后在design的basicfamily.odesign中配置ManNode、WomanMode、FatherEdge、MotherEdge和Section,配置完成的结构如下所示 ![image-20250609063625838](readme.assets/image-20250609063625838.png) ​ ManNode和WomanNode表示可视化的界面中Man和Woman节点的属性参数,设置label大小、位置以及导入自定义的icon。 ​ fatherEdge和motherEdge表示可视化界面中人物之间的关系的线条,可以导入自定义的icon。 ​ section中设置工具栏可以拖拽到画布的部分,当前设置的是可以创建Man节点的规则。 最终效果如下所示: ![image-20250609064253945](readme.assets/image-20250609064253945.png) 同时拖拽工具栏的Man可以将其拖到画布中 ![image-20250609064404598](readme.assets/image-20250609064404598.png) 在结构中也会增加 ![image-20250609064435876](readme.assets/image-20250609064435876.png) #### 任务三 使用 RM2PT 工具将从 EMF 元模型自动生成相应的 Xtext 语法 自动生成dsl文件 ![image-20250609033426936](readme.assets/image-20250609033426936.png) 用dsl文件自动生成Xtext文件 在对应的dsl文件自动生成Xtext文件 #### 任务四 右击pom.xml先后执行maven clean和maven install 在生成的target中找到压缩包并导入软件 ![image-20250609065130564](readme.assets/image-20250609065130564.png) 新建一个model project并新建family.basicfamilydsl文件 ![image-20250609065730792](readme.assets/image-20250609065730792.png) 可以看到成功解析了 ![image-20250609065955299](readme.assets/image-20250609065955299.png)