IBM®Rational®XDE Java代码模型导入器(模型导入器)是作为IBM®Rational®Software Architect和IBM®Rational®Systems Developer(以下统称为Rational软件)产品的一部分提供的实用程序。 该实用程序使您可以从Rational XDE for Java迁移Java™代码和相应的Java代码模型,以便可以使用Rational UML以及代码建模和转换功能。
如果您在IBM Installation Manager中选择安装IBM®Rational®XDE 基本模型导入器(XMI) ,那么将自动安装Rational XDE Java代码模型导入器 。 它将迁移Rational XDE模型,包括您可能已应用于这些模型的任何自定义统一建模语言(UML)概要文件。 在运行导入程序之前,您将使用XMI将Java代码模型及其引用的模型导入到Rational Software Architect工作空间。
关于进口商
迁移先决条件
您的计算机上应该安装以下产品,并且您需要熟悉它们:
- 安装了可选的Rational XDE Java代码模型导入器功能的Rational Software Architect或Rational Systems Developer。 注意:提供了试用版,并在“ 相关主题” 下列出了试用版。
- Java的Rational XDE
安装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)的工作以及理解“操作的模型代码理论”。 需要此知识来决定在导入期间是否要使用对Java源代码元素的可视引用替换导入的Rational XDE Java代码模型中的UML原理图元素,然后再进行混合建模 。
下一节将详细说明迁移过程。
迁移路径
重要:
在阅读每个步骤的详细信息之前,请看一下图1,它说明了整个迁移路径:
图1.迁移过程
Rational XDE软件中的Java代码模型项目可以包含两种类型的构件: Java源文件和Rational XDE模型 。 Rational XDE模型可以是各种类型。 项目中可以有零个或一个Java代码模型。 通常,应该使用XMI将Rational XDE工作空间中的所有模型(大概表示一个闭合)导入到Rational工作空间中。 然后,您可以使用模型导入器在第二步中迁移Java代码和代码模型。
整个迁移过程可以分为五个主要阶段。 根据迁移的大小和复杂性,可能需要此五步过程的一个或多个迭代:
- 规划
- 准备Rational XDE项目(UML模型和Java代码)
- 导入UML模型
- 导入Java项目(将Java代码重新绑定到导入的UML模型)
- 在Rational软件中运行UML到Java的转换以完成代码的更新,以准备使用代码
步骤1.规划
在计划将Rational XDE迁移到Rational Software Architect或Rational Systems Developer时,有两个主要问题:
- 您的整体迁移策略。 这以及其他考虑因素将指导您做出决定,是采用整个团队立即开始使用Rational软件的方法,还是采用在迁移过程中并行使用Rational XDE和Rational软件的方法,以便团队可以逐步采用Rational软件。 后一种方法更具挑战性。 因为它涉及维护并行开发流,使用模型融合技术的技巧以及多次执行实际的模型迁移步骤。 您需要考虑诸如模型大小和建模用户数量之类的因素。 这些因素将决定完成这些任务需要多长时间:
- 在所有桌面上安装Rational软件
- 在Rational软件上培训所有用户
- 执行实际的模型迁移处理
- 是否将混合建模 , 体系结构协调或概念模型驱动的开发方法用作Rational XDE往返工程的替代选择。
步骤2.准备Rational XDE项目(基本模型和Java代码)
执行以下步骤为代码模型导入准备Rational XDE基本模型和Java项目代码:
- 在Rational XDE for Java中, 同步 Java代码模型,以使UML模型(.mdx文件)和Java项目同步。 这是前提条件,必须在迁移之前完成。 要点:使用设置的Rational XDE Java首选项来执行此操作,以便启用代码标记标签( 标记标签是由Rational XDE代码生成器创建的以
<@modelguid>
开头并包含Rational XDE唯一标识符的<@modelguid>
与Java类相对应的UML模型元素。 - 制作Java项目的备份副本,包括与Java代码模型相对应的Rational XDE基本模型。
- 仔细检查在将要处理模型导入的计算机上,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项目时,可以遵循两种路径:
- 通过遵循第一个路径 ,您可以选择使用“通用” Eclipse项目导入向导来调用Rational Importer之前,将Rational XDE Java项目导入Rational软件工作空间: File> General> Existing projects info Workspace 。 这会将Rational XDE Java项目(即Eclipse 1项目)导入到Rational软件中,并将其更新为Eclipse 3项目。 当以这种方式导入它们时,这些项目可以用作Rational XDE模型导入器的输入。
- 通过遵循第二条路径 ,您可以将Rational XDE Java项目导入到Rational软件工作区中,作为导入程序执行的处理的
online
部分。 图2显示了Rational XDE Java项目导入向导(Rational XDE Java Code Model Importer向导)。 这是您与之交互的控件,用于指定模型导入器要对Java代码和先前从Rational XDE导入的Rational软件UMl模型进行的操作,在步骤3中。要启动此向导,请选择File> Import>其他> Rational XDE Java项目 。
图2. Rational XDE Java Code Model Importer向导
- 在模型导入器向导中指定以下内容:
- 将Java项目列表添加到Selected projects表中,并为每个项目添加从项目的Rational XDE Java代码模型派生的相应的Rational UML模型。 通常,您会将所有Java项目放在此列表的Rational XDE工作空间中。 您将不包括Rational XDE Web项目或Enterprise Java™Beans(EJB)项目,因为模型导入器不会迁移Rational XDE Web,EJB或EJB部署模型。 但是,在Rational软件中,您直接使用Web和EJB工件,而不通过UML模型对其进行操作。
- 对于每个Java项目和模型对,请指定以下选项:
- 为Rational XDE Java项目设置的编码方案。 可以通过在“ 项目编码”框中选择或键入编码方案来指定。 如果所选的Java项目是工作空间中的现有项目,则此组合框将被禁用。
- 是否需要将Rational XDE Java项目复制到Rational工作区中。 可以通过选中表示将Rational XDE Java项目复制到工作空间中的选项来指定。 如果所选的Java项目先前已导入,则此复选框将被禁用(请参阅前面有关复杂项目的讨论)。
- 是否要使用对Java元素的直接引用替换从Rational XDE Java代码模型派生的Rational软件模型中的UML语义元素。 通过选中此选项,您在声明您打算在该项目中计划使用Rational软件中的“混合建模”方法,而不是使用架构协调或概念模型驱动的开发。
重要:
如果计划使用第二个选项,则一次仅导入一个项目,而不是多个项目。 只需按照以下步骤操作:
- 在模型导入器的处理结束之后,检查是否要模型导入器从Rational工作空间中自动删除 Rational XDE Java参考模型的导入副本。
- 单击完成以开始迁移。
步骤5.在每个导入的代码模型上运行UML到Java的转换
这是该过程中的可选步骤。 执行此步骤只有在你没有告诉模型导入在上一步,以取代UML元素 。 换句话说,在步骤4中,您有效地声明了不使用混合建模的意图,而是使用架构协调或概念模型驱动的开发方法,从而在Rational软件中将代码模型保留为完整的UML语义模型。与Rational UML到Java(也许从Java到UML)的转换一起使用。
迁移期间执行的操作
既然您知道执行迁移的步骤,那么本节将描述Rational XDE Java代码模型导入程序执行的转换处理,以使代码模型和Java代码与Rational软件建模和转换组件兼容。 其中的某些操作是根据项目执行或绕过的,具体取决于您是否选择了为项目使用Java元素替换UML元素的选项。
创建映射模型
根据项目执行:仅在未选择“ 用Java元素替换UML元素”选项时执行。 导入程序还创建一个映射模型,该模型捕获迁移处理后UML模型元素到Java源文件的现有映射。 默认情况下,此映射模型是在UML到Java的转换配置(如下面的Java转换配置小节中所述创建的.tc文件)中指定的,以确保转换尊重并保留此映射。
将Java框架引用替换为Java可视化类型
根据项目执行:不考虑是否选择了“ 用Java元素替换UML元素”选项而执行。 从Rational XDE导入时,与Java代码元素相对应的UML模型元素可能包含对JDK(Java™Developer Kit)库中类型的引用。 例如,一个UML类可能具有java.lang.String;
类型的属性java.lang.String;
。 在Rational XDE中,大多数类型规范(例如,参数)都是纯文本,但是UML关联定义的类型规范可以针对Rational XDE Java参考模型(例如jdk_min.mdx)进行解析 。 当将Rational XDE代码模型迁移到Rational软件(使用Rational XDE基本模型导入器)时,对Rational XDE参考模型的引用将成为对Rational XDE Java参考模型的导入版本的引用。
但是,Rational软件会维护自己的JDK类型直接表示,并且Rational软件希望引用Java类型来解决这些问题。 因此,模型导入器将查看对导入的Rational XDE Java参考模型的引用,并直接针对JDK再次解析它们。 只要有可能,它还会重新解析在Rational XDE中为纯文本的类型规范。 与Rational XDE相比,这提供了更严格的键入严格性(在UML级别)。 使导入的Rational XDE代码模型与Rational Java建模以及UML到Java和Java到UML转换兼容是必需的。
配置文件的迁移
根据项目执行:不考虑是否选择了“ 用Java元素替换UML元素”选项而执行。 Rational软件的Java转换定义并使用了自己的UML概要文件,该概要文件包含应用于UML元素以表示各种Java构造的构造型。 作为代码模型迁移过程的一部分,导入程序将此新概要文件应用于Rational Software UML模型,该模型是通过XMI导入Rational XDE Java代码模型而产生的。 这使模型与Rational软件Java转换组件兼容,从而使模型能够参与UML到Java(正向)和Java到UML(反向)的转换。 在此步骤中应用的构造型将取代从原始Rational XDE Java代码模型迁移的构造型。
下表列出了Rational XDE Java代码模型导入器迁移的构造型属性值。
原型属性值
此Rational XDE Java RTE概要文件构造型属性 | 被此Rational软件Java 5转换构造型属性取代 |
---|---|
Rational XDE_Java :: Java_Attribute :: JavaCollection | JavaTransformation5.0 :: JavaCollection :: collectionType |
Rational XDE_Java :: Java_Attribute :: JavaDimensions | JavaTransformation5.0 :: JavaArray :: dimensions |
Rational XDE_Java :: Java_End :: JavaCollection | JavaTransformation5.0 :: JavaCollection :: collectionType |
Rational XDE_Java :: Java_End :: JavaDimensions | JavaTransformation5.0 :: JavaArray :: dimensions |
替换UML元素(变形选项)
根据项目执行: 仅在选择“ 用Java元素替换UML元素”时执行。 Rational软件UML模型中的所有UML原理图元素均由指向Java源文件中相应代码元素的快捷方式代替。 这就使UML模型中的图描绘了直接代表Java类的类似UML的类形状。 双击这些形状可在Java代码编辑器中打开Java类代码。 这与Rational软件混合建模方法一致。 效果与您组成一个新模型,然后使用“ 替换UMl元素”选项将UML到Java转换应用于该模型的效果相同。
小费:
随后,您可以向模型中添加新的UML语义元素,然后再次使用“ 替换UML元素”选项应用UML到Java的转换,也可以将新元素转换为直接Java引用。 这意味着您可以在迭代开发过程中练习混合建模。
标记
根据项目执行: 仅在未选择“ 用Java元素替换UML元素”时执行。 如果模型中存在等效的UML元素,则模型导入程序<@generated>
Java源文件中的代码元素标记为<@generated>
。 精确建模,模型导入器将在导入的代码中搜索<@modelguid>
标签。 这样的标签将借助于Rational XDE生成。 这就是为什么在运行模型导入器之前准备步骤之一就是确保将Rational XDE首选项设置为生成这些标签,然后同步Rational XDE代码模型。
笔记:
- 由于任何原因在此步骤中未使用
<@generated>
标记标记的任何代码元素,都不会通过随后的UML-to-Java(正向)转换应用程序进行修改(删除或覆盖)。 例如,如果您在Rational软件(UML类)中删除或重命名与没有标签的Java类相对应的model元素,然后运行从Rational UML到Java的转换,则该类不会改性。 要更改此行为,您可以在源文件中的Java类的注释中手动添加<@generated>
标记。 此后,对模型中的UML类所做的更改将应用于源代码中的Java类。 有关更多详细信息,请参见UML到Java(正向)转换组件的文档。 - 为了标记Java文件,Rational XDE Java代码模型导入器搜索
<@modelguid>
标记,这些标记作为Javadoc注释的一部分出现。 确保<@modelguid>
标记在源文件中作为Javadoc注释出现。 您可以通过在开始迁移之前同步Rational XDE中的Java代码模型来验证这一点。
创建Java转换配置文件
根据项目执行: 仅在未选择“ 用Java元素替换UML元素”时执行。 迁移结束时,Rational XDE导入器将创建一个Java 5转换配置(TC)文件,其中包含一组特定的参数值(例如源模型,目标Java项目等)。 在模型导入程序完成导入后,立即使用此TC文件而不进行任何修改即可在迁移的模型上一次运行UML到Java转换。 与Rational Software Architect或Rational Systems Developer表示它们相比,这将清除Rational XDE表示Java元素的方式上的残留差异。
翻译自: https://www.ibm.com/developerworks/rational/library/07/0731_kishore/index.html