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,它说明了整个迁移路径:
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的转换以完成代码的更新,以准备使用代码在计划将Rational XDE迁移到Rational Software Architect或Rational Systems Developer时,有两个主要问题:
您的整体迁移策略。 这以及其他考虑因素将指导您做出决定,是采用整个团队立即开始使用Rational软件的方法,还是采用在迁移过程中并行使用Rational XDE和Rational软件的方法,以便团队可以逐步采用Rational软件。 后一种方法更具挑战性。 因为它涉及维护并行开发流,使用模型融合技术的技巧以及多次执行实际的模型迁移步骤。 您需要考虑诸如模型大小和建模用户数量之类的因素。 这些因素将决定完成这些任务需要多长时间: 在所有桌面上安装Rational软件 在Rational软件上培训所有用户 执行实际的模型迁移处理 是否将混合建模 , 体系结构协调或概念模型驱动的开发方法用作Rational XDE往返工程的替代选择。执行以下步骤为代码模型导入准备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设置是否与本文的前提条件部分中指定的设置相同。使用Rational XDE Model Importer(XMI),导入Rational XDE UML模型。 这应该包括所有Rational XDE Java代码模型,所有引用或由代码模型引用的Rational XDE内容模型以及代码模型引用的Rational XDE参考模型(例如jdk_min.mdx)。
这是一个可选步骤,因为模型导入器可以将Rational XDE Java项目直接导入到Rational软件工作区中。 但是, 建议如果Rational XDE Java项目很复杂,例如以下示例:
该项目具有不同的编码方案:项目编码方案与工作区编码方案不同,或者项目使用的编码方案超过了(例如,项目中的两个或更多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项目 。重要: 如果计划使用第二个选项,则一次仅导入一个项目,而不是多个项目。 只需按照以下步骤操作:
在模型导入器的处理结束之后,检查是否要模型导入器从Rational工作空间中自动删除 Rational XDE 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元素替换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代码模型导入器迁移的构造型属性值。
根据项目执行: 仅在选择“ 用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元素替换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