zoukankan      html  css  js  c++  java
  • Rational Rose创建EMF模型

    Rational Rose创建EMF相比XSD和Java Bean来说更直观,更符合“设计态”。在一些重量级的应用里面经常能看到Rational Rose做的EMF Model,比如EMF本身,UML2, WTP,DTP等。

    Rational Rose有很多的版本,我用的是7.0.0.4-IFIX02,基本与常见的EMF模型兼容。

    1 打开之前的设置

    任何EMF ECore模型都需要引用ECore,在Eclipse Plugins目录下有一个org.eclipse.emf.ecore插件,将其解压缩到硬盘某个目录,比如我机器上就是D:\extract\org.eclipse.emf.ecore,在子目录model下就是所有ECore模型相关的描述了,这里我们只留意两个文件:ECore.mdl和org.eclipse.emf.Ecore.cat,都是Rational Rose文件。

    使用文本编辑器如Notepad++打开ECore.mdl会看到$VABASE_PLUGINS_PATH的字样,这就是rational rose中需要设置的path map。打开Rational Rose,在菜单File->Edit Path Map中设置这个变量,比如我的:

    image

    这个设置完成之后最好重启Rational Rose.

    2 引用ECore

    引用之前首先在Rose的Logical View中创建一个package,因为EMF是以Package为单位的。创建完之后,选择Control XXX,生成一个cat文件。

    image

    选中菜单 File->Unit->Load,在弹出的对话框里面选择刚才解压缩的ecore插件model目录下的org.eclipse.emf.Ecore.cat,这样Ecore包就被引入进来了。

    现在在包下面创建Class 没有任何问题,也能够使用Ecore的相关模型元素。但是如果要设置一些非Rational Rose的信息,就没啥办法了。比如在EMF中一个类名字叫做Man,有一个ID属性作为主键。在这种情况下需要引入一些“额外”的Ecore meta model信息,这就是Rational Rose的PTY文件

    3 设置Ecore 的PTY

    ECore的PTY文件同样在Eclipse Plugin目录下,找到org.eclipse.emf.importer.rose插件,解压缩到某个目录,在其名为"rose"的子目录下有一个ecore.pty文件

    右键单击Rose工程最下面的Model Properties,在菜单中选中"ADD”,选中刚才看到的ecore.pty文件,增加之后有什么效果呢?

    没有增加ecore.pty之前的某个Class属性页

    image

    增加了ecore.pty之前的某个Class属性页

    image

    可以看到,多了一个名为Ecore相关的设置页,这个页里面就包含我们所见到的各种额外设置。

    4 导入EMF Model

    使用安装了EMF SDK的Eclipse,创建一个新的empty emf project,然后通过向导创建一个新的emf generator model,在"select a model importer"向导页中选中Rose Class model。

    在导入过程中还会有一个对话框,里面有一个CDM_EXTRACT_PATH,同样设置成为刚才解压插件的目录,比如我本机是D:\Extract。

    5 Stereotype的使用

    StereoType是UML提供的一种强大扩展机制,EMF也用了一些,常见的如下:

    • enumeration: 一个class的stereotype如果是enumeration,那么在导入之后,这个类的所有属性将会作为emum literal,类本身会变成一个ecore emum。
  • 相关阅读:
    Python基础之逻辑运算符
    Python基础之赋值运算符
    Python基础之算术运算符
    Python基础之格式化输出
    Python基础之while循环
    Python基础之if语句
    Python基础之注释
    Python基础之变量和常量
    Python基础之Python解释器
    Flask-登录练习
  • 原文地址:https://www.cnblogs.com/lifesting/p/2351852.html
Copyright © 2011-2022 走看看