变换

变换是采用元素的源集,然后将它们更改为元素的新目标集的一种机制。与在 Rational Rose® 中来回进行工程设计相似,变换结果可能是从模型生成的代码。但是,变换可以定制,并且比 RTE 功能更强大,能够执行更多操作。
注: Software Modeler 中未提供诸如可视编辑和语言转换之类的功能。

通过变换中所包含的一组规则来定义源元素与目标元素之间的关系。根据了解如何遍历源元素集的规则集来执行这些规则。变换可能依赖于对其规则应用更多信息的概要文件。

变换服务(和模式)消除了 UML 模型与代码之间以及不同抽象级别的模型之间的间隔。除了其他变换以外,变换可以是:

此外,变换可以实现模式,以将元素从一种形式转换为另一种形式。通过 Rational® Software Architect 中的命令可以获得随该产品安装的变换。

变换的最常见起始点是平台无关模型 (PIM),例如,类模型。类模型包含未对实现细节进行任何引用的设计元素。您可以创建、修改和注释类模型,然后使用变换来生成特定于平台的模型 (PSM),例如,Java™ 主题图或者代码级别的文本。

注: 有关 PIM(这是对象管理组 (OMG) 为模型驱动体系结构 (MDA) 和模型驱动开发 (MDD) 定义的流程的关键部分)的更多信息,请参阅 OMG Web 站点。

作为它们的打包的一部分,模式还可以定义和提供变换扩展,这些变换扩展定义在跨越特定级别的抽象或者特定元模型时要执行的其他规则。此概念的常见实现是设计模式,用于提供变换规则以生成特定代码。这些规则将扩展代码变换(例如,Java 或 C++ 变换),以对所生成的输出提供特定于模式的代码。

您需要下列四部分信息以便应用特定变换:

非常简单的模型变换过程包括下列步骤:

  1. 如果所选择的变换需要,请对用于定义可以使用的其他构造型的模型应用概要文件。
  2. 根据需要,对现有模型元素应用这些构造型。
  3. (通过构造型属性)填充由这些构造型提供的新信息,以及来自变换所需要的基本模型的任何信息。
  4. 从 IDE 中选择变换,然后启动变换操作。
注: 您可以反复执行这些步骤。

完成变换后,所得到的结果是目标模型或者变换的文本和记录,以实现可跟踪性。从模型变换为文本时,输出可能是 Java 或 C++ 代码,用于创建和填充数据库以及单元测试的 DDL 文件,或者是与相应的模型图相匹配的可视化图。变换的记录包括源模型中的元素到目标的相应元素的映射,并且会指出已将该映射的哪些部分用于该变换的每一部分。

可以使用变换 API 来创建新的变换。变换服务是通用的,并且未对源模型、目标模型或者变换本身的实现作出任何假定。尽管变换服务包含缺省变换引擎,但是变换作者可以使用完全不同的引擎。 但是,通过在缺省引擎上构建变换,变换作者可以利用逻辑调试环境、可扩展性机制以及将来对该体系结构进行的任何改进。


反馈