工具簡介
現在比較少的公司在使用已Rose。IBM推出了Rational Software Architect來替代Rational Rose。
工具內容
Rational Rose包括了統一建模語言(UML),OOSE,以及OMT。其中統一建模語言(UML)由Rational公司3位世界級面向對象技術專家Grady Booch、Ivar Jacobson、和Jim Rumbaugh通過對早期面向對象研究和設計方法的進一步擴展而得來的,它為可視化建模軟體奠定了堅實的理論基礎。同時這樣的淵源也使Rational Rose力挫當前市場上很多基於UML可視化建模的工具,例如Microsoft的Visio2002、Oracle的Designer2000,還有PlayCase 、CA BPWin、CA ERWin、Sybase PowerDesigner等等。
Rational Rose 是一個完全的、具有能滿足所有建模環境(Web開發,數據建模,Visual Studio和 C++ )靈活性需求的一套解決方案。Rose 允許開發人員,項目經理,系統工程師和分析人員在軟體開發周期內在將需求和系統的體系架構轉換成代碼,消除浪費的消耗,對需求和系統的體系架構進行可視化,理解和精練。通過在軟體開發周期內使用同一種建模工具可以確保更快更好的創建滿足客戶需求的可擴展的、靈活的並且可靠的套用系統。
特徵
Rational Rose的兩個受歡迎的特徵是它的提供反覆式發展和來回旅程工程的能力。Rational Rose允許設計師利用反覆發展(有時也叫進化式發展),因為在各個進程中新的套用能夠被創建,通過把一個反覆的輸出變成下一個反覆的輸入。(這和瀑布式發展形成對比,在瀑布式發展中,在一個用戶開始嘗試之前整個工程被從頭到尾的完成。)然後,當開發者開始理解組件之間是如何相互作用和在設計中進行調整時,Rational Rose能夠通過回溯和更新模型的其餘部分來保證代碼的一致性,從而展現出被稱為"來回旅程工程"的能力,Rational Rose是可擴展的,可以使用可下載附加項和第三方套用軟體,它支持COM/DCOM (ActiveX),JavaBeans 和 Corba組件標準.
用途
Rational Rose是基於UML的可視化建模工具。UML全稱叫Unified Modeling Language,顧名思義,UML是一種語言,一種表示法,一種交流溝通的工具,特別適用於軟體密集型系統的表示。
UML的統一性(Unified)表現為以下幾點:
(1)UML是人類思想和計算機代碼的一個連線橋樑
我們知道,計算機能直接識別的語言就是二進制的CPU指令,早期工程師們都是直接輸入這些指令讓計算機直接執行的,效率不高;
後來就出現了更好理解的彙編語言,之後就出現了各種各樣更加容易理解和編寫,更加接近人類語言的計算機高級語言、VB、DELPHI、JAVA等。
(2)UML所定義的概念和符號可用於軟體開發的分析、設計和實現的全過程,軟體開發人員不必在開發過程的不同階段進行概念和符號的轉換。
(3) UML所用的語言元素基本都是圖形化的,便於理解和溝通,不但開發人員之間可以用來交流,客戶和開發人員之間也可以用它作為交流的工具。
目前版本的Rational Rose可以用來做以下一些工作:
1、對業務進行建模(工作流);
2、建立對象模型(表達信息系統內有哪些對象,它們之間是如何協作完成系統功能的);
3、對資料庫進行建模,並可以在對象模型和數據模型之間進行正、逆向工程,相互同步;
4、建立構件模型(表達信息系統的物理組成,如有什麼檔案、進程、執行緒、分布如何等等);
5、生成目標語言的框架代碼,如VB、JAVA、DELPHI等。
核心uml
(1) uml的發展歷程
◇公認的面向對象建模語言出現於70年代中期。
◇多種建模語言的出現:booch 1993 、oose 、omt _2 、ooa/ood。
◇uml 建模語言的形成,成為工業界的標準(1996年)。
其發展歷程可用下圖形象表示:
(2)uml(unified modeling language) 的具體內容
客觀世界是一個複雜的巨系統,需要從不同的角度來考察,才能真正理解這個系統。為了能支持從不同角度來考察系統,標準建模語言uml定義了下列5類、共9種模型圖,下面圖表作了基本的描述:
類型 | 圖名 | 描述 |
用例圖 | 用例圖 | 從用戶角度描述系統的功能,並指出各功能的操作者。 |
靜態圖 | 類圖 | 用於定義系統的類,包括描述類之間的聯繫(如關聯、依賴、聚合等)以及類的內部結構,即類的屬性和操作。因此類圖是描述系統中類的靜態結構,即它描述的是一種靜態關係,在系統的整個生命周期都是有效的。 |
包圖 | 包或類組成,主要表示包與包、或包與類之間的關係。包圖用於描述系統的分層結構。 | |
行為圖 | 狀態圖 | 描述一類對象的所有可能狀態以及事件發生時狀態的轉移條件。通常狀態圖是對類圖的補充。 |
活動圖 | 描述為滿足用例要求所要進行的活動以及活動間的約束關係。使用活動圖可以很方便地表示並行活動。 | |
互動圖 | 序列圖 | 用以顯示對象之間的動態合作關係。它強調對象之間訊息傳送的順序,同時也顯示對象之間的互動過程。 |
協作圖 | 同序列圖是等價的,但著重描述對象間的協作關係。 | |
實現圖 | 構件圖 | 描述代碼部件的物理結構及各部件之間的依賴關係。一個部件可能是一個資原始碼部件、一個二進制部件或一個可執行部件。 它包含邏輯類或實現類的有關信息。部件圖有助於分析和理解部件之間的相互影響程度。 |
配置圖 | 定義系統中軟硬體的物理體系結構。它可以顯示實際的計算機和設備(用節點表示)以及它們之間的連線關係,也可顯示連線的類型及部件之間的依賴性。在節??行軟體單元的對應關係。 |
1、 用例圖
以訂單管理系統的用例模型部分為例進行說明。
由於他們具有略微不同的特徵,因此將普通客戶從 Internet 客戶中分離開來是非常有用的。然而,因為 Internet 客戶的確顯示了一個客戶具有的所有特徵,所以您可以說 Internet 客戶是客戶的一個特例,並且能夠通過主角泛化關係來指示。
在本圖中,具體用例分別是“電話訂購”(由客戶主角發出)和“Internet 訂購”(由 Internet 客戶發出)。這些用例都是更普通的“訂購”用例的變形。在本示例中,“訂購”用例是一個抽象用例。“請求目錄”用例代表一個可選行為段,它不是“訂購”用例主要目標的組成部分。它已經被分離出來,形成了一個抽象用例,用於簡化“訂購”用例。“提供客戶數據”用例是一個已分離出的行為段。它之所以被分離出來,是因為它是一個獨立功能,只有它的結果才能影響“訂購”用例。“供給客戶數據”用例還可以在其他用例中復用。“請求目錄”用例和“供給客戶數據”用例在本示例中都屬於抽象用例。
包含用例的行為插入到基本用例中的一個位置。
當執行基本用例的用例實例達到基本用例中定義擴展點的位置時,將對相應擴展關係的條件進行評估。如果條件成立,或者如果沒有條件,用例實例將遵循擴展用例(或者擴展用例中與擴展點相對應的插入段)。如果擴展關係的條件不成立,就不執行擴展。
擴展表示一種可選行為
用例實例
2、 類圖
3、 包圖
4、 序列圖
在序列圖中可以有對象和
主角實例,以及說明它們如何互動的訊息。序列圖描述了在參與互動的對象中所發生的事件(從激活的角度來說明),以及這些對象如何通過相互傳送訊息進行通信。您可以為用例事件流的各種不同形式製作序列圖。 5、 協作圖
協作圖中可以有對象和主角實例,以及描述它們之間關係和互動的連線和訊息。通過說明對象間如何通過互相傳送訊息來實現通信,協作圖描述了參與對象中發生的情況。您可以為用例事件流的每一個變化形式製作一個協作圖。
6、 狀態圖狀態機用於對模型元素的動態行為進行建模,更具體地說,就是對系統行為中受事件驅動的方面進行建模。狀態機專門用於定義依賴於狀態的行為(即根據模型元素所處的狀態而有所變化的行為)。其行為不會隨著其元素狀態發生變化的模型元素不需要用狀態機來描述其行為(這些元素通常是主要負載管理數據的被動類)。
狀態機由狀態組成,各狀態由轉移連結在一起。狀態是對象執行某項活動或等待某個事件時的條件。轉移是兩個狀態之間的關係,它由某個事件觸發,然後執行特定的操作或評估並導致特定的結束狀態。圖 1 描繪了狀態機的各種元素。
7、 活動圖
一個活動圖可能包括以下元素:
· 活動狀態表示在工作流程中執行某個活動或步驟。
· 轉移表示各種活動狀態的先後順序。這種轉移可稱為完成轉移。它不同於一般的轉移,因為它不需要明顯的觸發器事件,而是通過完成活動(用活動狀態表示)來觸發。
· 決策,為其定義了一組警戒條件。這些警戒條件決定在活動完成後將執行一組備選轉移中的哪一個轉移。您也可以使用判定圖示來表示執行緒重新合併的位置。決策和警戒條件使您能夠顯示業務用例的工作流程中的備選執行緒。
· 同步示意條用於顯示平行分支流。同步示意條使您能夠顯示業務用例的工作流程中的並行執行緒。
8、 構件圖
由下圖可以看出系統的原始碼和運行組件。
利用該圖,負責編譯和部署系統的人員知道有哪些代碼庫,編譯代碼時生成哪些執行檔案;開發人員知道有哪些代碼庫,相互間有什麼關係;組件的依賴性使編譯人員知道正確的編譯順序
9、 部署圖部署圖考慮應用程式的實際部署,包括網路部署和組件在網??含處理器、設備、進程和處理器與設備之間的連線。
部署圖顯示網路上的所有節點、節點間的連線和每個節點上運行的進程。
資料庫建模
Rose提供了一個叫“Data Modeler”的工具,利用它可用將對象模型轉換成數據模型,也可以將現有的數據模型轉換成對象模型,從而實現兩者之間的同步。
具體來說,Data Modeler可以:
1、將對象模型轉換成數據模型,即將類映射到資料庫的表,構成傳統的ER圖;(Data Modeler | Transform to Data Model)
2、將數據模型轉換成對象模型;(Data Modeler | Transform to Object Model)
3、利用數據模型生成資料庫DDL,也可以直接連線到資料庫里,對資料庫產生結果;(Data Modeler | Forward Engineer)
4、從現有資料庫或DDL檔案里生成數據模型;(Data Modeler | Reverse Engineer)
5、將數據模型同DDL檔案或現有資料庫進行比較;(Data Modeler | Compare to。。。)
注意:一個類能被轉化為一個資料庫表,它的persistence屬性必須是transient
建模特點
1.保證模型和代碼高度一致。
2.支持多種語言。
3.為團隊開發提供強有力的支持。
4.支持模型的Internet發布。
5.生成使用簡單且定製靈活的文檔。
6.支持關係型資料庫的建模。
使用技巧
1、 units control單元控制用來把一個包,在多人協作分析設計的時候特別有用。例如當一個包需要另外一個同事a進行完善的時候,可以把單元處於控制中,保存到另外一個單獨的檔案里,然後同事a完善這個包,同時自己也可以進行其他包的設計工作,等完善完畢後,把檔案重新load進去就可以繼續使用了,這樣就不會影響到其他人的同步工作了。
選單含義:
load:從一個檔案里導入一個單元包,常用來作為同步刷新
save:保存對單元包所做的更改
save as:把單元包保存到另外的一個路徑
unloa
d:把單元包卸下來,在rose里就看不到單元包裡面的內容了,用load可以把單元包重新導進來
write protection:防寫,在rose里就不能對這個單元包進行更改了2、import,export
導進,導出package,對利用現成的建模成果很有用,例如我們可以導進一個現成的java模型,這樣就可以直接利用java標準的對象了。
3、add-in manager
很多外部的產品都對rose發布了add-in支持,以對rose的功能做進一步的擴展,如java、oracle、delphi,有了這些add-in,rose就可以做更多的深層次的工作了。例
如裝了delphi link之後,rose就可以直接可以生成delphi的框架代碼,也可以從delphi代碼轉化成rose模型,並進行兩者的同步。 選中framework wizard之後,執行file | new命令時,會出現現成的框架模型,供你選擇,例如你想用delphi開發系統,就可以選擇“delphi framework”,它已經內置了delphi大部分標準類的支持,方便你的分析和設計工作。
4、 workspace
workspace是用來記憶當前你的工作環境,即你所打開的單元包和圖,到下次打開workspace的時候,rose會根據workspa
ce的信息,還原到上次的工作界面。
5、 常用快捷鍵
f1:任何時候都可以按f1獲得相關幫助,把滑鼠放在某條選單上按f1可以獲得這條選單的相關幫助。
f2:刷新browser和diagram
f3:兩幅圖進行切換
f5:順序圖和協作圖等價切換
6、autosize all
使圖的內容顯示得更加整齊,當發現圖有些內容顯示得不全時,使用這個選單很有用。
7、options的設定
文檔造型
XML DTD造型
很多開發人員都熟悉面向對象的分析和設計工具。這些工具常常都被用來輔助數據和組件模型的開發,而這些模型要被用來搭建大型的軟體系統。對於使用Rational Rose開發工具的開發人員來說,他們會驚奇地發現,你可以以給自己組件和模組同樣的造型方式來給XML文檔造型。
基本概念
要在Rational Rose里開始創建XML模型,你就需要了解一些基本的概念。首先,你文檔里的每個節點都會成為一個類。你可以使用的XML類一共有四種類型:元素、實體、組和符號。在本文里,我們只會用到元素和組。
元素是具有某些特性的基本類,它們由你在Rational Rose所指定的類型來定義。對於元素而言,你可以選擇ANY(任意)、Content Model(內容模型)、PCDATA(PC數據)或者EMPTY(空)。EMPTY元素顯然是空的,而PCDATA類型是一個字元數據容器。對於模式複雜的類型,你要使用內容模型。
內容模型和組
對於包含有字元數據的簡單元素,你要使用PCDATA類型。但是,你的很多元素都會包含一個或者多個子元素。對於這樣的複雜元素,你必須使用內容模型類型。
為了向Rational Rose指明元素之間的關係,你還要使用組類型。從本質上講,每個內容模型元素都會擁有一個相關聯的組元素。該組元素應該被作為Rational Rose里的一個嵌套類被創建。內容模型元素的每個子元素都會通過將其與內容模型元素的組元素相關聯而被定義。
快速演練
現在讓我們來演練一個小例子。我們就從在Rational Rose創建一個新的Rational統一進程(Rational Unified Process,RUP)項目開始吧。你應該會在邏輯視圖(Logical View)里看到歡迎類圖表(Welcome Class Diagram)。你可以在這個圖表內刪除節點;不過這沒有必要。
點擊工具條上的類(Class)圖示,再點擊圖表創建一個新的類。將這類命名為Order。雙擊Order類,並選擇DTDElement框。在類規格(Class Specification)對話框裡選擇內容模型類型。
在樹型視圖里右擊Order類,並選擇新建|嵌套類(New | Nested Class)將這個新的類命名為Order_grp。點擊並將Order_grp類拖放到類圖表里。雙擊Order_grp類並選擇DTDGroup框。放在一組的類應該是Sequence(順序),其出現次數應該是One(一次)。然後,展開樹型視圖裡的關聯(Associations)項目,並將Order_grp關聯拖放到類圖表里。
分別創建兩個新的類——Item和Customer。這兩個類都應該是被定義為內容模型類型的DTDElement。創建Order_grp組元素同Item類的新關聯,並對Customer類進行同樣的操作。
雙擊Item類的新關聯,並將它命名為Item。然後點擊角色A的細節(Role A Detail)選項卡,並在多重下拉框裡選擇1.n。這一步會指明Order元素會有一個或者多個Item元素作為其子元素。
雙擊Customer類的關聯,並將它命名為Customer。點擊角色A的細節選項卡,在多重下拉框裡選擇1。這一步會指明Order元素只會有一個Customer元素作為其子元素。
如果有必要的話,你可以重複這一過程,以完成你的XML DTD。對於每個複雜的元素,只用簡單地指定內容模型類型,然後創建同DTDGroup框相關聯的嵌套類就行了。你的子元素然後就應該同組元素關聯在一起了。當你完成了自己的模型之後,你就可以右擊這些類,並選擇XML_DTD|生成DTD(XML_DTD | Generate DTD)來生成DTD的信息。你還可以從這個選單里瀏覽DTD的原始碼。
逆向工程
你也可以通過選擇工具|XML_DTD|逆向工程XML_DTD(Tools | XML_DTD | Reverse Engineer XML_DTD)將你的DTD逆向轉換進Rational Rose里。在這個過程完成之後,你的Rational Rose模型會包含有用於你DTD類的新工具包。
安裝準備
1.安裝Rose需要Windows 2000/Windows XP及其以上版本。如果是Windows 2000則要確認已經安裝了Sever Pack 2.
2.安裝Rose,必須先得到Rose安裝包。建議購買Rational公司的正版軟體,Rational 現在已被IBM收購,讀者可以從網上獲取相關信息。
建模工具比較
ROSE是直接從UML發展而誕生的設計工具,它的出現就是為了對UML建模的支持,ROSE一開始沒有對資料庫端建模的支持,但是在現在的版本中已經加入資料庫建模的功能。ROSE主要是在開發過程中的各種語義、模組、對象以及流程,狀態等描述比較好,主要體現在能夠從各個方面和角度來分析和設計,使軟體的開發藍圖更清晰,內部結構更加明朗(但是它的結構僅僅對那些對掌握UML的開發人員,也就是說對客戶了解系統的功能和流程等並不一定很有效),對系統的代碼框架生成有很好的支持。但對資料庫的開發管理和資料庫端的疊代不是很好。
PowerDesigner原來是對資料庫建模而發展起來的一種資料庫建模工具。直到7.0版才開始對面向對象的開發的支持,後來又引入了對UML的支持。但是由於PowerDesigner側重不一樣,所以它對資料庫建模的支持很好,支持了能夠看到的90%左右的資料庫,對UML的建模使用到的各種圖的支持比較滯後。但是在最近得到加強。所以使用它來進行UML開發的並不多,很多人都是用它來作為資料庫的建模。如果使用UML分析,它的優點是生成代碼時對Sybase的產品PowerBuilder的支持很好(其它UML建模工具則沒有或者需要一定的外掛程式),其他面向對象語言如 C++,Java,VB,C#等支持也不錯。但是它好像繼承了Sybase公司的一貫傳統,對中國的市場不是很看好,所以對中文的支持總是有這樣或那樣的問題。
VISIO原來僅僅是一種畫圖工具,能夠用來描述各種圖形(從電路圖到房屋結構圖),也是到VISIO2000才開始引進軟體分析設計功能到代碼生成的全部功能,它可以說是目前最能夠用圖形方式來表達各種商業圖形用途的工具(對軟體開發中的UML支持僅僅是其中很少的一部分)。它跟微軟的office產品的能夠很好兼容。能夠把圖形直接複製或者內嵌到WORD的文檔中。但是對於代碼的生成更多是支持微軟的產品如VB,VC++,C#,MS SQL Server 等(這也是微軟的傳統),所以它可以說用於圖形語義的描述比較方便,但是用於軟體開發過程的疊代開發則有點牽強。
套用最廣的有兩種1. Rational Rose,它是ibm的。2.Microsoft的 Microsoft Office Visio? 2003 3.Enterprise Architect。還有其他工具如PowerDesigner等。
1.Rational Rose是一種基於UML的建模工具。在面向對象應用程式開發領域,Rational Rose是影響其發展的一個重要因素。Rational Rose自推出以來就受到了業界的矚目,並一直引領著可視化建模工具的發展。越來越多的軟體公司和開發團隊開始或者已經採用Rational Rose,用於大型項目開發的分析、建模與設計等方面。
從使用的角度分析,Rational Rose易於使用,支持使用多種構件和多種語言的複雜系統建模;利用雙向工程技術可以實現疊代式開發;團隊管理特性支持大型、複雜的項目和大型而且通常隊員分散在各個不同地方的開發團隊。同時,Rational Rose與微軟Visual Studio系列工具中GUI的完美結合所帶來的方便性,使得它成為絕大多數開發人員首選建模工具;Rose還是市場上第一個提供對基於UML的數據建模和Web建模支持的工具。此外,Rose還為其他一些領域提供支持,如用戶定製和產品性能改進。