介绍 IBM Rational Modeling Extension for Microsoft .NET

如何将您的 IBM Rational XDE for Visual Studio 项目迁移到新一代 IBM Rational 建模工具中

Comments

XDE C# Code Model 导入工具是一个非常有效的工具,如同 IBM Rational Modeling Extension for Microsoft .NET 产品的一部分,不仅仅可以安装于 IBM® Rational® Software Modeler 还可以安装于 IBM® Rational® Software Architect 或者 IBM® Rational® Systems Developer。从此以后,为了方便,我们只将引用 Rational Software Modeler 而不是引用所有的三个产品,并且 IBM Rational Modeling Extension for Microsoft .NET 将被看作是简单的 Rational Modeling Extension。通过利用 XDE 代码模型输入的能力,您能够迁移您的 XDE 模型到 Rational Software Modeler 中,并且为了和 Rational Modeling Extension 一起运用而准备输入代码模型和相应的 C# 源代码。您可以用 Rational Software Modeler 和 Rational Modeling Extension 的建模和转换能力得到与 Rational XDE 提供给 Visual Studio 相同的好处。让我们从下列的介绍按部就班的开始吧。

先决条件

您需要在您的电脑里安装下列产品并且能够熟练地运用它们:

  • Rational Software Modeler (或 Rational Software Architect 或 Rational Systems Developer) 7.0.0.1版本或者更高版本,还有 Rational Modeling Extension for .NET
  • Microsoft Visual Studio 2003
  • Visual Studio 2005
  • Rational XDE Developer for Visual Studio 2003 版本

在了解其它每一个步骤中的更多细节前,请查看图 1,它描述了整个迁移路径。

图1.迁移路径
Figure 1: 迁移路径
Figure 1: 迁移路径

注意事项

在 XDE .NET 2003 解决方案中的一个 C# 项目包括两种构件:C# 源文件和 XDE 模型。您可以通过现有的 XDE Base Model Importer 将您的 XDE 模型导入到您的 Rational Software Modeler/Rational Modeling Extension 的运行空间中。在 Rational XDE 中,某些模型具有特殊的情形。这就是“代码模型”和“装配模型”。每个“代码模型”都同步于一个单独的 C# 项目中的 C# 源代码,“装配模型”则提供一种 .NET Framework 库的 UML 代表或者 C# 项目涉及到的其它装配。在 Rational XDE 中,也可能存在“混合在一起的”模型(也称为“内容模型”),这些 UML 概念型模型不一定属于 C# 代码。在 Rational XDE 中,交叉的模型引用也是存在的。代码模型包括装配模型的引用。在内容模型的元素中可能包括代码模型中元素的引用,反之亦然。为了得到最好的结果,您应该在运用 XDE Base Model Import 能力的同时导入所有 Visual Studio Solution 中的模型作为“终止”,在一套模型中,所有的交叉模型引用都可以被解决(没有缺失的模型,因而没有坏掉的引用)。

下一部分详细说明了迁移的过程。迁移过程被分为三个主要阶段:

  • 迁移包含有 XDE 模型的 Visual Studio 2003 解决方案至 Visual Studio 2005
  • 利用基本的 XDE Model Import 工具将 XDE 模型移到 Rational Software Modeler 中
  • 选择您计划使用的 Model Driven Development (MDD) Software Architecture Management Protocol,然后在 Rational Software Modeler 中 导入(肉眼观察) Visual Studio 2005 Solution 。在此阶段,在 Rational XDE 中导入的具有特殊的地位的Code ModelsAssembly Models ,将被改进以便于它们与 Rational Software Modeler/Rational Modeling Extension 建模和转换性能的 C# 代码一起运用。

注意:您可以用 Visual Studio 2005 提供的迁移工具来迁移 Visual Studio 2003 解决方案至 Visual Studio 2005 中。

准备 XDE 基本模型和 C# 代码

执行下列步骤以准备 XDE 基本模型和 Code Model Importer 所需的 C# 项目代码:

  1. 制作一个 Visual Studio 2003 解决方案的拷贝,包括 XDE 模型。
  2. 用 Visual Studio 2005 迁移工具迁移 XDE .NET 2003 解决方案至 Visual Studio 2005 。在这一步骤中,您不需要做什么特殊的事情,只需要遵循标准的 Visual Studio 指令。Rational XDE 不能安装于 Visual Studio 2005 ,这是没关系的。 XDE 模型(具有 .mdx 扩展名的文件)将被 Visual Studio 2005 简单地视为各种未被承认类型的文件并且认为它们将不会以任何形式发生改变。
  3. 在您的 Rational 软件工作空间中创建 UML 项目,包括导入的 XDE 模型。然而在 Rational XDE 中,在多种不同的 C# 项目中您可能有多个代码模型,并且每个 C# 项目还可能包括它自己的一套装配模型,另外内容模型可能单独存在一个非 C# 的混合项目中,您不需要在 Rational Software Modeler 中复制这种结构。如果您愿意,所有导入的 XDE 文件都可以被置于一个单独的 UML 项目中。或者您可以考虑分配它们到各种不同的 UML 项目中。这靠您自己选择。别担心装配模型将去向何处,只需要把他们放到 UML 项目中去。在这个过程中,您将需要它们,但是后来您又会删除它们,所以把他们置于何处并不重要。
  4. 用基本的 XDE Model Importer (XMI) 导入来自于 Visual Studio 2005 解决方案的 XDE 模型(.mdx 文件)。全部导入它们作为结束(如果您没有阅读上述的注意事项,那么请回去阅读一下)。运用基本的 XMI 和它所提供的向导的详细步骤,作为 Rational Software Modeler 产品文件的一部分已被提供。
  5. 在 Visual Studio 2005 IDE 中打开这个 .NET 的解决方案。

