PowerDesigner 正向工程 和 逆向工程 说明
一. 正向工程与逆向工程说明
在前面几篇里介绍了几个PowerDesigner的常用模型,参考:
http://blog.csdn.net/tianlesoftware/article/details/6871179
http://blog.csdn.net/tianlesoftware/article/details/6874067
http://blog.csdn.net/tianlesoftware/article/details/6879229
PowerDesigner 业务处理模型( BPM ) 说明
http://blog.csdn.net/tianlesoftware/article/details/6882109
PowerDesigner 企业架构模型 ( EAM ) 说明
http://blog.csdn.net/tianlesoftware/article/details/6883772
正向工程和逆向工程就是上面几个模型相互之间转换的过程。
正向工程:
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 节导入的脚本执行一遍:
- C:\Users\Administrator.DavidDai>sqlplussys/oracle@RAC as sysdba;
- SQL*Plus: Release 11.2.0.1.0 Production onTue Oct 18 13:37:17 2011
- Copyright (c) 1982, 2010, Oracle. All rights reserved.
- Connected to:
- Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production
- With the Partitioning, Real ApplicationClusters, OLAP, Data Mining
- and 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 如下:

正向工程与逆向的工程就这么多,更多内容就各位同学自己研究了。
-------------------------------------------------------------------------------------------------------
版权所有. 文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Email: tianlesoftware@gmail.com
PowerDesigner 正向工程 和 逆向工程 说明的更多相关文章
- 正向工程、逆向工程与MDA
正向工程.逆向工程与MDA 正向工程:从UML图形生成代码: 逆向工程:从代码和成UML图形: //不要依赖于正向或逆向工程,仅是一种辅助手段.画图的目的不是为了生成代码:而写代码的目的也不是为了生成 ...
- powerDesigner 正向工程生成sql注释
找到script-->objects-->column-->add value内容如下: %:COLUMN% %:DATATYPE%[.Z:[%Compressed%? compre ...
- PowerDesigner 对 Oracle 作 逆向工程
原文 PowerDesigner 对 Oracle 作 逆向工程 目的 PowerDesigner 15对OracleClient 11g进行逆向工程 环境 Win7 64位系统 Oracle 11g ...
- DbWrench002--建模以及数据正向工程和反向工程的具体操作
DbWrench--建模以及数据正向工程和反向工程 参考博客:https://my.oschina.net/u/3459265/blog/1611999 一.数据正向工程 在建模工作中画好的表与表之间 ...
- 正向工程configuration配置连接
在执行正向工程的时候需要用到这个关键词里面的configure();方法, 这个方法有好几个重构, 都是参数不一样的, 也可以空着不写, 不写的话就会默认去找hibernate.cfg.xml这个文件 ...
- Powerdesigner打开工程提示打印错误 解决方法
在使用PowerDesigner打开工程时, 提示打印错误的问题,具体错误信息提示如下: 在您可以执行与打印机有关的任务(例如页面设置或打印一个文档)之前,您必须已经安装打印机.您想现在安装打印机么? ...
- Rose如何由模型生成代码(正向工程)
原创 正向工程: 选中要转换的模型. 单击 tools>Java/J2EE > Syntax Check 来检查目标代码是否符合规范,比如命名错误. 察看rose log窗口(下方)察看检 ...
- hibernate正向工程生成数据库
hibernate正向工程生成数据库 hibernate.cfg.xml ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...
- 懒要懒到底,能自动的就不要手动,Hibernate正向工程完成Oracle数据库到MySql数据库转换(含字段转换、注释)
需求描述 需求是这样的:因为我们目前的一个老项目是Oracle数据库的,这个库呢,数据库是没有注释的,而且字段名和表名都是大写风格,比如 在代码层面的po呢,以前也是没有任何注释的,但是经过这些年,大 ...
随机推荐
- UVa 10213 (欧拉公式+Java大数) How Many Pieces of Land ?
题意: 一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 分析: 首先紫书上的公式是错的,不过根据书上提供的思路很容易稍加修改得到正确答案! 然后推公式吧,这里用到平面图的欧拉公 ...
- Spring中使用quartz插件实现定时任务
第一步:导入架包 *spring3.2.3版本的架包将spring的各个功能模块给分开了,我们必须将Spring必须依赖的包导入上去 第二步:编写配置文件 <?xml version=" ...
- Java [leetcode 23]Merge k Sorted Lists
题目描述: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complex ...
- Windows 之间用rsync同步数据(cwRsyncServer配置)
rsync是一款优秀的数据同步软件,在跨服务器,跨机房,跨国备份服务器的首选工具,下面就来介绍下如何配置安装cwRsyncServer很大多数软件一样是B/C架构,cwRsyncServer是rsyn ...
- [转] Symbol对象
GIS中的离散实体有三种:点.线.面,在ArcEngine中用三种符号对应表示,分别是:MarkSymbol.LineSymbol和FillSymbol.此外还有TextSymbol用于文字标注,3D ...
- android:installLocation简析
在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置. android:inst ...
- 黑盒测试用例设计方法&理论结合实际 -> 错误推断法
一 概念 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 二 错误推断法的应用 基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试 ...
- Selenium webdriver 之select 控件封装,解决onchange问题
使用webdriver的时候,select 控件经常会绑定onchange 事件,在selenium2.09 之前click 方法对onchange 事件有bug,2.09 以后修复了,但是根据经验也 ...
- wuzhicms 模块开发
首先,模块开发需要了解五指cms的目录结构: 然后,我们需要新增加一个模块目录: 再app下面创建 如:content 下面包含文件: 前台文件的创建: 看下 index.php 的内容: <? ...
- leetcode@ [126] Word Ladder II (BFS + 层次遍历 + DFS)
https://leetcode.com/problems/word-ladder-ii/ Given two words (beginWord and endWord), and a diction ...