IBM Rational XDE Java Code Model Importer 简介

如何将 Rational XDE Java Code Model 项目从 Rational XDE for Java 移植到 Rational Software Architect 或者 Rational Systems Developer

学习如何使用 IBM® Rational® XDE Java Code Model Importer 将您的项目从Rational XDE for Java 移植到 IBM® Rational® Software Architect 或者 IBM® Rational® Systems Developer。通过使用该工具,您可以利用 Rational 软件中的多样的 UML 和代码建模功能,移植您的代码以及代码模型。请按照指导逐步地操作。

Krishna Kishore (kishore.kumar@ustri.com), 软件工程师, IBM

Kishore Kumar photoKrishna Kishore 是 IBM 软件班加罗尔实验室的一名软件工程师。他工作于 Rational Systems Developer 团队。他的专业技能包括 UML 可视化建模和 UML Real Time 建模。他拥有印度海德拉巴的大学的计算机科学与工程学士学位和印度 AP 的 SSSIHL 的计算机科学与工程硕士学位。



2007 年 12 月 06 日

IBM® Rational® XDE Java Code Model Importer (模型导入器)是 IBM® Rational® Software Architect 和 IBM® Rational® Systems Developer (以后统称为 Rational 软件)中所提供的一个工具。该工具使得您可以从Java 的 Rational XDE for Java 中移植 Java™ 代码及相应的 Java 代码模型,从而能够使用 Rational UML 以及代码的建模和转换功能。

如果您在 IBM Installation Manager 中选择安装 IBM® Rational®XDE Base Model Importer (XMI),那么 Rational XDE Java Code Model Importer 将自动被安装。它移植了 Rational XDE 模型,包括您可能应用到那些模型中的各种定制的 Unified Modeling Language (UML) 规范。在运行该导入器之前,您将使用 XMI 来把 Java 代码模型及其相关的模型导入到您的 Rational Software Architect 工作区中。

关于导入器


移植的准备工作

您的计算机上应当安装以下软件,并且您应当对它们比较熟悉:

  • Rational Software Architect 或者 Rational Systems Developer,并且安装了 Rational XDE Java Code Model Importer 特性。注意:试用版本请点击参考资源
  • Rational XDE for Java

在 Rational Software Architect 或者 Rational Systems Developer 安装完毕之后,您必须指定 VM (虚拟机)的参数:

"-DXDE_JAVA_PRIMITIVETYPES"

您可以通过以下两种方式之一来指定这一参数:

  • 通过修改 eclipse.ini 文件(在 Rational 的安装目录下,与 eclipse.exe 文件在同一个目录下),在 -vmargs 参数下面添加如前所示的两个参数。无论您何时运行这些 Rational 软件,这一修改都将应用这些 VM 参数。
  • 通过在您运行该 Rational 软件时将该选项输入到命令行中。例如:
"install directory\eclipse.exe -product com.ibm.rational.rsd.product.ide
          -vmargs -DXDE_JAVA_PRIMITIVETYPES"

您还需要熟悉这些功能和特性:

  • 每一个产品是如何在 UML 方面影响 Java 的。这一知识使我们能够评价移植的结果,验证其结果是否可以被接受。
  • 每一个产品是如何同 UML 模型和 Java 协同工作的,包括理解 Rational XDE 中的 “双向工程”(RTE)的工作情况,以及理解 “操作的 模型-代码 理论”。这一知识使我们在导入期间能够决定是否要将导入的 Rational XDE Java 代码模型中的 UML 示意性的元素替换为可视化的相关的 Java 源代码元素,以及其后的执行混合建模

下一小节将详细的解释移植过程。


移植路线

重要提示:
在开始阅读每一步细节之前,请见图1所示,它描述了完整的移植路线:

图 1. 移植路线
移植路线

Rational XDE 软件中的一个 Java 代码模型项目能够包括两种类型的东西:Java 源文件Rational XDE 模型。Rational XDE 模型可以是多种类型的。在项目中可以有零个或者一个 Java 代码模型。通常来讲,Rational XDE 工作区中的所有模型都应当通过使用 XMI 被导入到 Rational 工作区中。然后您就能够使用该模型导入器来移植 Java 代码和代码模型。

整个的移植过程可以被划分为五个主要步骤。依据移植的大小和复杂性,可能会需要一次或者更多次的对这一 “五步过程” 的迭代:

  1. 计划
  2. 准备 Rational XDE 项目(UML 模型和 Java 代码)
  3. 导入 UML 模型
  4. 导入 Java 项目(重新捆绑 Java 代码到导入的 UML 模型)
  5. 在 Rational 软件中运行一个 UML-to-Java 转换,完成代码更新,为使用该代码做好准备

