在前面几篇里介绍了几个PowerDesigner的经常使用模型,参考:html
PowerDesigner 概念数据模型(CDM) 说明java
http://blog.csdn.net/tianlesoftware/article/details/6871179web
PowerDesigner 物理数据模型(PDM) 说明sql
http://blog.csdn.net/tianlesoftware/article/details/6874067数据库
http://blog.csdn.net/tianlesoftware/article/details/6879229oracle
PowerDesigner 业务处理模型( BPM ) 说明app
http://blog.csdn.net/tianlesoftware/article/details/6882109ide
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
PD 自带的示例CDM:
咱们将这个CDM 转换称PDM: Tools --> Generate Physical Data Model.
生成的PDM 图以下:
再将咱们的PDM 生成对应的SQL 脚本: Database –> Generate Database
这里有两种选择,一种是生成脚本,即Script generation,还有一种是直接在数据库里生成,即directory generate,通常都是先生成SQL 脚本,而后在数据库执行脚本。
以上就是一个典型的过程,也是软件工程中建议的一种流程。
在2.1 节讲了正向工程的一些概念,即从CDMàPDM à DATABASE. 若是严格按照这个过程来执行,在后期还能够参考这些Model。可是在国内的软件开发流程中,只有少数的公司会按照这个流程来走,那么大多数状况都是拿到需求分析后直接在数据库里建表。
若是某个线上的系统,就是这么设计出来的,那么这时候,咱们要获得它的PDM,就可使用PD的逆向工程来实现。
先连上测试环境,新建一个用户,而后把咱们2.1 节导入的脚本执行一遍:
脚本执行完毕后,相关的表和索引已经建立完成,如今咱们使用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