通过变换中所包含的一组规则来定义源元素与目标元素之间的关系。根据了解如何遍历源元素集的规则集来执行这些规则。变换可能依赖于对其规则应用更多信息的概要文件。
变换服务(和模式)消除了 UML 模型与代码之间以及不同抽象级别的模型之间的间隔。除了其他变换以外,变换可以是:
此外,变换可以实现模式,以将元素从一种形式转换为另一种形式。通过 Rational® Software Architect 中的命令可以获得随该产品安装的变换。
变换的最常见起始点是平台无关模型 (PIM),例如,类模型。类模型包含未对实现细节进行任何引用的设计元素。您可以创建、修改和注释类模型,然后使用变换来生成特定于平台的模型 (PSM),例如,Java™ 主题图或者代码级别的文本。
作为它们的打包的一部分,模式还可以定义和提供变换扩展,这些变换扩展定义在跨越特定级别的抽象或者特定元模型时要执行的其他规则。此概念的常见实现是设计模式,用于提供变换规则以生成特定代码。这些规则将扩展代码变换(例如,Java 或 C++ 变换),以对所生成的输出提供特定于模式的代码。
您需要下列四部分信息以便应用特定变换:
非常简单的模型变换过程包括下列步骤:
完成变换后,所得到的结果是目标模型或者变换的文本和记录,以实现可跟踪性。从模型变换为文本时,输出可能是 Java 或 C++ 代码,用于创建和填充数据库以及单元测试的 DDL 文件,或者是与相应的模型图相匹配的可视化图。变换的记录包括源模型中的元素到目标的相应元素的映射,并且会指出已将该映射的哪些部分用于该变换的每一部分。
可以使用变换 API 来创建新的变换。变换服务是通用的,并且未对源模型、目标模型或者变换本身的实现作出任何假定。尽管变换服务包含缺省变换引擎,但是变换作者可以使用完全不同的引擎。
但是,通过在缺省引擎上构建变换,变换作者可以利用逻辑调试环境、可扩展性机制以及将来对该体系结构进行的任何改进。