步骤 1. 计划

当计划您的 Rational XDE 到 Rational Software Architect 或者 Rational Systems Developer 移植时,主要涉及到两个问题:

  • 您的完整的移植策略。这一点同其他需要考虑的因素一起,将指导作出决定是否让您的整个团队同时开始使用 Rational 软件,或者在移植过程期间并行地使用 Rational XDE 和 Rationa 软件从而使团队的子集能够逐步的采用 Rational 软件。后一种方法更加具有挑战性。因为它设计维护并行的开发流,不止一次的执行实际模型移植步骤。您需要考虑许多因素,例如模型大小和模型用户的数量。这些因素将决定完成以下这些任务需要多长时间:
    • 在所有台式机上安装 Rational 软件
    • 对所有 Rational 软件的用户进行培训
    • 执行实际模型移植过程
  • 您是否选用混合的建模体系结构和谐、或者概念上的模型驱动开发 方法来进行 Rational XDE 双向工程。

步骤 2. 准备 Rational XDE 项目(UML 模型和 Java 代码)

执行以下步骤,为 Code Model Import 准备 Rational XDE 基础模型和 Java 项目代码:

  1. 在 Rational XDE for Java 中,同步 Java 代码模型从而 UML 模型 (.mdx file) 和 Java 项目处于同步。这一准备工作必须在移植前完成。重要提示:进行 Rational XDE Java 参数设置从而 maker tag 被启用(marker tags 是由 Rational XDE 代码生成器产生的注释。它以 <@modelguid> 开头,并且包含与 Java 类相关的 Rational XDE UML 模型元素唯一标识符。)
  2. 制作一个 Java 项目的备份,包括和 Java 代码模型相应的 Rational XDE 基础模型。
  3. 双击之,它将进行模型导入,JVM 设置已在本文的准备工作小节中被指定。

步骤 3. 导入 UML 模型

使用 Rational XDE Model Importer (XMI),导入 Rational XDE UML 模型。这应该包括所有的 Rational XDE Java 代码模型、所有参考或者被代码模型参考的 Rational XDE 内容模型,以及被代码模型参考的 Rational XDE 参考模型(例如 jdk_min.mdx)。

步骤 4. 导入 Java 项目

关于第一条路径

这是一个可选的步骤,因为该模型导入器能够将 Rational XDE Java 项目直接导入到 Rational 软件工作区中。然而,我们推荐如果 Rational XDE Java 项目很复杂的话,比如以下这些例子:

  • 该项目有不同的编码表:该项目编码表不同于工作区的编码表,或者该项目使用多于一种的编码表(例如,项目中的两种或者更多的 Java 文件拥有不同的编码表)。
  • 该项目定义了一个复杂的编译过程:该项目使定制的编译器或者编译过程。

从 Rational XDE 中导入 Java 项目时,有两种可选择的路线:

  • 根据第一条路线,您能够通过使用 “普通的” Eclipse 项目导入向导:File > General > Existing projects info Workspace 在调用模型导入器之前选择将 Rational XDE Java 导入到 Rational 软件工作区中。这将 Rational XDE Java 项目(Eclipse 1 项目)导入到 Rational 软件中,并升级它们到 Eclipse 3 项目。当它们被以这种方式导入时,该项目能够被作为 Rational XDE 模型导入器的输入来使用。
  • 根据第二条路线,您能够将 Rational XDE Java 项目作为导入器所执行的过程的一个在线 部分导入到 Rational 软件工作区中。图2显示了 Rational XDE Java 项目导入向导 (Rational XDE Java Code Model Importer 向导)。通过与它交互,您指定您想要模型导入器对步骤3中从 Rational XDE 中导入的 Rational 软件 UML 模型进行哪些操作。选择 File > Import > Other > Rational XDE Java Projects 来启动该向导。
