您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center 汽车系统工程   模型库
    学习助手
会员   
   
AI智能体开发技术实践
线上 10月22-23日
OCSMP 认证培训
10月23-24日 北京+线上
AI时代的需求分析师培养
10月20-21日 北京+线上
     
   
 订阅
在 Oracle JDeveloper 中通过 XMI 开发 UML 图表
 
作者: Deepak Vohra
  643   次浏览      56 次
2010-05-24
 
编辑推荐:
文章主要介绍在 Oracle JDeveloper 中通过 XMI 开发 UML 图表,希望对你的学习有帮助。
本文来自于oracle.com,由火龙果软件Linda编辑、推荐。

统一建模语言 (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 类和接口中的 create、finder、getter 和 setter 方法相对应的类操作。类操作包含了方法的返回类型。分析视图类图表也可能包含其他特性,如 ejbSelect 和各种业务方法。

结论

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

   
643   次浏览       56 次
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训

最新活动计划
AI智能体开发实践 9-17厦门/10-22在线
OCSMP 认证培训 9-23[在线]
企业架构方法与实践 9-15[深圳]
UAF架构体系与实践 9-22[北京]
AI系统的测试方法与工具 9-17[北京]
AI时代的软件架构师培养 9-19[上海]
AI时代的需求分析师培养 10-20[北京]
 
 
最新文章
InfluxDB概念和基本操作
InfluxDB TSM存储引擎之数据写入
深度漫谈数据系统架构——Lambda architecture
Lambda架构实践
InfluxDB TSM存储引擎之数据读取
最新课程
Oracle数据库性能优化、架构设计和运行
并发、大容量、高性能数据库设计与优化
NoSQL数据库(原理、应用、最佳实践)
企业级Hadoop大数据处理最佳实践
Oracle数据库性能优化最佳实践
成功案例
某金融公司 Mysql集群与性能优化
北京 并发、大容量、高性能数据库设计
知名某信息通信公司 NoSQL缓存数据库
北京 oracle数据库SQL优化
中国移动 IaaS云平台-主流数据库及存储