IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Rational  >

IBM Rational Business Developer Extension V7.0

UML 到 EGL 的转换(UML to EGL Transformation)

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 中级

Niranjan Vasudevamurthy (niravasu@in.ibm.com), 技术推广人, IBM 印度

2008 年 2 月 02 日

UML(Unified Modeling Language)到 EGL(Enterprise Generation Language)的转换(结合使用 IBM® Rational® Business Developer Extension 和 IBM® Rational® Software Architect), 使您能够以图形化的方式为复杂的应用程序建模。此外,这些转换还可使您无需手工编码而实现 EGL 服务或者能够完全 CRUD (创建、读取、更新和删除)的应用程序。这一功能提高了生产率并且减少了错误的发生。

介绍从 UML 到 EGL 应用程序转换

UML to EGL Transformation(结合使用 Rational Business Developer Extension 与 Rational Software Architect)使您能够以图的形式为复杂的应用程序建模。此外,这些转换还可使您无需手工编码而实现 EGL 服务或者能够完全 CRUD (创建、读取、更新和删除)的应用程序。这一功能提高了生产率并且减少了错误的发生。

您也可以进行起始于关系数据库方案的自动转换。

输出的结果包括:

  • EGL SqlRecords 和 DataItems
  • 数据存取层
    • 一般 CRUD 操作
    • 服务或者库
    • 支持函数
  • 基于 JSF (Java™Server Faces)的 JSPs (JavaServer Pages) 和相应的 EGL 处理器
  • 用来定义数据库表(如果转换的起始点是一个类图)的 DDL (Data Definition Language) 脚本
编者注
这篇文章的范例使用了 IBM® Rational® Software Architect Version 7.0.0.2、 IBM® Rational® Business Developer Extension Version 7.0 和 Microsoft® Windows® XP Professional SP2。

模型驱动的开发:从 UML 模型中产生源代码

您可以使用一个转换从一个 UML 模型中产生源代码。在您运行这个转换之前,您需要创建一个转换参数模型文件并且把这些参数应用于这个 UML 模型。

通常,模型驱动的开发(MDD)需要依循以下几步:

  1. 使用 UML 模型为您的应用程序建模,这个模型应该能够描述此应用程序最高层的功能。
  2. 选择从 UML 到 EGL 的转换。
  3. 创建一个转换参数模型(TPM)文件,这个文件与描述如何把 UML 元素翻译成源语言的 UML 模型联系在一起。这个 TPM 文件包含了一些信息,例如:如何把类型和名称转换成源语言,输出代码结构应该如何。
  4. 运行这些转换并且用输出语言创建代码。
  5. 编辑并且实现输出代码。
分享本文...

digg 提交到 Digg
del.icio.us 发布到 del.icio.us
Slashdot Slashdot 一下!

创建一个新的 UML 项目和类图

在运行转换之前,您需要使用 UML 模型为您的应用程序建模。从一个高层的角度来看,创建一个 UML 模型必要的步骤应该包括:

  1. 运行 Rational Software Architect。
  2. 创建一个 UML 建模项目和一个默认类图。
  3. 在类图中添加类,这些类用于从 UML 到 EGL 转换的输入。

运行 Rational Software Architect

  1. 在 Windows Program 菜单下选择 IBM Rational Software Architect, 或者从 Start 菜单下选择 IBM Software Development Platform>IBM Rational Software Architect > IBM Rational Software Architect, 如图1所示。

图1. 运行 Rational Software Architect
运行 Rational Software Architect
  1. 此操作会打开 IBM® Rational® Software Delivery Platform,并且初始激活一个工作区。 键入 C:\RBDWrkSpace 然后单击 OK

创建一个 UML 建模项目

  1. 选择 File>New>Other>UML Project 新建一个 UML 项目。
  2. 项目命名为 EGLUMLProject,如图2所示。

图2.创建并且命名项目
创建并且命名项目
  1. 点击 Next 并从模版中选择 Blank Model
  2. 把模型命名为 EGLUMLModel
  3. 默认图置为 Class Diagram 然后点击 Finish,如图3所示。

图3.从一个标准模版中创建一个新的 UML 模型
从一个标准模版中创建一个新的 UML 模型

在类图中添加类

  1. 在类图中创建两个类 (StudentSeminar)。两个类的属性应如表格1说示创建。

表格1.创建带有属性的两个类
类名属性
Student Class
  • Student_ID:Integer
  • Name:String
  • Address:String
  • PhoneNumber:Integer
