Rose與PowerDesigner:兩款UML建模工具的對比

聲明

本文轉載自:Rose與PowerDesigner:兩款UML建模工具的對比

正文

本文和你們重點討論一下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

相關文章
相關標籤/搜索