图 2. Rational XDE Java Code Model Importer 向导
Rational XDE Java Code Model Importer 向导
  1. 在模型导入器向导中指定下列各项:
    • 将 Java 项目的列表添加到 Selected projects 表中,并且对于每一个项目,添加相应的从该项目的 Rational XDE Java 代码模型得到的 Rational UML 模型。通常来说,您将把 Rational XDE 工作区中的所有 Java 项目放到这一列表中。您将不包括 Rational XDE Web 项目或者 Enterprise Java™Beans (EJB),因为该模型导入器不能移植 Rational XDE Web、EJB、或者 EJB 开发模型。即使是在 Rational 软件中,您也是直接工作于 Web 和 EJB 而不是通过 UML 模型对它们进行操作。
    • 对于每一个 Java 项目和模型对,制定这些选项:
      • 用于 Rational XDE Java 项目的编码表。我们可以通过在 Project Encoding 中的编码表中选择或输入来进行指定。如果被选择的 Java 项目是一个已经存在于工作区中的项目,那么去掉这个复选框。
      • Rational XDE Java 项目是否需要被拷贝到 Rational 工作区中。我们可以通过核对选项 Copy Rational XDE Java projects into workspace 来进行指定。如果选中的 Java 项目是前面被导入的,那么去掉这个复选框(请参见前面关于复杂项目的讨论)。
      • 您是否想要将从 Rational XDE Java 代码模型那里得到的 Rational 软件模型中的 UML 语义元素置换为直接同 Java 相关的元素。通过核对该选项,您可以声明你对于该项目的想法,计划在 Rational 软件中使用 “混合的建模” 方法,而不是使用体系结构和谐的或者是模型驱动的开发。

重要提示:
如果您计划使用第二种选项,那么每次只导入一个项目而不是多个项目。步骤如下:

  1. 核对您是否想要模型导入器在模型导入器的进程结束前自动删除与来自 Rational 工作区的 Rational XDE Java 相关模型的导入的副本。
  2. 点击 Finish 开始移植。

步骤 5. 对每一个导入的代码模型运行一个 UML-to-Java 转换

这是一个可选的步骤。仅当您确实不想告诉模型导入器在先前的步骤中替换 UML 元素 时,执行该步骤。换句话说,在步骤4期间,您明确声明您的目的并非 是使用和混合的建模,而是使用一个体系结构一致的或者概念上的模型驱动开发方法,从而保持 Rational 软件中的代码模型为 Rational UML-to-Java (或许是 Java-to-UML)转换所使用的完整无缺 UML 语义模型。


移植期间执行的操作

现在您已经知道了执行移植的步骤,本节将描述转换过程,该过程是由 Rational XDE Java Code Model Importer 执行的,目的是生成同 Rational 软件建模和转换组件相兼容的代码模型和 Java 代码。其中的某些操作根据您中是否选中了 Replace UML elements with Java elements 选项,或者被执行,或者被跳过。

创建映射模型

根据项目执行:仅当 Replace UML Elements with Java Elements 选项没有被选中的时候执行。导入器也创建一个映射模型来捕获移植后存在的 UML 模型元素到 Java 源文件的映射。该映射模型由 UML-to-Java 转换配置指定为默认值(在后面的Java 转换配置文件的创建 小节中将描述 .tc 文件的创建),确保该映射被转换所考虑和保留。

与 Java 可视化的类型相关的 Java 框架的置换

根据项目执行:无论 Replace UML elements with Java elements 选项是否被选中都要执行。如同从 Rational XDE 导入一样,和 Java 代码元素相对应的 UML 模型元素可能包括和 JDK (Java™ Developer Kit) 库相关的类型。例如,一个 UML 类可能拥有一个类型为 java.lang.String; 的属性。在 Rational XDE 中,大多数类型规范(例如参数)都是无格式文本,但是由 UML 关联定义的类型规范能够根据 Rational XDE Java 的参考模型进行解析,例如 jdk_min.mdx。当 Rational XDE 被移植到 Rational 软件(使用 Rational XDE Base Model Importer)中时,该 Rational XDE 参考模型的引用就会成为 Rational XDE Java 参考模型的导入版本的引用。

然而,Rational 软件保持其对 JDK 类型直接的表示,Rational 软件期望 Java 类型的引用来解决这些问题。因此,模型导入器查看导入的 Rational XDE Java 参考模型并再次解析它们,直接相对于 JDK。只要有可能,它也重新解析在 Rational XDE 中无格式文本的类型规范。这提供了比 Rational XDE 更强壮的输入要求(在 UML 级上)。对于生成同 Rational Java 建模和 UML-to-Java 及 Java-to-UML 转换相兼容的导入的 Rational XDE 代码模型来说,这也是必要的一个步骤。

概要文件的移植

根据项目执行:无论 Replace UML Elements with Java Elements 选项是否被选中都要执行。Rational 软件 Java 转换定义并使用其自己的 UML 概要文件,这些概要文件被应用到 UML 元素上来展现不同的 Java 原型。作为代码模型移植过程的一部分,导入器将这一新的概要文件应用到 Rational 软件 UML 模型中,这些 UML 模型是在 Rational XDE Java 代码模型被 XMI 导入时得到的。这使得该模型同 Rational 软件 Java 转换组件相兼容,并由此使得该模型能够参与到 UML-to-Java (向前)和 Java-to-UML (向后)的转换中。在该步骤中被应用的概要文件取代了从原来的 Rational XDE Java 代码模型中移植的概要文件。