注意:
.NET 的解决方案现在应该在您的 Visual Studio IDE 中保持开放状态,贯穿整个完备的代码模型导入的剩余过程,也包括在以后您用到 Rational Modeling Extension Visualizer 或者转换组件的过程。

利用 C# Code Model Importer 迁移项目

执行下列步骤以导入 Visual Studio 2005 项目的显象,并完成用 Rational Software Modeler/Rational Modeling Extension导入 XDE代码模型的过程的准备工作:

  1. 通过点击 File > Import > Other > XDE .NET Solution, (注意:那里也有 File > Import > Other > .NET Solution, 但它不是您这一步所想用的)
  2. 在向导第一页中,要么输入全称路径要么定位与您想要导入的解决方案相对应的(.sln)文件。(查看 Rational Modeling Extension 产品的 Help 关于 C# Visualization 的部分,此部分详细地说明了如何在此页中利用关于装配的选项。注意您用 .NET Solution importer 或者 XDE .NET Solution (Code Model) importer 只能导入一个 .NET 解决方案至您的 Rational 软件工作台)
  3. 单击 Next。在下一页的向导中,您会看到一个表格。每一行都包含您导入的 .NET 解决方案中的 C# 项目信息。表格的第一和第二列分别展示了 C# project in the Visual Studio 2005 Solution 和 Rational Software Modeler 工作空间的名字。在第三列中输入全称路径或者定位UML 模型(.emx 文件),这些模型相应于每个 C# 项目(这应该是上面第四步中导入的模型,这就是Rational XDE 中 C# 项目的代码模型的迁移版本)。

    现在您必须做一个至关重要的决定:

    您将执行下列步骤以导入 Visual Studio 2005 项目,并完成用 Rational Software Modeler/Rational Modeling Extension 准备好的导入的 XDE 代码模型的过程。但是 Rational Software Modeler/Rational Modeling Extension 支持多种不同的运行模型和代码的方法,并且它们中没有一个运行方式和 Rational XDE 相同。 Rational XDE 用一个持续的同步于代码的 UML 语意模型来支持 可视化或由模型产生的代码的可视化编辑。相反, Rational Software Modeler 支持下列选择:

    1. 直接的代码可视化编辑。不需要任何 UML 模型。我们简单的称之为代码建模。这和 Visual Studio 2005 中的 Class Designer 特性的原理相同。
    2. Mixed Modeling,它包括了直接代码模型的效用和 UML 概念型模型的工具,在这里,您可以将代码描述和 UML 元素在图中混合并且建立和介绍两者间的关系。当用转换从概念化 UML 中创建代码时,它也可能包含特殊的可替代 UML 元素选项的能力。
    3. Architecture Reconciliation,包括了从 UML 到代码的转换的效用和从代码到 UML 的转换的工具,还包括了可以直接探测到最后一个循环后已经发生了的模型和代码的变化的调和助手的工具,并且解决了有利于模型或代码的增量
    4. Conceptual Models Drive Development,它包括了代码生成转换的工具,所有结构上的重大改变在工作流中会被迫先在模型中产生,然后在代码中产生。

    如果您打算利用直接的代码可视化编辑,事实上您不用为了完成用 Rational Software Modeler/Rational Modeling Extension 准备的 XDE 代码模型的各个步骤而烦恼。事实上,您可以很简单地删除掉导入的代码模型和装配模型。但是如果您打算采取其他任何工作方式,当您删除剩余步骤的时候您要做出一个重要的决定……

  4. 在第四列中,以Replace UML Elements 为标题,您可以选择选项 Replace 或者选项 Don't Replace如果您打算使用上述的 Mixed Modeling,选择 Replace。如果您打算使用 Architecture Reconciliation 或者 Conceptual Models Drive Development, 选择 Don't Replace
  5. 点击 Finish 以便开始迁移。

迁移过程中执行的操作

在使代码模型和 C# 代码与 Rational 软件建模和转换分量兼容迁移过程中,下列的操作通过 C# Code Model Importer 被执行。这其中的很多操作要么被完成要么被跳过,这取决于您开始为 Replace UML Elements 而选择的选项。

备份 UML 代码模型文件

(执行这个操作,不用管您为 Replace UML Elements 而选择的选项。)

Code Model Importer 为 C# 项目制作了一个指定的 UML(.emx) 代码模型文件备份。它和指定的模型文件保存在同一地方。备份的名字在指定的模型文件后面加了 _backup。例如,如果指定模型文件的名字是 Model.emx,那么备份的名字就是 Model_backup.emx。

创建映射模型

(映射模型只有在 Replace UML Elements 下您选择 Don't Replace 选项才会被创建。)

导入工具同样也创建一个映射模型,这个映射模型能够捕捉 C# 源文件中 UML 模型元素现有的映射。这意味着模型映射描述的是关于哪个 C# 源文件中包含相应的 UML 代码模型中的模型元素的代码元素的信息。这个映射模型能够在 UML-to-C# 转换构型中被指定,这个转换保留着现有的文件中的代码元素的构成。

代替 对 Visual Studio .NET 集合类型的引用

(这个操作只有在 Replace UML Elements 下您选择 Don't Replace 选项才会被执行。)

相应于 C# 代码元素的 UML 模型元素可能包含来自 Visual Studio .NET 集合的类型引用。例如,一个 UML 类可能具有 System.String 类型的属性。当您用 XDE Base Model Importer 导入 XDE 基础时,这种类型将被模型文件中的相应元素的引用所替换,system.emx。

无论如何,保留着它自己的来自于 .NET 集合的类型表示,并且转换组件仅仅了解这个表示的引用。因此,UML 模型中的 Visual Studio .NET 集合类型的引用被和那些集合类型一致的视觉型元素所替换。这一步是使 UML 模型与 Rational Modeling Extension Visualizer 以及转换组件保持一致的必要条件。

迁移您的概要文件

(这个操作只有在 Replace UML Elements 下您选择 Don't Replace 选项才会被执行。)

Rational Modeling Extension 的组件阐述和利用其自身的 C# 文件,它包含了应用于表现不同 C# 代码类型和构造的 UML 元素的表示。作为代码模型的迁移过程中的一部分,导入器将这个新的 C# 概要文件应用于指定的 UML 代码模型。这使得迁移的代码模型与 C# 转换组件保持一致,这样模型就能够参与到 UML-to-C# (向前进) 和 C#-to-UML (向后退)的转换中。

迁移您的包

(这个操作只有在 Replace UML Elements 下您选择 Don't Replace 选项才会被执行。)

包含句点或结束符(.)字符的名字的 UML 代码模型中的任意一个包被展开到有一系列嵌套名字的空间,从而消除那些句点。名字空间的序列取决于名字中句点的数量。

例如, 在 UML 模型有一个包,包名为 xde.importer.examples,它将被三个包含 xdeimporter 以及 examples的嵌套名字空间的序列所替换,以便 xde 包含 importerimporter 包含 examples。初始包的容器,xde.importer.examples,将包含最外面的包,xde,并且初始的 xde.importer.examples 包的内容将变成最里面的包的内容。这是因为 C# 转换组件需要嵌套的名字空间才能够被清楚的表述,而不是用名字中的句点。

替代您的 UML 元素

(这个操作只有在 Replace UML Elements 下您选择 Don't Replace 选项才会被执行。)

所有指定的 UML 代码模型中的 UML 元素被 C# 源文件中的相应代码元素所替代。通过双击这些元素,您可以到达源文件中相应的代码元素。

只有当您不想使用 C# 建模和转换能力以便熟练地操作迁移了的代码模型中的现有元素时,才选择这个选项。这是因为 C# 可视化型元素(或捷径)是只读的。尽管如此,您可以增加新的 UML 元素到迁移了的模型中,修改它,通过运行 UML-to-C# 的变换生成代码。

提示:
万一您误选这个选项并且运行迁移过程,您可以很容易地恢复您的初始代码模型。只需要简单地删除迁移了的模型并且利用在迁移过程中您所创建的备份模型文件。

为代码元素打标签

(这个操作只有在 Replace UML Elements 下您选择 Don't Replace 选项才会被执行。)

如果双向工程同步(Round-Trip Engineering Synchronization) 的策略(在初始的 XDE 代码模型中)相应于那些代码元素的模型元素是激活状态的话,C# 源文件中的代码元素将被加上 <@generated> 的标签。

在此步骤中,那些没有标签的代码元素没有因 UML-to-C#(正向的)转换而删除或者写得过多,因此,如果您删除或重命名相应的那些没有标签的 C# 类的模型元素(UML 类),然后您运行一个前面的转换,在 C# 源文件中类没有修改。为了改变这种情况,您可以增加 <@generated> 标签到源文件中的 C# 类的注释中去。其后,您所做的针对于模型中的 UML 类的改变将应用到源代码中的 C# 类中去。阅读关于 UML-to-C# (正向的)转换组件的文献获得更详细的信息。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=229307
ArticleTitle=介绍 IBM Rational Modeling Extension for Microsoft .NET
publish-date=06042007