本文和你们重点讨论一下Rose与PowerDesigner:两款UML建模工具的对比,Rose和PowerDesigner虽然在项目分析设计领域已经成为被高度聚光的明星,可是在不一样的公司中被分别要求使用Rose或PowerDesigner进行分析设计工做,因此对两者有着较为细致的体验。
Rose与PowerDesigner:两款UML建模工具的对比数据库
1、两者的出身设计模式
做为世界最著名的两大CASE工具,RationalRose和PowerDesigner的名声可谓如雷贯耳。Rose是当时全球最大的CASE工具提供商Rational的拳头产品,UML建模语言就是由Rational公司的三位巨头Booch、Rumbaugh和Jacobson发明的,后来Rational被IBM收购,因此Rose可谓出身名门,嫁入豪族。而PowerDesigner也有一段好玩的历史,做者王晓昀是一位中国人,在法国SDP软件公司工做时,因为苦觅一个好用的CASE工具未果,干脆自由开搞,整了个AMCDesignor出来,竟然一炮打响,在法国卖得个“巴黎纸贵”,后来SDP被Powersoft公司收购,同年Sybase这只大黄雀又吃下了Powersoft这只螳螂,因此PowerDesigner也是惊艳出场,星光四射。
但二者所走的明星路线却很不相同,Rose出道是时,走的是UML面向对象建模,然后再向数据库建模发展,而PowerDesigner则反其道而行之,它先是一个纯粹的数据库UML建模工具,后来才向面向对象建模,业务逻辑建模及需求分析建模进军,最终变成“演视歌三栖”明星。
因为第一印象的影响,因此Rose经常给人的印象仍是只是面向对象分析设计的工具,而PowerDesigner给人的印象则还停留在数据库UML建模工具上。其实,如今的Rose和PowerDesigner都便可以进行数据库建模,也能够进行面向对象建模,只是存在支持上的偏重而已。数据库设计
2、两款UML建模工具区别概述工具
Rose和PowerDesigner虽然在项目分析设计领域已经成为被高度聚光的明星,可是在具体使用哪款工具的问题上,不一样的公司,不一样的人,出于成本,习惯抑或我的喜爱,每每有本身的判断。因为笔者在不一样的公司中被分别要求使用Rose或PowerDesigner进行分析设计工做,因此对两者有着较为细致的体验。
Rose走大而全,一站式的策略,它没有将数据库设计和面向对象设计清晰地分开,仅以不一样的目录来区分。而PowerDesigner将二者划分到独立的模型文件中,分别对应不一样的设计环境,并经过模型之间的转换工具创建各模型的关联。即便对于数据库设计模型,PowerDesigner也须要你选择一个具体的数据库产品及其版本,以便工做环境对具体数据库敏感。因此Rose显得大而化之,而PowerDesigner则比较精细和一体化。Rose的逆向工程,文档输出,代码生成等输入输出功能上表现得比较生硬单调,PowerDesigner在逆向工程,特别是文档输出和代码生成这些功能上提供了精细的控制,让用户拥有高度的自由度。测试
Rose在操做体验上存在不少须要改进的地方,Rose偏向于让用户用鼠标进行操做,对键盘操做支持很差。而PowerDesigner在用户体验上得分很高,大部分操做均可以经过键盘完成,在充分熟悉其快捷键的前提下,PowerDesigner将给设计者一种行云流水的感受,用户交互上更加人性化。此外,Rose每每占用更多的资源,容易异常退出,PowerDesigner则显得轻便稳定。因此,我我的对二者的体验就是“Rose笨拙,PD利索”。下面将具体列出Rose和PowerDesigner的一系列的区别,相信你们能够借由这些比较而见微知著,窥斑知豹,以资在选择工具时,提供参考。ui
3、两款UML建模工具在模型组织和层次结构上的区别编码
一、模型组织Rose将数据库模型和对象模型放在一块儿,在进行数据表模型设计时,没有特性化的东西。而PowerDesigner将二者分开,其模型组织层级关系是:工做空间->模型类型->具体语言/数据库的模型->包->文件夹->Diagram->设计元素。在建立模型文件时,会让你选择模型类型,选择模型类型后,还能够选择模型类型下语言及版本相关的细分类。不一样设计模型对应软件工程的不一样阶段,如业务模型和需求模型属于项目需求阶段,而对象模型属于概要和详细设计阶段,数据库模型属于详细设计阶段。它们之间虽然有很强的内在联系,但差别性也很明显,硬将二者放到一块儿,就象把猴子和猩猩关进同一个笼子,为了兼顾和平衡二者之间的考量,其结果是二者都得不到很好的支持。.net
PowerDesinger能够经过模型转换工具进行数据库建模和面向对象模型的相互转换。但Rose不能将对象转换为表,也不能将表转换为对象。插件
二、工做空间PowerDesigner有工做空间的概念。一个工做空间下能够同时打开多个设计模型文件;而Rose同时仅能打开一个设计文件,若是在设计时,须要参考其余的Rose设计模型,则须要反复关闭现有模型,打开参考模型,显得设计上比较欠考虑。这个问题上二者的差别恰似Eclipse和JBuilder的区别,Eclipse能够同时打开多个工程,而JBuilder只能同时打开一个工程。设计
三、设计界面PowerDesigner的设计界面能够左右上下移动,而Rose只能向右,向下移动。此外,PowerDesigner能够将模型元素放大不少倍,而Rose只能放大到正常倍数,不过Rose的Overview工具可使用户快速定位到设计区中特定的区域,有点相似于游戏界面中经常使用的小地图,挺不错;而在PowerDesigner中,你能够经过F8快捷键查看Diagram的总览图,不过只得经过放大操做定位到定位区域。
四、两款UML建模工具对模型和语言的支持
◆对设计模型的支持力度和广度
PowerDesigner对对象模型和数据库建模二者的支持力度已经大抵相等,此外,还支持概念模型、业务模型、需求模型、XML模型、信息流模型、自由模型的分析设计。不过对后面这几个模型的支持比较初级,并且在实际的应用中,这些模型用得也比较少,PowerDesigner的突出亮点仍是在数据库建模和对象模型的设计上。
对于数据库模型,PowerDesigner支持20余种数据库,对于同一数据库的不一样版本还提供单独的支持,以便在设计数据库模型时,提供数据库和版本相关的设计。对于面向对象模型,PowerDesigner支持11种主流语言,为对Java5.0提供单独的支持。
Rose基本上能够说是一个对象模型设计工具,对数据库模型的支持相对粗糙,内嵌的只支持Oracle8数据库,对其余数据库设计的支持须要经过安装插件的方式得到,且对数据库物理存储参数等较细粒度的内容支持得比较粗糙。Rose的对象模型主要支持Java、VC和VB三种语言。
◆对Java语言的支持
Rose对Java语言的支持更好,不但为不一样版本的JDK提供了支持(不过Rose2003还不支持JDK5.0),还为Java具体产品及设计模式(如EJB、Corba、Servlet,GOF设计模式等)提供了内嵌性的支持,这些支持直接反应在Rose的主菜单上。正由于如此,使Rose背上的沉重的历史负担,如EJB和Corba这种语言级的东西是易变且不断更新的,如何在这些具体产品的地位和影响已经下降时,对其做出割舍而又保证版本的兼容性,是摆在设计者面前的难题。
PowerDesigner仅提供语言级对象设计的支持,不涉及语言内部的具体产品。其次由于它的设计工做区是和具体的模型类型及语言细分类相关的,而非在主菜单中直接提供支持,因此PowerDesigner在升级时显得更加从容一些。
这也是为何PowerDesigner能以每一年一个版本的速度升级,而Rose在2003版本后,新版本还迟迟投入市场的内在缘由,不然以IBM的财力,研发能力不至于对市场反应若是缓慢。
五、两款UML建模工具输入和输出功能的比较
◆反向工程
从将程序代码转换为设计模型的逆向工程功能上看,Rose更象一个IDE,它会对须要逆向工程操做的程序代码进行深度语义检查,若是存在诸如程序代码引用了类库以外的类,反向工程将失败,并且在报告失败以前,窗口会陷入长时间无响应状态。
PowerDesigner仅对需逆向工程的程序代码进行浅度语法检查,这种浅度语法检查不涉及包,类之间的关联,仅对诸如类名是否和类文件名匹配,是否少了“}”等语法性的内容进行检查。即使存在错误,PowerDesigner也容许你忽略错误,继续进行逆向工程操做,这种宽松的限制带来了很大的便利。
忽略错误后,PowerDesigner会尽可能修补错误,例如代码中少了对应的“}”,它将会补上,类名和文件名不一致,将忽略类文件名保持类名不变。
Rose一直宣扬的理念是IDE和设计工程进行双向互通:在Rose中完成模型设计后导出为IDE所用的代码,IDE编码调整后又逆向工程到Rose。理念很美,深具吸引力,可是在实现中,每每不多有开发团队会这样作。通常CASE工具只是在分析设计阶段使用,甚至很大比例的设计师仅把它当成画图的工具。
真正进入编码开发阶段后,将加入大量设计时不涉及的类和方法,若是将这些非骨架性的东西Reverse到CASE工具中,反而会使原来清晰的设计变得雾里花,水中月。因此即便编码时,须要对原分析模型进行调整,通常也是手工去调整设计模型,而不是经过逆向工程去同步,毕竟分析设计是骨架性的,而编码是血肉性的,二者有属性上的区别。若是真的须要频繁进行的代码和UML转换,最好使用相似于Together同样的工具,它嵌入到IDE中,使代码和模型转换方便快捷。
◆文档导出功能
PowerDesigner对文档导出提供了精细的控制,你不但能够对文档所包含的内容项进行设置,还能够对内容项的格式进行设置。如导出的表结构是否包括名称、数据类型、备注等项目,这些项目在表栏中的宽度占比,颜色,字号等等,不一而足。
PowerDesinger12.0还新增了一个多模型文档整合导出的Milti-ModelReport模型,容许你以多个模型做为输入生成为统一文档,实现模型设计按阶段分开,文档又统一整合的目的。
因为PowerDesigner文档导出的设置很是精细,因此要设置好一个文档导出模式实非不易。有鉴于此,PowerDesinger提供了三种经常使用的导出模板,用户也能够本身定义模板。经过模板能够迅速完成设计模型文档的导出工做。
而Rose没有导出模板的概念,更不能对导出项和格式进行设置,你只能按Rose的系统内置的方式进行模型文档的发布。
◆代码导出
在导出设计模型的代码时,PowerDesigner提供了精细的控制,不但能够进行对象级别,还能够进行代码级别的控制(如是否要生成字段备注的代码,外键代码在表体代码内声明仍是在表体外部声明等),而Rose没有提供代码导出的控制,也只能按其系统内部设置的方式导出代码。
◆生成测试数据
PowerDesigner可为数据表生成批量的测试数据,并且你还能够制定测试数据的生成规则。这个功能给初期项目的开发测试带来很大的便利。Rose中没有提供相似的功能。
【编辑推荐】
全面认识UML建模工具–RationalRose选择UML建模工具的几个标准UML建模工具在微软VisualStudio2005使用三大UML建模工具Visio、Rational Rose、PowerDesign的区别UML建模工具Rose与PowerDesigner,两款建模工具的对比————————————————版权声明:本文为CSDN博主「Pannahouse」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。原文连接:https://blog.csdn.net/qq_37878579/article/details/79144366