博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六、PowerDesigner 正向工程 和 逆向工程 说明
阅读量:5060 次
发布时间:2019-06-12

本文共 2472 字,大约阅读时间需要 8 分钟。

一. 正向工程与逆向工程说明

在前面几篇里介绍了几个PowerDesigner的常用模型,参考:

 

 

 

 

 

正向工程和逆向工程就是上面几个模型相互之间转换的过程。

 

正向工程:

        CDM—>PDM

PDM—> Database

PDM—>OOM

 

从CDM 到PDM 也是软件工程中推荐的一种方法,不过在实际的项目中,很少有公司会按照这个流程来走,甚至连E-R图都不画,直接上来就建表。

 

逆向工程:

(1)    从处理语言(Process Language)逆向生成业务处理模型(BPM)

(2)    从对象语言(Object Language)逆向生成面向对象模型(OOM)

(3)    从数据库(Database)或数据库脚本逆向生成物理数据模型(PDM)

(4)    从XML定义(XMLDifinition)逆向生成XML模型

 

二. 示例

在这里演示2个例子:

(1)    CDM --> PDM --> Database.

(2)    Database --> PDM --> CDM

 

2.1 正向工程:CDM –>PDM –> Database示例

 

PD 自带的示例CDM:

 

我们将这个CDM 转换称PDM:  Tools --> Generate Physical Data Model.

 

生成的PDM 图如下:

 

再将我们的PDM 生成对应的SQL 脚本: Database –> Generate Database

 

 

这里有两种选择,一种是生成脚本,即Script generation,还有一种是直接在数据库里生成,即directory generate,一般都是先生成SQL 脚本,然后在数据库执行脚本。

 

以上就是一个典型的过程,也是软件工程中建议的一种流程。

 

2.2 逆向工程:Database  --> PDM --> CDM

        在2.1 节讲了正向工程的一些概念,即从CDMàPDM à DATABASE. 如果严格按照这个过程来执行,在后期还可以参考这些Model。但是在国内的软件开发流程中,只有少数的公司会按照这个流程来走,那么大多数情况都是拿到需求分析后直接在数据库里建表。

       如果某个线上的系统,就是这么设计出来的,那么这时候,我们要得到它的PDM,就可以使用PD的逆向工程来实现。

 

先连上测试环境,新建一个用户,然后把我们2.1 节导入的脚本执行一遍:

 

[sql]
  1. C:\Users\Administrator.DavidDai>sqlplussys/oracle@RAC as sysdba;  
  2. SQL*Plus: Release 11.2.0.1.0 Production onTue Oct 18 13:37:17 2011  
  3. Copyright (c) 1982, 2010, Oracle.  All rights reserved.  
  4.    
  5. Connected to:  
  6. Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production  
  7. With the Partitioning, Real ApplicationClusters, OLAP, Data Mining  
  8. and Real Application Testing options  
  9.    
  10. SQL> create user pd identified by pd;  
  11. User created.  
  12.    
  13. SQL> grant connect,resource,dba to pd;  
  14. Grant succeeded.  
  15.   
  16. SQL> conn pd/pd@RAC;  
  17. Connected.  
  18. SQL> @d:\crebas.sql  
C:\Users\Administrator.DavidDai>sqlplussys/oracle@RAC as sysdba;SQL*Plus: Release 11.2.0.1.0 Production onTue Oct 18 13:37:17 2011Copyright (c) 1982, 2010, Oracle.  All rights reserved. Connected to:Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - ProductionWith the Partitioning, Real ApplicationClusters, OLAP, Data Miningand Real Application Testing options SQL> create user pd identified by pd;User created. SQL> grant connect,resource,dba to pd;Grant succeeded.SQL> conn pd/pd@RAC;Connected.SQL> @d:\crebas.sql

 

脚本执行完毕后,相关的表和索引已经创建完成,现在我们使用PD 来进行逆向工程操作。

 

File —> Reverse Engineer –>Database

 

 

修改PDM 模块名称和 DBMS 类型,这里是Oracle 10gR2:

 

配置数据源:

 

 

Connection profile name: 生成连接文件名称

Directory:生成连接文件保存位置,我这里保存到桌面

Connection type:连接类型,可是使用Native(tnsnames.ora)或者JDBC。

 

确定之后进行reverse。具体需要的时间要根据数据库对象的多少来定。 我的这个测试,不到1分钟就搞完了。

 

逆向工程之后的PDM 如下图:

 

 

在将PDM 转成CDM:

 

 

最终的CDM 如下:

 

 

正向工程与逆向的工程就这么多,更多内容就各位同学自己研究了。

转载于:https://www.cnblogs.com/aaa6818162/archive/2012/08/06/2625733.html

你可能感兴趣的文章
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
【知识库】-数据库_MySQL 的七种 join
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
代码整洁
查看>>
蓝桥杯-分小组-java
查看>>
Java基础--面向对象编程1(类与对象)
查看>>