Rational Rose和PowerDesigner建模工具比较

您所在的位置:网站首页 太吾绘卷怎么找npc Rational Rose和PowerDesigner建模工具比较

Rational Rose和PowerDesigner建模工具比较

2024-01-25 23:49| 来源: 网络整理| 查看: 265

三、 模型组织和层次结构上的区别     1、模型组织Rose将数据库模型和对象模型放在一起,在进行数据表模型设计时,没有特性化的东西。而PowerDesigner将两者分开,其模型组织层级关系是:工作空间->模型类型->具体语言/数据库的模型->包->文件夹->Diagram->设计元素。在创建模型文件时,会让你选择模型类型,选择模型类型后,还可以选择模型类型下语言及版本相关的细分类。不同设计模型对应软件工程的不同阶段,如业务模型和需求模型属于项目需求阶段,而对象模型属于概要和详细设计阶段,数据库模型属于详细设计阶段。它们之间虽然有很强的内在联系,但差异性也很明显,硬将两者放到一起,就象把猴子和猩猩关进同一个笼子,为了兼顾和平衡两者之间的考量,其结果是两者都得不到很好的支持。  

                                                                                    图 1新建模型窗口(PD)                                            

                                                                            图 2新建模型窗口(Rose)      PowerDesinger可以通过模型转换工具进行数据库建模和面向对象模型的相互转换。但Rose不能将对象转换为表,也不能将表转换为对象。         2、工作空间PowerDesigner有工作空间的概念,一个工作空间下可以同时打开多个设计模型文件;而Rose同时仅能打开一个设计文件,如果在设计时,需要参考其他的Rose设计模型,则需要反复关闭现有模型,打开参考模型,显得设计上比较欠考虑。这个问题上两者的差异恰似Eclipse和JBuilder的区别,Eclipse可以同时打开多个工程,而JBuilder只能同时打开一个工程。       3、设计界面PowerDesigner的设计界面可以左右上下移动,而Rose只能向右,向下移动,此外。PowerDesigner可以将模型元素放大很多倍,而Rose只能放大到正常倍数,不过Rose的Overview工具可以使用户快速定位到设计区中特定的区域,有点类似于游戏界面中常用的小地图,挺不错;                                                                           图 3 Overview工具(Rose)    而在PowerDesigner中,你可以通过F8快捷键查看Diagram的总览图,不过只得通过放大操作定位到定位区域。 4  对模型和语言的支持   ? 对设计模型的支持力度和广度 PowerDesigner对对象模型和数据库建模两者的支持力度已经大抵相等,此外,还支持概念模型、业务模型、需求模型、XML模型、信息流模型、自由模型的分析设计。不过对后面这几个模型的支持比较初级,而且在实际的应用中,这些模型用得也比较少,PowerDesigner的突出亮点还是在数据库建模和对象模型的设计上。       对于数据库模型,PowerDesigner支持20余种数据库,对于同一数据库的不同版本还提供单独的支持,以便在设计数据库模型时,提供数据库和版本相关的设计。对于面向对象模型,PowerDesigner支持11种主流语言,为对Java 5.0提供单独的支持。 Rose基本上可以说是一个对象模型设计工具,对数据库模型的支持相对粗糙,内嵌的只支持Oracle 8数据库,对其他数据库设计的支持需要通过安装插件的方式获得,且对数据库物理存储参数等较细粒度的内容支持得比较粗糙。Rose的对象模型主要支持Java、VC和VB三种语言。 ? 对Java语言的支持 Rose对Java语言的支持更好,不但为不同版本的JDK提供了支持(不过Rose 2003还不支持JDK 5.0),还为Java具体产品及设计模式(如EJB、Corba、Servlet,GOF设计模式等)提供了内嵌性的支持,这些支持直接反应在Rose的主菜单上。正因为如此,使Rose背上的沉重的历史负担,如EJB和Corba这种语言级的东西是易变且不断更新的,如何在这些具体产品的地位和影响已经降低时,对其作出割舍而又保证版本的兼容性,是摆在设计者面前的难题。 PowerDesigner仅提供语言级对象设计的支持,不涉及语言内部的具体产品。其次因为它的设计工作区是和具体的模型类型及语言细分类相关的,而非在主菜单中直接提供支持,所以PowerDesigner在升级时显得更加从容一些。 这也是为什么PowerDesigner能以每年一个版本的速度升级,而Rose在2003版本后,新版本还迟迟投入市场的内在原因,否则以IBM的财力,研发能力不至于对市场反应如果缓慢。 5  输入和输出功能的比较 ? 反向工程 从将程序代码转换为设计模型的逆向工程功能上看,Rose更象一个IDE,它会对需要逆向工程操作的程序代码进行深度语义检查,如果存在诸如程序代码引用了类库之外的类,反向工程将失败,而且在报告失败之前,窗口会陷入长时间无响应状态。 PowerDesigner仅对需逆向工程的程序代码进行浅度语法检查,这种浅度语法检查不涉及包,类之间的关联,仅对诸如类名是否和类文件名匹配,是否少了“}” 等语法性的内容进行检查。即便存在错误,PowerDesigner也允许你忽略错误,继续进行逆向工程操作,这种宽松的限制带来了很大的便利。                                                                                图 4逆向工程失败选择三种选择(PD)     忽略错误后,PowerDesigner会尽量修补错误,例如代码中少了对应的“}”,它将会补上,类名和文件名不一致,将忽略类文件名保持类名不变。     Rose一直宣扬的理念是IDE和设计工程进行双向互通:在Rose中完成模型设计后导出为IDE所用的代码,IDE编码调整后又逆向工程到Rose。理念很美,深具吸引力,但是在实现中,往往很少有开发团队会这样做。一般CASE工具只是在分析设计阶段使用,甚至很大比例的设计师仅把它当成画图的工具。 真正进入编码开发阶段后,将加入大量设计时不涉及的类和方法,如果将这些非骨架性的东西Reverse到CASE工具中,反而会使原来清晰的设计变得雾里花,水中月。所以即使编码时,需要对原分析模型进行调整,一般也是手工去调整设计模型,而不是通过逆向工程去同步,毕竟分析设计是骨架性的,而编码是血肉性的,两者有属性上的区别。如果真的需要频繁进行的代码和UML转换,最好使用类似于Together一样的工具,它嵌入到IDE中,使代码和模型转换方便快捷。 ? 文档导出功能 PowerDesigner对文档导出提供了精细的控制,你不但可以对文档所包含的内容项进行设置,还可以对内容项的格式进行设置。如导出的表结构是否包括名称、数据类型、备注等项目,这些项目在表栏中的宽度占比,颜色,字号等等,不一而足。     PowerDesinger 12.0 还新增了一个多模型文档整合导出的Milti-Model Report模型,允许你以多个模型作为输入生成为统一文档,实现模型设计按阶段分开,文档又统一整合的目的。     由于PowerDesigner文档导出的设置非常精细,所以要设置好一个文档导出模式实非不易。有鉴于此,PowerDesinger提供了三种常用的导出模板,用户也可以自己定义模板。通过模板可以迅速完成设计模型文档的导出工作。 而Rose没有导出模板的概念,更不能对导出项和格式进行设置,你只能按Rose的系统内置的方式进行模型文档的发布。 ? 代码导出      在导出设计模型的代码时,PowerDesigner提供了精细的控制,不但可以进行对象级别,还可以进行代码级别的控制(如是否要生成字段备注的代码,外键代码在表体代码内声明还是在表体外部声明等),而Rose没有提供代码导出的控制,也只能按其系统内部设置的方式导出代码。                                                                         图 5 数据库模型导出设置(PD) ?      生成测试数据     PowerDesigner可为数据表生成批量的测试数据,而且你还可以制定测试数据的生成规则。这个功能给初期项目的开发测试带来很大的便利。Rose中没有提供类似的功能。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3