下表中列出了原型属性值,它们是由 Rational XDE Java Code Model Importer 移植的。

原型属性值
该 Rational XDE Java RTE 概要文件原型属性是否被该 Rational 软件 Java 5 转换原型属性所取代
Rational XDE_Java::Java_Attribute::JavaCollectionJavaTransformation5.0::JavaCollection::collectionType
Rational XDE_Java::Java_Attribute::JavaDimensionsJavaTransformation5.0::JavaArray::dimensions
Rational XDE_Java::Java_End::JavaCollectionJavaTransformation5.0::JavaCollection::collectionType
Rational XDE_Java::Java_End::JavaDimensionsJavaTransformation5.0::JavaArray::dimensions

UML 元素(变体选项)的置换

根据项目执行:仅当Replace UML Elementrs with Java Elements 选项被选中的时候执行。在 Rational 软件 UML 模型中的所有 UML 语义元素都被指向 Java 源文件中相应的代码元素的快捷方式所取代。这在 UML 模型中留下图表,描述直接表现 Java 类的 UML 形式的类图标。双击这些图标,在 Java 编辑器中打开 Java 类代码。这与 Rational 软件混合建模的方法相一致。这样做与您建立一个新模型然后通过使用 Replace UMl Elements 选项将 UML-to-Java 转换应用到该模型的效果是一样的。

提示:
您能够在随后添加新的 UML 语义元素到模型中,并且再一次通过 Replace UML Elements 选项应用 UML-to-Java 转换来将新的元素转换为直接的 Java 引用。这就是说您能够在一个迭代开发过程中实行混合的建模。

标注:

根据项目执行:仅当Replace UML Elements with Java Elements 选项被选中的时候执行。如果在模型中存在相等的 UML 元素,那么 Java 源文件中的代码元素被模型导入器标注为 <@generated>。模型导入器将在导入的代码中搜寻 <@modelguid>。这些标注由 Rational XDE 产生并据此被表现出来。这就是为什么运行模型导入器之前的准备步骤之一,就是为了确保 Rational XDE 被设置为生成这些标注并且同步 Rational XDE 代码模型。

注释:

  • 在本步骤中,任何代码元素,无论出于何种原因,没有被标注为 <@generated> 都将无法在 UML-to-Java (前向)转换的后续应用程序中被修改(删除或者重写)。例如,如果您删除或者重命名与没有标注的 Java 类相应的 Rational 软件 (UML 类)中的模型元素,然后运行 Rational UML-to-Java 转换,那么该类将不能被修改。为了改变这一行为,您能够手动的将 <@generated> 标注添加到源文件中的 Java 类的注释中。此后,模型中的 UML 类的改变将被应用到源代码中的 Java 类。更多详细信息请参见 UML-to-Java (前向)转换组件的文档。
  • 为了标注 Java 文件,Rational XDE Java Code Model Importer 搜寻表现为 Javadoc 注释一部分的 <@modelguid> 标注。确保 <@modelguid> 标注在源文件中表现为 Javadoc 注释。您能够通过在开始移植之前同步 Rational XDE 中的 Java 代码模型来对其进行校验。

Java 转换配置文件的创建

依照该项目的执行:该操作仅仅当 Replace UML elements with Java elements 没有被选中时被执行。在移植的最后,Rational XDE 将创建一个 Java 5 转换配置 (TC) 文件,包含一组指定的参数值(例如源模型、目标 Java 项目等等)。在模型导入器完成导入之后,不经过修改,直接使用该 TC 文件在移植的模型上运行一次 UML-to-Java 转换。这将清除 Rational XDE 表现出的 Java 元素和 Rational Software Architect 或者 Rational Systems Developer 所表现出的 Java 元素之间残留的不同之处。

参考资料

学习

获得产品和技术

  • 不需要在你自己的机器上安装和配置软件,通过三个小时的测试驱动在线评估 IBM Rational Software Architect V7.0。这个先进的模型驱动开发和静态分析工具,对于那些正在创建面向服务架构(SOA),Java™ 平台,企业版(J2EE),以及 portal 应用程序的软件架构师和开发人员来说,是理想的工具。
  • 尝试 IBM Rational Systems Developer V7.0。这个评估版的试用期限是 30 天。产品的所有特性都可以使用。
  • 下载 IBM 产品评估版本,并且着手于来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational, Java technology
ArticleID=277293
ArticleTitle=IBM Rational XDE Java Code Model Importer 简介
publish-date=12062007