Seminar Class
  • Seminar_ID:Integer
  • Name:String
  • Seminar_Fees:Integer
  1. 在这两个类间添加一个一对一的关联关系,如图4所示。

图4. 一对一的关联关系
一对一的关联关系




回页首


把 UML 对象映射为 EGL 对象

从 UML 到 EGL 的转换承认一组UML模型来进行这个转换。下面的列表描述了所承认的元素,和在转换过程中元素产生的输出。

  • : 所有 UML 包可以用来创建一个 EGL 包。
  • : UML 模型中的一个类代表一个数据库表。对于模型中的每一个类,以下需要被创建:
    • EGL SqlRecord
    • DDL 中的表定义 (此定义位于 <project> /scripts/data/createTables.sql directory,其中 <project> 是项目的位置)
    • 一个库或者服务,其中包含能够进行基于类的创建、读取、更新和删除操作的方法。
    • 一个搜索/列表 JSP 和相应的 Pagehandler 提供在数据库表上的查询操作以及显示结果的视图列表的功能函数
    • 一个详细的 JSP 和相应的 Pagehandler 显示一个特定数据库行的细节的功能(添加、更新和删除操作也可以通过这些细节页执行)
  • 操作: 每个操作元素在数据存取库中产生出一个功能桩模块,并且每个操作参数变成一个 EGL 参数。
  • 属性 : 在 UML 模型中的每个属性元素代表数据库中的一列。对于每个属性,将产生以下:
    • 一个 EGL SqlRecord Field
    • DDL 中的一个列定义
  • 关联: 一个关联元素代表了两个端点类间的关系。在转换过程中有着多于两个端点类的关联关系将被忽略。一个关联关系将产生以下:
    • DDL 中的外码定义
    • 插入数据库表的列(代表关联端)




回页首


为转换建立一个 EGL Web 项目

EGL Web 项目包含 EGL 代码,Web页,和一个样本数据库,以上所有形成了应用程序的逻辑、数据和接口。Enterprise Application Resource 工程(EAR 项目)包含了在 Java™ 2 Platform,Enterprise Edition (J2EE)框架上部署一个应用程序的信息,因为此项目将会有一个 Web 接口,您需要创建一个 EGL Web 项目,而不是 EGL 项目。

为转换新建一个 EGL Web 项目

  1. 选择 File > New > Other。
  2. 选择 EGL Web Project 并点击 Next
  3. 将项目命名为 EGLWeb7
  4. 在 EAR Membership 下点击New新建一个 EAR Project。命名为 EGLWeb7EAR, 如图5所示。
  5. 点击Finish,在被问到时注意不要转换到 Web 视图。

图5. 创建一个 EGL-enabled Web 项目
创建一个 EGL-enabled Web 项目




回页首


新建转换参数模型(TPM)文件

这一部分告诉您如何新建一个 TPM 文件。一个 TPM 文件包含描述如何把 UML 文件转换成 EGL 代码的元数据。

通过执行以下步骤创建一个 TPM 文件:

  1. 右键单击 UML Model (在此例中是EGLUMLModel)并点击 Edit Transformation Parameters, 如图6所示。

图6. 打开编辑对话框
打开编辑对话框
  1. 在 Create a New TPM file 窗口中,确保您的 UML 文件被列在 Target Model field里。
  2. 为新的 TPM 文件选择 EGL Web project
  3. 点击Folder区域的 Browse 按钮并选择您之前创建的 EGL Web 项目。
  4. 点击 Finish 按钮。

图7. 指定新建的 TPM 文件设置
指定新建的 TPM 文件设置




回页首


构造 TPM 文件

TPM 文件使您能够定制从一个 UML 模型到源代码的转换。

构造一个 TPM 文件包括以下几步:

  1. 选择从 UML 到 EGL 的转换
  2. 指定类转换参数
  3. 指定类的主键列
  4. 构造初始类型参数

选择从 UML 到 EGL 的转换

  1. 在Project Explorer 视图中双击打开 TPM 文件。
  2. 在编辑器的右上角,选择 Manage applied transformations 复选框。 此操作将打开 Manage Your Transformation Parameters 窗口,如图8所示。

图8. Transformation Parameters Editor
Transformation Parameters Editor
  1. 3.通过点击Available Transforms列表中的转换,将您想使用的转换移动到 Selected Transforms 列表中,然后点击 Add, 如图9所示。
  2. 4. 点击 OK

