2、工作空間PowerDesigner有工作空間的概念,一個(gè)工作空間下可以同時(shí)打開(kāi)多個(gè)設(shè)計(jì)模型文件;而Rose同時(shí)僅能打開(kāi)一個(gè)設(shè)計(jì)文件,如果在設(shè)計(jì)時(shí),需要參考其他的Rose設(shè)計(jì)模型,則需要反復(fù)關(guān)閉現(xiàn)有模型,打開(kāi)參考模型,顯得設(shè)計(jì)上比較欠考慮。這個(gè)問(wèn)題上兩者的差異恰似Eclipse和JBuilder的區(qū)別,Eclipse可以同時(shí)打開(kāi)多個(gè)工程,而JBuilder只能同時(shí)打開(kāi)一個(gè)工程。
3、設(shè)計(jì)界面PowerDesigner的設(shè)計(jì)界面可以左右上下移動(dòng),而Rose只能向右,向下移動(dòng),此外,PowerDesigner可以將模型元素放大很多倍,而Rose只能放大到正常倍數(shù),不過(guò)Rose的Overview工具可以使用戶快速定位到設(shè)計(jì)區(qū)中特定的區(qū)域,有點(diǎn)類(lèi)似于游戲界面中常用的小地圖,挺不錯(cuò);
而在PowerDesigner中,你可以通過(guò)F8快捷鍵查看Diagram的總覽圖,不過(guò)只得通過(guò)放大操作定位到定位區(qū)域。
4、對(duì)模型和語(yǔ)言的支持
◆對(duì)設(shè)計(jì)模型的支持力度和廣度
PowerDesigner對(duì)對(duì)象模型和數(shù)據(jù)庫(kù)建模兩者的支持力度已經(jīng)大抵相等,此外,還支持概念模型、業(yè)務(wù)模型、需求模型、XML模型、信息流模型、自由模型的分析設(shè)計(jì)。不過(guò)對(duì)后面這幾個(gè)模型的支持比較初級(jí),而且在實(shí)際的應(yīng)用中,這些模型用得也比較少,PowerDesigner的突出亮點(diǎn)還是在數(shù)據(jù)庫(kù)建模和對(duì)象模型的設(shè)計(jì)上。
對(duì)于數(shù)據(jù)庫(kù)模型,PowerDesigner支持20余種數(shù)據(jù)庫(kù),對(duì)于同一數(shù)據(jù)庫(kù)的不同版本還提供單獨(dú)的支持,以便在設(shè)計(jì)數(shù)據(jù)庫(kù)模型時(shí),提供數(shù)據(jù)庫(kù)和版本相關(guān)的設(shè)計(jì)。對(duì)于面向?qū)ο竽P停琍owerDesigner支持11種主流語(yǔ)言,為對(duì)Java 5.0提供單獨(dú)的支持。
Rose基本上可以說(shuō)是一個(gè)對(duì)象模型設(shè)計(jì)工具,對(duì)數(shù)據(jù)庫(kù)模型的支持相對(duì)粗糙,內(nèi)嵌的只支持Oracle 8數(shù)據(jù)庫(kù),對(duì)其他數(shù)據(jù)庫(kù)設(shè)計(jì)的支持需要通過(guò)安裝插件的方式獲得,且對(duì)數(shù)據(jù)庫(kù)物理存儲(chǔ)參數(shù)等較細(xì)粒度的內(nèi)容支持得比較粗糙。Rose的對(duì)象模型主要支持Java、VC和VB三種語(yǔ)言。
◆對(duì)Java語(yǔ)言的支持
Rose對(duì)Java語(yǔ)言的支持更好,不但為不同版本的JDK提供了支持(不過(guò)Rose 2003還不支持JDK 5.0),還為Java具體產(chǎn)品及設(shè)計(jì)模式(如EJB、Corba、Servlet,GOF設(shè)計(jì)模式等)提供了內(nèi)嵌性的支持,這些支持直接反應(yīng)在Rose的主菜單上。正因?yàn)槿绱耍筊ose背上的沉重的歷史負(fù)擔(dān),如EJB和Corba這種語(yǔ)言級(jí)的東西是易變且不斷更新的,如何在這些具體產(chǎn)品的地位和影響已經(jīng)降低時(shí),對(duì)其作出割舍而又保證版本的兼容性,是擺在設(shè)計(jì)者面前的難題。
PowerDesigner僅提供語(yǔ)言級(jí)對(duì)象設(shè)計(jì)的支持,不涉及語(yǔ)言內(nèi)部的具體產(chǎn)品。其次因?yàn)樗脑O(shè)計(jì)工作區(qū)是和具體的模型類(lèi)型及語(yǔ)言細(xì)分類(lèi)相關(guān)的,而非在主菜單中直接提供支持,所以PowerDesigner在升級(jí)時(shí)顯得更加從容一些。
這也是為什么PowerDesigner能以每年一個(gè)版本的速度升級(jí),而Rose在2003版本后,新版本還遲遲投入市場(chǎng)的內(nèi)在原因,否則以IBM的財(cái)力,研發(fā)能力不至于對(duì)市場(chǎng)反應(yīng)如果緩慢。
5、輸入和輸出功能的比較
◆反向工程
從將程序代碼轉(zhuǎn)換為設(shè)計(jì)模型的逆向工程功能上看,Rose更象一個(gè)IDE,它會(huì)對(duì)需要逆向工程操作的程序代碼進(jìn)行深度語(yǔ)義檢查,如果存在諸如程序代碼引用了類(lèi)庫(kù)之外的類(lèi),反向工程將失敗,而且在報(bào)告失敗之前,窗口會(huì)陷入長(zhǎng)時(shí)間無(wú)響應(yīng)狀態(tài)。
PowerDesigner僅對(duì)需逆向工程的程序代碼進(jìn)行淺度語(yǔ)法檢查,這種淺度語(yǔ)法檢查不涉及包,類(lèi)之間的關(guān)聯(lián),僅對(duì)諸如類(lèi)名是否和類(lèi)文件名匹配,是否少了“}” 等語(yǔ)法性的內(nèi)容進(jìn)行檢查。即便存在錯(cuò)誤,PowerDesigner也允許你忽略錯(cuò)誤,繼續(xù)進(jìn)行逆向工程操作,這種寬松的限制帶來(lái)了很大的便利。
忽略錯(cuò)誤后,PowerDesigner會(huì)盡量修補(bǔ)錯(cuò)誤,例如代碼中少了對(duì)應(yīng)的“}”,它將會(huì)補(bǔ)上,類(lèi)名和文件名不一致,將忽略類(lèi)文件名保持類(lèi)名不變。
Rose一直宣揚(yáng)的理念是IDE和設(shè)計(jì)工程進(jìn)行雙向互通:在Rose中完成模型設(shè)計(jì)后導(dǎo)出為IDE所用的代碼,IDE編碼調(diào)整后又逆向工程到Rose。理念很美,深具吸引力,但是在實(shí)現(xiàn)中,往往很少有開(kāi)發(fā)團(tuán)隊(duì)會(huì)這樣做。一般CASE工具只是在分析設(shè)計(jì)階段使用,甚至很大比例的設(shè)計(jì)師僅把它當(dāng)成畫(huà)圖的工具。