zoukankan      html  css  js  c++  java
  • PowerDesigner 正向工程 和 逆向工程 说明

     

    PowerDesigner 正向工程 和 逆向工程 说明

     

    目录(?)[+]

     

     

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

    在前面几篇里介绍了几个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:UsersAdministrator.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  

     

     

    脚本执行完毕后,相关的表和索引已经创建完成,现在我们使用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

  • 相关阅读:
    N++ 道ASP.NET面试题
    Console-算法:fun1(do while)
    软件业:印度比中国强在哪
    印度软件业崛起的奥妙
    算法目录
    scala目录
    scala命令
    Spark目录
    Ubuntu目录
    Java核心技术卷二部分笔记
  • 原文地址:https://www.cnblogs.com/sczw-maqing/p/3193858.html
Copyright © 2011-2022 走看看