求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
 
在 Oracle JDeveloper 中通过 XMI 开发 UML 图表
 

2010-05-24 作者:Deepak Vohra 来源:oracle.com

 

统一建模语言 (UML) — 由对象管理组织 (OMG) 建立的一个规范 — 是一种可视化建模与设计语言,它在近几年来发展成为复杂的面向对象的软件应用程序提供说明和编写文档的事实上的标准。

UML 建模通过使用图表可视化地表示业务过程流程以及软件和数据组件之间的交互作用。(我们稍后将提供一些这方面的例子。)标准的 UML 图表包括类图表、用例图表、状态图表、活动图表、协作图表、顺序图表和部署图表。

XML 元数据交换 (XMI) — 旨在简化数据集成的另一种 OMG 规范 — 用于表示 UML 对象的一种流行格式;UML 图表可以以 XMI 格式存储,相反,UML 图表也可以从 XMI 文件中创建。为此,XMI 简化了 UML 图表数据的传输,许多 UML 工具支持这种交换功能。不过请注意,目前只能传输图表“后面”的数据,而不能传输可视化的表示本身 — 这些工具的用户仍然需要导入传输的 XMI,然后重新创建 UML 图表。(不过,目前又正在制订一种将允许交换可视化信息的标准。)

在本技术说明中,我将说明从 XSLT 中手动创建 XMI 文件,并将其导入到 UML 工具 (Oracle JDeveloper 10g) 中,然后从 XMI 文件中创建 UML 类图表的方法。

概述

在本教程中,我们将用一个示例 Enterprise JavaBean (EJB) 部署描述符 ejb-jar.xml 生成一个 XMI 文档。

如果没有自动以 XMI 格式存储 UML 图表的工具,那么可以使用 XSLT 生成 XMI 文档。由示例部署描述符创建的 XMI 文档显示一个 UML 类图表;该图表将表现部署描述符 EJB 的分析视图。该 XMI 文档将在 JDeveloper 10g 中被转换成一个 UML 图表。

预备设置

需要 oracle.xml.parser.v2.oraxsl 类来从 XML 文档中生成 XMI 文档。首先,下载 Oracle XML 开发人员工具包 (XDK),并将 <XDK10g>/lib/xmlparserv2.jar 添加到 Classpath 中。<XDK10g> 是安装 XDK 的目录。然后,下载安装 JDeveloper 10g

生成 UML 类图表

如上面所述,UML 类图表显示一个类中的不同实体。在本部分中,我们将通过示例 EJB 部署描述符为一个 UML 类图表创建一个 XMI 文件。

容器管理的持久性 (CMP) 实体 EJB 的示例 ejb-jar.xml 部署描述符指定了一个 EJB 类中的不同的字段和查询方法。由 ejb-jar.xml 创建的 UML 类图表将显示 EJB Bean 类和 EJB 接口中的不同属性和方法。 分析视图 UML 类图表包含一个具有三个水平区域的矩形。较上面的区域显示类名,中间区域显示与 EJB 中的字段相对应的类属性,较下面的区域显示 EJB bean 类和 EJB 接口中的方法。图 1 中显示了一个示例类图表。

图 1
图 1:UML 类图表

UML 类图表中的 XMI 表示包含与 UML 类图表中的类、属性和操作相对应的 XML 元素和属性。下表列出了一个 XMI 文档的一些元素。

元素 应用程序 常用属性
XMI XMI 文档的根元素 xmi.version="1.2"
xmlns:UML="org.omg.xmi.namespace.UML"
XMI.content 包含传输的实际数据 -
XMI.header 代表 XMI 文档 -
UML.Model 代表 UML 模型 xmi.id、isSpecification、name、isRoot、isLeaf、isAbstract
UML:Namespace.ownedElement 包含 UML:Class、UML:Attribute、UML:Operation、UML:Package 和 UNL:Stereotype 元素 -
UML:Class 代表 UML 类 xmi.id、visibility、isSpecification、isRoot、isLeaf、isAbstract、isActive、name
UML:Attribute 代表 UML 类属性 xmi.id、visibility、isSpecification、ownerScope、name、type
UML:Operation 代表 UML 类图表方法 xmi:id、name、Visibility、isSpecification、ownerScope、isQuery、concurrency、isRoot、isLeaf、isAbstract
UML:Parameter 代表方法参数 xmi:id、name、isSpecification、kind
UML:Package 代表一个类图表包 xmi:id、name、visibility、isAbstract、isRoot、isLeaf
UML:Stereotype(JDeveloper 当前不支持) 代表类图表模板(例如 <<entity>>) xmi.id、name、visibility、isSpecification、isRoot、isLeaf、isAbstract

创建一个 XSLT 将示例 XML 文档转换成一个 XMI 文件,该文件包含 UML 类图表在 XMI 和 UML 命名空间内的元素。在 JDeveloper 中选择 File>New 来创建 XSLT。在显示的 New Gallery 框架中,选择 General>XML,然后在列出的项目中选择 XSLT Stylesheet。在本例中,通过一个名为 UMLAnalysisView.xslt 的 XSLT 文件,将示例 XML 文档 ejb-jar.xml 转换成一个 XMI 文档 UMLAnalysisView.xmi。在示例 ejb-jar.xml 中,所有的 CMP 字段都是 String 类型。如果一些字段不是 String 类型,那么需要修改该 XSLT。oraxsl 实用程序用于 XSLT 转换。
>java oracle.xml.parser.v2.oraxsl ejb-jar.xml 
UMLAnalysisView.xslt UMLAnalysisView.xmi
示例代码中提供了所有三个文件。 在 JDeveloper 10g 中显示 UML 类图表 在这一部分中,我们将把 XMI 文档导入到 JDeveloper 中,以生成一个分析视图类图表。首先,启动 JDeveloper 10g 并创建一个项目。
图 2
图 2:创建一个 JDeveloper 项目

要打开一个 XMI 文档,选择 File>New

图 3
图 3:打开一个 XML 文档

在显示的框架中,从 XMI Import 中选择 General>Diagrams>UML Class Diagrams。选择要从中创建我们的 UML 类图表的 XMI 文档 (UMLAnalysisView.xmi)。

图 4
图 4:从 XMI Import 中选择 UML Class Diagram

然后将在 Applications-Navigator 框架中为 UMLAnalysisView.xmi 文档添加一个名为 Class Diagram for XMI Import 的节点。

图 5
图 5:Class Diagram XMI Import 节点

要显示 UML 类图表,右键单击 Class Diagram XMI Import,然后选择 Open

图 6
图 6:打开 Class Diagram XMI Import

然后将显示与 UMLAnalysisView.xmi XMI 相对应的 UML 类图表。

图 7
图 7:JDeveloper 中的 UML 类图表

类图表的较上面的区域包含类名称。中间的区域包含类属性,它们对应 ejb-jar.xml 中的 cmp 字段。还指定了属性的数据类型。底下的区域包含了与 EJB Bean 类和接口中的 createfindergettersetter 方法相对应的类操作。类操作包含了方法的返回类型。分析视图类图表也可能包含其他特性,如 ejbSelect 和各种业务方法。

结论

正如您所看到的,XMI 格式使得传输用来重建 UML 图表的 UML 图表元数据变得非常方便。如果没有 UML 工具将 UML 图表导入到 XMI 文档中(在将来的 JDeveloper 版本中将支持这一功能),那么可以直接从 XML 文档中创建 XMI 文档(正如我们在本文中做到的那样)。



MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...