设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
Rose与PowerDesigner:两款建模工具对比分析比较 ...
返回列表
发新帖
Rose与PowerDesigner:两款建模工具对比分析比较
[复制链接]
11
|
9
|
2006-12-2 12:25:43
|
显示全部楼层
|
阅读模式
【IT168技术分析】
一、 二者的出身
作为世界最著名的两大CASE工具,Rational Rose和PowerDesigner的名声可谓如雷贯耳。Rose是当时全球最大的CASE工具提供商Rational的拳头产品,UML建模语言就是由Rational公司的三位巨头Booch、Rumbaugh和Jacobson发明的,后来Rational被IBM收购,所以Rose 可谓出身名门,嫁入豪族。而PowerDesigner也有一段好玩的历史,作者王晓昀是一位中国人,在法国SDP软件公司工作时,由于苦觅一个好用的CASE工具未果,干脆自由开搞,整了个AMC*Designor出来,居然一炮打响,在法国卖得个“巴黎纸贵”,后来SDP被Powersoft公司收购,同年Sybase这只大黄雀又吃下了Powersoft这只螳螂,所以PowerDesigner也是惊艳出场,星光四射。
但两者所走的明星路线却很不相同,Rose出道是时,走的是UML面向对象建模,而后再向数据库建模发展,而PowerDesigner则反其道而行之,它先是一个纯粹的数据库建模工具,后来才向面向对象建模,业务逻辑建模及需求分析建模进军,最终变成“演视歌三栖”明星。
由于第一印象的影响,所以Rose常常给人的印象还是只是面向对象分析设计的工具,而PowerDesigner给人的印象则还停留在数据库建模工具上。其实,现在的Rose和PowerDesigner都即可以进行数据库建模,也可以进行面向对象建模,只是存在支持上的偏重而已。
二、 二者区别概述
Rose和PowerDesigner虽然在项目分析设计领域已经成为被高度聚光的明星,但是在具体使用哪款工具的问题上,不同的公司,不同的人,出于成本,习惯抑或个人喜好,往往有自己的判断。由于笔者在不同的公司中被分别要求使用Rose或PowerDesigner进行分析设计工作,所以对二者有着较为细致的体验。
Rose走大而全,一站式的策略,它没有将数据库设计和面向对象设计清晰地分开,仅以不同的目录来区分。而PowerDesigner将两者划分到独立的模型文件中,分别对应不同的设计环境,并通过模型之间的转换工具建立各模型的关联。即使对于数据库设计模型,PowerDesigner也需要你选择一个具体的数据库产品及其版本,以便工作环境对具体数据库敏感。所以Rose显得大而化之,而PowerDesigner则比较精细和具体化。Rose的逆向工程,文档输出,代码生成等输入输出功能上表现得比较生硬单调,PowerDesigner在逆向工程,特别是文档输出和代码生成这些功能上提供了精细的控制,让用户拥有高度的自由度。
Rose在操作体验上存在很多需要改进的地方,Rose偏向于让用户用鼠标进行操作,对键盘操作支持不好。而PowerDesigner在用户体验上得分很高,大部分操作都可以通过键盘完成,在充分熟悉其快捷键的前提下,PowerDesigner将给设计者一种行云流水的感觉,用户交互上更加人性化。此外,Rose往往占用更多的资源,容易异常退出,PowerDesigner则显得轻便稳定。所以,我个人对两者的体验就是“Rose笨拙,PD利索”。下面将具体列出Rose和PowerDesigner的一系列的区别,相信大家可以借由这些比较而见微知著,窥斑知豹,以资在选择工具时,提供参考。
三、 模型组织和层次结构上的区别
1、模型组织Rose将数据库模型和对象模型放在一起,在进行数据表模型设计时,没有特性化的东西。而PowerDesigner将两者分开,其模型组织层级关系是:工作空间->模型类型->具体语言/数据库的模型->包->文件夹->Diagram->设计元素。在创建模型文件时,会让你选择模型类型,选择模型类型后,还可以选择模型类型下语言及版本相关的细分类。不同设计模型对应软件工程的不同阶段,如业务模型和需求模型属于项目需求阶段,而对象模型属于概要和详细设计阶段,数据库模型属于详细设计阶段。它们之间虽然有很强的内在联系,但差异性也很明显,硬将两者放到一起,就象把猴子和猩猩关进同一个笼子,为了兼顾和平衡两者之间的考量,其结果是两者都得不到很好的支持。
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
PowerDesinger可以通过模型转换工具进行数据库建模和面向对象模型的相互转换。但Rose不能将对象转换为表,也不能将表转换为对象。
2、工作空间PowerDesigner有工作空间的概念,一个工作空间下可以同时打开多个设计模型文件;而Rose同时仅能打开一个设计文件,如果在设计时,需要参考其他的Rose设计模型,则需要反复关闭现有模型,打开参考模型,显得设计上比较欠考虑。这个问题上两者的差异恰似Eclipse和JBuilder的区别,Eclipse可以同时打开多个工程,而JBuilder只能同时打开一个工程。
3、设计界面PowerDesigner的设计界面可以左右上下移动,而Rose只能向右,向下移动,此外。PowerDesigner可以将模型元素放大很多倍,而Rose只能放大到正常倍数,不过Rose的Overview工具可以使用户快速定位到设计区中特定的区域,有点类似于游戏界面中常用的小地图,挺不错;
而在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也允许你忽略错误,继续进行逆向工程操作,这种宽松的限制带来了很大的便利。
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
忽略错误后,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没有提供代码导出的控制,也只能按其系统内部设置的方式导出代码。
生成测试数据
PowerDesigner可为数据表生成批量的测试数据,而且你还可以制定测试数据的生成规则。这个功能给初期项目的开发测试带来很大的便利。Rose中没有提供类似的功能。
1 {$ page title=易用性上的比较}
六、 易用性上的比较
6.1、元素显示属性调整Rose调整元素的显示属性(如类图的显示样式,方法入参是否显示等内容)的设置时,新设置仅对新创建的元素起作用,如需调整已有元素的显示属性,只得在设计Diagram中,逐一通过右键的方式一个个调整,做法有点刀耕火种的味道。 PowerDesigner在这点上显得很人性化,在调整完元素显示设置后,PowerDesigner弹出一个窗口,提供三个应用新设置的选择:
图 6元素显示设置调整后应用范围(PD)
其一,应用到所有元素;其二,应用到当前选择的元素,其三,应用到新创建的元素。此外,PowerDesigner对每一类元素(如类图,序列图,表图,引用等)的构成项(如表名,字段名,主键列,索引列等)均可以提供单独的显示属性设置,比Rose的控制要精细很多。
6.2、Undo操作Rose的Undo操作只能回退一步,有时甚至连一步都不能回退,假设你不小心删除了一个精心设计的模型元素,如果不及时Undo,就只得重头再来了。Rose不给设计者后悔的机会,这种一厢情愿的呆瓜式设计有时真让人捶胸跺足,所以你在删除或调整元素时,往往得战战兢兢,如履薄冰。相比之下,PowerDesigner则显得宽宏大量,允许你Undo几十步,自动地进行工作场景的回溯,所以在PowerDesigner下工作,会比较轻松自如,因为你不用为误操作而付出代价。
6.3、查询功能PowerDesigner的查询功能比较强大,可以按模型类型,元素类型限定查询范围;还可以使用复合条件进行精确搜索。
图 7高级搜索窗口(PD)
在元素查询结果列表中,可以选择定位到导航树,Diagram或者属性设计窗口,非常方便;而Rose只能按名称进行搜索,且从搜索结果列表只能定位到元素所在的Diagram中。
图 8 搜索窗口(Rose)
6.4、默认字体的问题PowerDesigner有一个比较让人讨厌的东西,就是字体大小的系统默认值是8号字,对于中文来说这个字号太小了,需要9号字才比较适合。所以在设计元素时,需要分别调整字体的大小,或者去改变每种元素的默认字体设置,相对来说比较麻烦。而Rose在这点中做得不错,系统默认的中文字体大小的默认值刚好适合。
6.5、元素布局调整PowerDesigner对Diagram中元素的布局提供了更多的支持,如元素对齐排列,元素的上下图层关系等,并提供了相应的快捷键,操作起来很顺手。而Rose仅支持自动布局(Auto Layout)功能,毫无二致地将选择的元素水平中心对齐,也没有图层前后移动的功能。
6.6、用鼠标进行元素选取的策略在Diagram中选择模型元素时,PowerDesigner采取“完全包含选取策略”,而Rose采取“部分包含选取策略”。在“完全包含选取策略”下,Diagram中的元素需要完全被鼠标选择的矩形区域包含后,才被选中;而在“部分包含选取策略”下,只要元素的部分区域被鼠标选择的矩形区域包含,就被选中。依个人的使用经验,觉得“完全包含选取策略”是更适合些,Microsoft的产品也采用这种策略。因为在“部分包含选取策略”下,只要一擦边,元素就被选择了,其结果往往是选择了很多不希望选取的东西,如连线,周边元素图形等。
6.7、代码预览功能 PowerDesigner可以在属性窗口中预览模型元素(如类、接口、表、视图等)对应的代码。在类图的属性窗口中,甚至还可以直接编辑预览的代码来进行模型元素的设计,就象Together一样。在设计诸如类,接口的模型元素的方法时,对于有着丰富编程经验的设计师来说,有时与其通过一个又一个弹出对话框,还不如直接通过编写代码来得方便,PowerDesigner的这种设计充分地考虑到了分析设计人员同时也是开发人员出身的特点,由此带来很大的便利,提高了效率。
图 9类设计属性窗口(PD)
而在Rose中,模型元素没有代码预览功能,更不能通过代码进行反向设计,只有通过导出代码的功能才能看到模型元素的代码。
6.8、同类型元素统一管理窗口PowerDesigner为每一类型元素(如字段,表,对象,索引,主键等)提供了集中管理窗口,可以在该列表中对同类元素进行统一管理。如在设计数据库模型时,希望将所有的索引存储到一个指定的表空间中,你可以打开索引的集中管理窗口:
图 10 索引属性列表框(PD)
在此管理窗口中调整所有索引的Options设置就可以了。如果没有这样的集中管理窗口,就需要在每个表的属性窗口中分别独自地设置表索引的Options属性,操作繁琐暂且不提,如何去保证每个索引都得到正确的设置就够让人伤脑筋了。而在Rose下,你就得逐门逐户查户口式的一个个去设置,没有捷径可走。PowerDesigner的这种分散设计,集中管理的设计思路体现对立统一的哲学思想的完好运用,因为事物有其独特性,也有其统一性,需要兼顾两者而不可偏废。
6.9、批量编辑操作
PowerDesigner的批量编辑操作能够大大提高的工作效率,这些批量编辑操作包括同时选中多个元素项目,同时编辑选中项的相同属性值,调整顺序等。
1
{$ page title=资源占用和运行稳定性}
图 11批量编辑操作(PD)
Rose不支持批量编辑和批量顺序调整等操作,需要逐一编辑:
图 12 不支持批量编辑(Rose)
? 元素快捷图示
PowerDesigner可以创建模型元素的快捷图示,它相当于是元素视图层上的多份拷贝,使同一个物理元素对应多个逻辑的图示。这对于大型复杂系统的分析设计特别有好处,因为一个模型元素会在多个地方被引用,这时你就可以通过Ctrl+C和Ctrl+K的方式来创建模型元素的快捷图示,在多个地方使用它,甚至在同一个Diagram中使一个元素在不同的地方出现多次,防止大距离的关系连线导致蜘蛛网式的设计图。
Rose也可以创建快捷图示,即通过Ctrl+C和Ctrl+V创建,但却不能复制一个现有的元素,Ctrl+C和Ctrl+V在PowerDesigner中是创建一个复制的元素。此外,在同一个Diagram中,同一元素的不同快捷图示,Rose是表现为相同的名字,而PowerDesigner则会添加数字后缀,以示区分。
?
属性窗口大小调整
Rose的编辑属性窗口没有放大,缩小按钮,需要手工拖动鼠标调整大小,一直不明白为什么如此简单的功能,Rose也要吝啬不提供。PowerDesinger的属性窗口则没有这个限制。
图 13属性窗口(Rose)
7资源占用和运行稳定性
? 资源占用
Rose在进行面向对象的设计时,由于要加载大量的类库,导致内存资源占用很大,往往达300M以上,PowerDesinger的资源的占用则小得多。
图 14 资源占用率
? 稳定性上
Rose常有窗口“抽筋”的反应(窗口变白,不接受任何响应),甚至毫无征兆地异常退出,容错性也不太好。如在逆向工程时,如果代码存在错误,甚至仅仅对一个存在错误的类进行逆向工程,窗口也会出现“抽筋”现象。
PowerDesigner显得灵活快捷,很少出现窗口“抽筋”和意外退出的现象。
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
精辟!
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
都没用过
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
刚拣到ITPUB送出的幸运红包。39PUB币!
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
GOOD
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
ROSE
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
只用过PD。
回复
使用道具
举报
千问
|
2006-12-2 12:25:43
|
显示全部楼层
没使用过,学习下
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
预产期少2天可以刨妇产吗
2
胃痛久了,不去理它,会不会以后得更严重的胃病
3
脚后跟疼经常走动不疼
4
舌头溃疡口臭
5
手足口引起脑炎
6
我的脸上有豆豆好多年了
7
有阴道炎症对胎儿有影响吗
8
慢性浅表性、萎缩性胃炎导致持续呕吐怎么办?
9
线索细胞阴道炎
10
头顶骨头塌陷是怎么回事
11
鼻息肉和鼻中隔外
12
半月板三度撕裂有什么治疗方法?
13
臀部和腿痛,内风湿因子2.7是否正常?
14
频发早搏,几乎三四次心跳又一次怎么办?
15
癫痫病小发作,经常性的抽搐要怎么治疗?
16
血小板计数偏高,平均血小板体积偏低是怎么回事?
17
黑蒙,全身乏力,面色白,心慌胸闷怎么办?
18
亚急性甲状腺炎有什么较好的治疗方法?
19
我准备要宝宝,但白带有点像豆腐渣
20
出生时哭和吃奶的时候下嘴唇就抖,现在已经满月了还是发抖,请问是什么原因?
21
月子里里得了湿疹,都不好,现在吃了半个月的中草药,比以前严重了,是不是都表出来了,还是药不对
22
静脉曲张有中医治疗方法吗?
23
眼睛痒还老流鼻涕
24
乳腺增生性腺病
25
这个能排除宫外孕的可能吗?
26
脸上的血青怎样好的快
27
眼睛埋线10天了还在肿该怎么办啊?
28
一年前整容开内眼角留下的疤该怎么消除啊?
29
我想用超声波做眼袋这个方法可以吗?
30
我小时候得的病会是甲状腺吗?
31
两腿膝盖像内侧对,像是X腿
32
长在脸上和背部的可以在内科看吗
33
两眼发黑,大脑失去知觉,问下是什么原因
34
手长红斑点后会脱皮?
35
子宫肌瘤一点多,还有一点囊肿
36
腰疼怎么办,男性
37
脑干出血能活几天
38
眼袋与黑眼圈能通过手术或其他方法治疗么?
39
尿酸高达446,关节游走性隐痛是怎么回事?
40
支原体宫颈炎怎么治?
41
怀孕后想做双眼皮手术有什么办法比较好?
42
咨询埋线双眼皮怎样才能快速消肿?
43
埋线后想拆掉再做双眼皮可以吗?
44
儿童睡觉不老实,翻来翻去是缺钙吗
45
禁欲多长时间精子是最优质的!
46
周六牙科有人值班吗?想要拨智齿
47
三个月小孩手指畸形在什么时间段手术最佳?
48
贫血能吃黑芝麻和黑木耳吗
49
一年四季脸都红,怎么回事啊?
50
眼睛爱流眼泪是怎么回事?
51
乳酸参考值0.5-1.6我1.9,注意什么.
52
早晨会感到腰部不适,活动一会就好了,是否需要治疗?
53
小腹闷胀,总打嗝
54
急性胰腺炎会影响消化功能吗?
55
哺乳期妇女能用痔疮膏么
56
老人长时间坐后脚肿是何因
57
是腸胃炎嗎
58
我头晕为什么?
59
宫颈炎严重吗?
60
胸壁侵袭性纤维瘤
61
月经已停3个月,咨询是否绝经
62
孕妇谷丙转氨酶高达293,总胆汁酸35。3怎么办
63
呢几天耳鸣,嗡嗡响,看过医生诊断说耳血管闭塞
64
烦,郁闷,暴躁
65
问问要答案
66
从4米高的货车上摔下来,摔到脑干了
67
前段时间红细胞高,现在白细胞又高是什么原因?
68
经常打嗝是有胃病的征兆吗?
69
感觉睾丸有点疼痛,触摸发现右侧睾丸有米粒大小的疙瘩
70
龟头外皮上长小水豆是怎么回事
71
产后发现子宫比正常的大怎么回事
72
感冒后引起耳朵堵,请问会是中耳炎吗?
73
如何判断宫颈粘连的可能性大不大
74
前壁增厚,光点粗糙怎么办
75
服用过安眠安定药物前后怀孕对宝宝有影响吗
76
明天体检怎么让月经推迟
77
如何判断是不是怀孕了
78
子宫外露了如何治疗
79
清宫手术后一直有淡黄色分泌物
80
我肺结核己治疗六个月、参加工作体捡能合格吗?谢谢。
81
20岁胸部平平,我刚发育时无知把它挤会原样有关吗
82
月经不调,怎样可以准确的知道排卵期?
83
我和男友都是做美发的要是要小孩要注意哪些?
84
三个月没来月经,肚子又大,验孕纸呈阴性,什么情况
85
确诊肝硬化,有便血,有多严重
86
膀胱瘙痒怎么治疗
87
卵巢癌可以治好吗?会不会有后遗症?
88
从小头上就有白斑,怎样才能消除?
89
一般情况下真菌感染多长时间能好呢?
90
脸上有很多黄色颗粒,怎样才能根除?
91
三天了老头晕....
92
怀孕期间敏性鼻炎犯了,怎样治疗?
93
白癜风会引起脱发吗,要注意什么?
94
怎样可以同时治疗荨麻疹和扁平疣?
95
怀孕后屁股长了很多红包,怎么办?
96
常年皮肤红肿,这是由什么引起的?
97
浅表性慢性胃炎长期病患应该怎么治疗?
98
请问我这种情况是不是尖锐湿疣?