图9.选择可用的转换
选择可用的转换

指定类转换参数

图10显示了应用于 UML 类元素的参数。右键点击类选择 EGL Application Transformation


图10. 指定数据库、页和按钮选项
指定数据库、页和按钮选项
  • 方案名称: 需要转换的表所属的数据库方案的名称。如果一个方案名称没有指定,那么将会使用模型的名称。
  • 表名称: 类代表的数据库表名称。如果一个表名称没有指定,那么将会使用类名。
  • 纪录名称:代表类的 EGL SqlRecord 名称。如果一个记录名称没有指定,那么将会使用类名。如果缺少类名,转换会使用类名的别名以保证是一个有效的 EGL 名称。
  • 列表/搜索页: 加到 JSP 上的标题代表类的列表视图。默认值是 class_name List Page, class_name 是类的名称。
  • 细节页: 加到 JSP 上的标题代表类的细节视图。默认值是 class_name List Page, class_name 是类的名称。
  • Add Button: 在 JSPs 中显示在 Add 按钮上的标签。默认值是 Add
  • Delete Button: 在 JSPs 中显示在 Delete 按钮上的标签。默认值是 Delete
  • Update Button: 在 JSPs 中显示在 Update 按钮上的标签。 按钮上的标签。默认值是 Update
  • Search Button: 在 JSPs 中显示在 Search 按钮上的标签。 按钮上的标签。默认值是 Search
  • 每页最大记录行: 在 JSP 列表中每页显示的结果集行的数目。默认值是 5

为类指定的主键列

  1. 扩展 Student 类。
  2. 选择 Student_ID 属性, 然后右键点击 EGL Application Transformation
  3. Configure property parameters for EGL Application transformation 部分,选择 Is Key Column 复选框,如图11所示。

图11. 为 Student 指定主键列
为 Student 指定主键列
  1. 为 Seminar 类构造 Key 属性。扩展 Seminar 类。
  2. 选择 Seminar_ID 属性, 然后右键点击选择 EGL Application Transformation
  3. 在 EGL Application 转换部分的 Configure 属性参数中选择 Is Key Column 复选框,如图12所示。

图12. 为 Seminar Transformation 指定主键列
为 Seminar Transformation 指定主键列

为 EGL Application Transformation 构造原始类型参数

在这个目录下的参数用来定义 UML 数据类型,允许您扩展能与一个 UML 属性关联的数据类型。

当转换一个 UML 原始类型元素时指定 EGL Application 使用的参数,遵循以下步骤。

  1. 扩展在 UML Model 定义里的对象列表下的 Primitive 类型。
  2. 选择已定义的原始类型,右键点击它选择 EGL Application Transformation
  3. Configure primitive type parameters 部分下,选择合适的 EGL 类型。
  4. 在此例中, 对于在 UML 模型中的 Date 原始类型,选择 DATE EGL Type, 如图13所示。如果对于一个 UML 原始类型没有合适的 EGL 类型选择,那么将会创建一个默认的 String 类型。

图13. 指定 EGL Application Transformation 使用的参数
指定 EGL Application Transformation 使用的参数

运行转换

为了从 UML 模型中产生 EGL 代码,进行以下步骤。

  1. 1. 点击 Transformation 参数文件中的 Run transformation 按钮,如图14所示。
  2. 2. 点击 Finish

图14. 选择其中一个在业务模型中定义的对象
选择其中一个在业务模型中定义的对象

当转换运行后,在 EGL Web Project (此例中是 EGLWeb7)的 EGL Source文件夹中会多出一些新的 EGL 包,包中包含eglumlmodel.data, eglumlmodel.access和 eglumlmodel.primitivetypes.data。

  • eglumlmodel.data 包含了记录。
  • eglumlmodel.access 包包含了类库。
  • eglumlmodel.primitivetypes.data 包包含了数据项。

    注意: 在以上包中, “eglumlmodel” 作为产生 EGL 代码的 UML 模型名称的前缀。

此外,用来定义数据库表的 DDL 脚本也会产生。 SQL 文件被存储在 <project>/scripts/data/createTables.sql 目录下, <project> 是这个项目的位置。

最后,基于 JSF 的 JSP 和相应的 EGL Handlers 也会产生。



参考资料

学习

获得产品和技术

讨论


关于作者

Niranjan 是一名技术推广人。他在 IBM 的班加罗尔印度软件实验室做有关 Rational 工具的工作。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款