目录(?)[+]

 

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

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

PowerDesigner 概念数据模型(CDM) 说明

http://blog.csdn.net/tianlesoftware/article/details/6871179

PowerDesigner 物理数据模型(PDM) 说明

http://blog.csdn.net/tianlesoftware/article/details/6874067

PowerDesigner 面向对象模型(OOM)说明

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 节导入的脚本执行一遍:

  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. Connected to:
  5. Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production
  6. With the Partitioning, Real ApplicationClusters, OLAP, Data Mining
  7. and Real Application Testing options
  8. SQL> create user pd identified by pd;
  9. User created.
  10. SQL> grant connect,resource,dba to pd;
  11. Grant succeeded.
  12. SQL> conn pd/pd@RAC;
  13. Connected.
  14. 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 正向工程 和 逆向工程 说明的更多相关文章

  1. 正向工程、逆向工程与MDA

    正向工程.逆向工程与MDA 正向工程:从UML图形生成代码: 逆向工程:从代码和成UML图形: //不要依赖于正向或逆向工程,仅是一种辅助手段.画图的目的不是为了生成代码:而写代码的目的也不是为了生成 ...

  2. powerDesigner 正向工程生成sql注释

    找到script-->objects-->column-->add value内容如下: %:COLUMN% %:DATATYPE%[.Z:[%Compressed%? compre ...

  3. PowerDesigner 对 Oracle 作 逆向工程

    原文 PowerDesigner 对 Oracle 作 逆向工程 目的 PowerDesigner 15对OracleClient 11g进行逆向工程 环境 Win7 64位系统 Oracle 11g ...

  4. DbWrench002--建模以及数据正向工程和反向工程的具体操作

    DbWrench--建模以及数据正向工程和反向工程 参考博客:https://my.oschina.net/u/3459265/blog/1611999 一.数据正向工程 在建模工作中画好的表与表之间 ...

  5. 正向工程configuration配置连接

    在执行正向工程的时候需要用到这个关键词里面的configure();方法, 这个方法有好几个重构, 都是参数不一样的, 也可以空着不写, 不写的话就会默认去找hibernate.cfg.xml这个文件 ...

  6. Powerdesigner打开工程提示打印错误 解决方法

    在使用PowerDesigner打开工程时, 提示打印错误的问题,具体错误信息提示如下: 在您可以执行与打印机有关的任务(例如页面设置或打印一个文档)之前,您必须已经安装打印机.您想现在安装打印机么? ...

  7. Rose如何由模型生成代码(正向工程)

    原创 正向工程: 选中要转换的模型. 单击 tools>Java/J2EE > Syntax Check 来检查目标代码是否符合规范,比如命名错误. 察看rose log窗口(下方)察看检 ...

  8. 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 ...

  9. 懒要懒到底,能自动的就不要手动,Hibernate正向工程完成Oracle数据库到MySql数据库转换(含字段转换、注释)

    需求描述 需求是这样的:因为我们目前的一个老项目是Oracle数据库的,这个库呢,数据库是没有注释的,而且字段名和表名都是大写风格,比如 在代码层面的po呢,以前也是没有任何注释的,但是经过这些年,大 ...

随机推荐

  1. 分布式搜索Elasticsearch——QueryBuilders.matchPhrasePrefixQuery

    注:该文项目基础为分布式搜索Elasticsearch——项目过程(一)和分布式搜索Elasticsearch——项目过程(二),项目骨架可至这里下载. ES源代码中对matchPhrasePrefi ...

  2. (从终端看linux-2)浅析terminal创建时ptmx和pts关系

    我们打开一个terminal,那么将会在devpts文件系统/dev/pts下创建一个对应的pts字符文件,该pts字符文件节点直接由/dev/ptmx节点的驱动函数ptmx_open()调用devp ...

  3. visio2010去除直线交叉处的跨线

    设计(最上方)->连接线(最右侧)->显示跨线(取消打钩)

  4. windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机

    首先要清楚virtual box如何设置端口转发: 一篇文章: 如何使用VirtualBox进行端口转发 由于默认的方式是用NAT来做虚拟机网络的,因此如果从外网想访问虚拟机的应用会比较麻烦.以前一直 ...

  5. 关于web会话中的session过期时间的设置

    关于web会话中的session过期时间的设置 1.操作系统: 步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置— ...

  6. write_chip,read_chip

    int write_chip(UINT32 addr, UINT32 data) { if(0 == fpgaRWMode) /* localbus mode */ { UINT16 datah, d ...

  7. 详解js中的寄生组合式继承

    寄生组合式继承是js中最理想的继承方式, 最大限度的节省了内存空间. js中的寄生组合式继承要求是: 1.子对象有父对象属性的副本, 且这些不应该保存在子对象的prototype上.       2. ...

  8. POI2001 Gold mine(二叉排序树 黑书经典)

    采矿(KOP) 金矿的老师傅年底要退休了.经理为了奖赏他的尽职尽责的工作,决定送他一块长方形地.长度为S,宽度为W.老师傅可以自己选择这块地.显然其中包含的采金点越多越好.你的任务就是计算最多能得到多 ...

  9. jquery 图片放大

    上一篇是关于手风琴效果的,但是有时候我们需要放大的图片大小不规律,想要在屏幕中间显示大图. 图片放大可以做为单独的效果,也可以和其他的效果结合起来.比如Demo 里的Demo5.html是以图片无缝切 ...

  10. Oracle Data Guard

    DG 是 Oracle Data Guard 的简称.也就是Oracle11g的 数据卫士. 由于在工作中 Oracle和 SQL SERVER2008 同时都需要维护管理.给我的感觉这里的 DG 其 ...