快速业务通道

使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码

时间:2011-03-26 IBM Adrian Powell

EMF 究竟是什么?

Eclipse Modeling Framework(EMF)是一个开放源代码的 框架,它的目标是实现模型驱动架构(Model-Driven Architecture)的开发。如果我们 当中的少数人有幸得到了某个 UML 模型,那么这个框架就可以帮助我们将文档变成代码 。至于其他人,这个工具也使您又有一次机会向老板证实,把时间花在为解决方案建模上 是值得的。除了可以生成令人赞叹的 Java 代码之外,EMF 还可以生成 Eclipse 插件, 以及图形化的可定制编辑器。当您改变模型时(这种情况真的会出现),EMF 可以通过单 击一个按钮,就使代码和模型保持同步。

EMF 生成的代码也不是一种只配丢进垃 圾箱的解决方案。这种代码支持标准的创建、获取、更新和删除操作,而且还支持元数约 束、复杂关系和继承结构、屏蔽定义,以及一套属性描述。生成的代码还提供通知、参照 完整性和可定制的 XMI 持久性。您所需要做的全部工作就是创建一个对象模型,就像您 以前也想做的那样。

EMF 是比较新的事物,但前景广阔,对它持续支持的力度也 很强。它实现的是一项公共标准,即对象管理组织(Object Management Group)的元对 象工具(Meta-Object Facility,MOF)。现在 EMF 已经对 MOF 的第二版进行了增强。 更进一步看,EMF 还是 EMF:XSD 以及 Hyades 等 Eclipse 项目的基础,大多数 IBM WebSphere Studio 产品也都使用它。EMF 第二版的开发已经开始,开发构建应该很快就 会出炉。第二版开发计划中包括更好的 XML Schema 支持、更灵活的代码生成方式以及模 型之间的映射机制。

让工具自己说话

商业宣传已经说得够多了。现在让我 们直接进入代码中,看看 EMF 到底能做些什么。下面的例子都是用 Eclipse 3.0M7 和 EMF 2.0.0,再加上与之匹配的 XSD 工具箱实现的。现在有四种独立的 EMF 开发流程, 每一种都适用于不同版本的 Eclipse,所以一定要保证根据您的 Eclipse 版本选择了正 确的 EMF 版本。

我们将以一个简单的 Web 论坛为例,向您展示最重要的特性。 模型的根为 Forum ,下面包括一组 Member 和 Topic 。每一个 Topic 都具有一个 TopicCategory (枚举类型), Member 和 Topic 通过 Post 类间接相关联,这两者之 间也存在直接关联,因为 Member 可以创建 Topic 。

用 UML 和 Omondo 创建 EMF 模型

Omondo 的 UML 插件是在 Eclipse 中创建 UML 文档的方便可靠的工具 。它看起来就像是 Rational Rose 受冷落的小兄弟,但除非是您需要特别强大的功能, 否则用它就可以工作得很好了。不过,该工具尚不支持 Eclipse 3,所以我采用 Eclipse 2.1 来创建 UML 类图。

一开始,我们创建一个新的 Java 项目 UMLForum,以及 一个新包 com.ibm.example.forum 。再创建一个新的 EMF 类图, forum.ucd ,存放在 src/com/ibm/example/forum 下。目录中创建了两个文件,forum.ecd 和 forum.ecore。 向类图中增加一个新类,名为 Forum ,然后单击 Finished。向 Forum 类中增加一条属 性描述,类型为 EString (对于所有的简单 Java 类都有相应的 Ecore 类),如图 1 所示。对于属性的特性,只选择 changeable ,并将范围设为从 0 到 1。

如果您 过一会改主意了,想使用其他的特性,可以打开 Properties 视图,选择其中的类或属性 。

图 1. 新建的 Forum 类及其属性的性质

使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码(2)

时间:2011-03-26 IBM Adrian Powell

对于下 列接口重复上述步骤:

接口 属性 类型
Member nickname EString
Top ic title EString
Post comment EString

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号