EMF 自学笔记 1

先搜点中文资料,对EMF有个大概了解。

 

一楼献给百度百科。

EMF  Eclipse Modeling Framework  基于Eclipse的模型框架。它是Eclipse MDA(Model Driven Architecture)的一个重要组成部分,是Eclipse中许多项目的基础( e.g, GEF), EMF可以将模型转换成高效的,正确的,和易于定制的Java代码。EMF项目的最初目标是要实现OMG(Object Management Group)的MOF规范(Meta Object Facility)。在项目的进行中EMF的开发人员根据大量的实践经验对MOF规范进行了再加工,提取出了一些核心的元素集(MOF 2.0 中称为EMOF(Essential MOF))。可以说EMF 是MOF核心子集的java高效实现,在EMF 中MOF核心子集的实现称为Ecore。
 
= =!! 汗啊,问他一个名词,他抛出来N个新名词,继续百度百科。
MDA  Model Driven Architecture  模型驱动架构
UML:UML被MDA用来描述各种模型。
MOF:MOF(Meta Object Facility 元对象机制)是比UML更高层次的抽象,它的目的是为了描述UML的扩展或者其它未来可能出现的类UML的建模语言。
 
八进制的博客上有EMF的系列文章,传送门在此
http://www.cnblogs.com/bjzhanghao/category/38915.html
 
以下内容摘自该博客:
  • EMF可以看作是Eclipse上的MDA一个实现(代码生成是MDA 的重要组成部分之一),它能够生成在Eclipse上执行的代码。
  • 模型是由元模型(Meta Model)定义的,例如UML里“类”和“属性”这些概念是在UML的元模型里定义的,而元模型又是由“元元模型”来定义,后者多是自描述的,也就是能够自己定义自己。
  • MOF规范里,元元模型处于M3层,元模型处于M2层,往下的M1层是模型,而M0层是实例。
  • EMF定义了一套Ecore元模型,该模型是EMOF(MOF的一个子集, MOF是Meta-Object Facility的缩写)的一个实现,这是一个自描述的模型,可以认为它处于MOF中的M2层,即与UML元模型相同的位置。
  • 用Ecore元模型可以定义 ecore模型,也就是.ecore文件,这个模型处于M1层,而ecore模型的实例处于M0层。
  • 用EMF构造一个应用的步骤很简单:1、构造模型,2、生成代码,前者可以通过UML类图、Java接口、 XML Schema等多种方式定义,后者可以选择只生成模型部分的代码,也可以同时生成编辑器部分的代码,对这个编辑器做一些定制就可以得到符合需求的应用程序。

该系列文章的例子使用了EclipseUML,我没下载到,只能去找点别的资料了。

找了半天也没找到好的文章,就用online help吧。

http://help.eclipse.org/help32/index.jsp  EMF Developer Guide > Tutorials > Generating an EMF Model

推荐看本机的help,EMF版本不同会略有出入。

 

该Tutorial步骤摘要:

  1. 通过 File>New>Project... 菜单选择 Eclipse Modeling Framework 目录下的 Empty EMF Project.
  2. 使用包含"@model"标注的Interface和Class来定义EMF模型。(见Tutorial)
  3. 创建 EMF Model. (见4-7步)
  4. 在model目录的上下文菜单中选择 New>Other... 打开 New Wizard,选择Eclipse Modeling Framework 目录下的 EMF Generator Model. (online help 中选的是 EMF Model,我的EMF版本较高,选项有变化)
  5. 在下一向导页面中输入文件名 library.genmodel. 必须以 .genmodel 为后缀名。
  6. 下一向导页面用来选择模型导入方式,一共有四种,该例子使用 Annotated Java 作为导入模型的手段。
  7. 完成向导,此时 model 目录下生成了两个新文件 library.ecore 与 library.genmodel. 前者为 Ecore Model. 后者为 Generator Model, controls code generation for the model.
  8. 在打开的 library.genmodel 的根结点上打开上下文菜单,选择 Generate Model Code. 这样代码就生成好了。今后就在生成好的代码上继续开发。如果模型有变,就重新生成代码,EMF会自动合并你写的代码。也可以选择 Generator Model 的一个子结点来生成部分模型的代码。
  9. 同上的上下文菜单中选择 Generate Edit Code, 可生成一个新插件 library.edit. 实现了一个 Structured View 和修改模型对象的命令。
  10. 同上的上下文菜单中选择 Generate Editor Code, 可生成一个新插件 library.editor. 实现了 Editor 和 Wizard.
  11. 运行生成的Editor插件(通过Run As/Eclipse Application)。在打开的新工作台中创建一个 General Project, 通过 New>Other... 上下文菜单项打开 New Wizard, 选择 Example EMF Model Creation Wizards 目录下的 Library Model.

 

 

你可能感兴趣的:(EMF)