- UML基礎與Rose建模實用教程(第三版)
- 謝星星 周新國編著
- 2517字
- 2020-11-23 15:05:14
3.2 Rational Rose對UML的支持
像UML這樣一種既復雜又覆蓋面廣泛的建模語言,它的使用需要良好的建模工具來支持,如果沒有很好的工具進行支持,那么大量的UML圖的維護、同步,以及提供一致性等工作幾乎是不可能實現的。Rational Rose建模工具能夠為UML提供很好的支持,下面從以下六個方面來進行說明:
(1)Rational Rose為UML提供了基本的繪圖功能。為UML提供基本的繪圖功能是Rational Rose作為一個建模語言工具的基礎。Rational Rose提供了眾多的繪圖元素,形象化的繪圖支持使得繪制UML圖形變得輕松有趣。Rational Rose工具不僅對UML的各種圖中元素的選擇、放置、連接以及定義提供了卓越的機制,還提供了用以支持和輔助建模人員繪制正確圖的機制。當圖中的一個元素用法不當或一個特定操作與其他的操作不一致時,Rational Rose就會向用戶發(fā)出一條警告信息。例如,在用例視圖中,如果創(chuàng)建了一個名稱為“教師”的類,那么再到邏輯視圖中創(chuàng)建一個“教師”的類時就會出現一條警告信息為“Class‘教師’now exists in multiple name spaces”。
Rational Rose同時也提供了對UML的各種圖的布局設計的支持,包括允許建模人員能夠重新排列各種元素,并且自動重新排列那些表示消息的直線,以便這些直線互不交錯。
(2)Rational Rose為模型元素提供了存儲庫。Rational Rose的支持工具維護著一個模型庫,這個模型庫相當于一個數據庫,該數據庫中包含模型中使用的各種元素的所有信息。這個模型庫包含了整個模型的基本信息,用戶可以通過各種圖來查看這些信息,如圖3-1所示。

圖3-1 Rational通用模型庫示例
Rational Rose通用模型庫提供了一個包含了來自于所有圖(這些圖是為了確保模型的一致性)的全部信息的模型庫,并且該模型庫使得通用工具能夠進行文檔化和重用。
借助于模型庫提供的支持,Rational Rose建模工具可以執(zhí)行以下幾項任務:
- 非一致性檢查。如果某個元素在一個圖中的用法與其他圖中的不一致,那么Rational Rose就會提出警告或禁止這種行為。
- 審查功能。利用Rational Rose模型庫中的信息,我們可以通過Rational Rose提供的相關功能對模型進行審查,指出那些還未明確定義的部分,顯示出那些可能的錯誤或不合適的解決方案。我們可以通過選擇“Tools”(工具)下的“Check Model”(審查模型)選項來進行模型信息的審查。
- 報告功能。Rational Rose可以通過相關功能產生關于模型元素或圖的相關報告,例如,我們可以選擇“Report”(報告)下的“Show Usage”(顯示使用情況)選項來報告在圖中的某個模型元素的使用情況,假設選擇的是一個類,名稱為“教師”,如果這個類沒有被使用到,就會出現這樣的提示信息:“No Diagrams where class教師is used”。
- 重用建模元素和圖功能。對于已創(chuàng)建的模型,Rational Rose支持重復使用這個模型中的模型元素和圖,這樣,在一個項目創(chuàng)建的建模方案或部分方案可以很容易地重用于另一個項目的建模方案。在Rational Rose中,提供了單元控制(Unit Control)功能,通過該功能可以在多人協作分析設計時,每個人可以通過它來實現不同的包。
(3)Rational Rose為各種視圖和圖提供了導航功能。為了給用戶帶來方便,Rational Rose工具提供了導航功能,這種導航功能不僅適用于各種模型的系統,也便于用戶的瀏覽。在Rational Rose左側的樹型瀏覽器中,用戶可以方便地瀏覽各個模型元素或圖。在Rational Rose中,用戶不僅可以方便地瀏覽不同的圖,并且可以搜索某個模型元素。例如,假設一個類的名稱為“教師”,位于一個用例圖中,另外在一個協作圖中也存在該類的實例化對象,可以通過選擇“報告”|“顯示實例化信息”(Report | Show Instances)來查看“教師”類實例化的信息。如圖3-2所示。
在Rational Rose的每一個模型元素中,都具有關于這個模型元素的一些超鏈接信息,這些鏈接信息在圖上通常是看不到的,只能通過UML工具來訪問它們。我們可以通過Rational Rose提供的一些功能來訪問這些信息,例如當用戶選擇某個模型元素并用鼠標右鍵單擊該元素時,在該模型元素的右側會出現一個菜單,在這個菜單中列舉出了一些常用操作,同時為用戶提供了相關功能的導航操作,例如查看該元素的相關規(guī)格說明,或者是關于類的一些屬性和操作信息。另外,Rational Rose還允許用戶對UML圖中的某些內容部分進行展開和收合操作。例如Rational Rose允許用戶展開包來查看整個包的內容,之后將展開的包收合起來,以便查看它周圍的其他包。

圖3-2 顯示“教師”類的實例化信息
在Rational Rose中還提供了一些功能來處理復雜的圖,如“ref”“par”等,通過這些功能可以分離出或突出顯示用戶對該圖感興趣的部分,并且還能夠針對圖中的某些部分進行細化。
(4)Rational Rose提供了代碼生成功能。Rational Rose的代碼生成功能可以針對不同類型的目標語言生成相應的代碼,這些目標語言包括C++、Ada、Java、CORBA、Oracle、Visual Basic等。這種由Rational Rose工具生成的代碼通常是一些靜態(tài)信息,例如類的有關信息,包括類的屬性和操作,但是類的操作通常只有方法(Method)的聲明信息,而方法主體內通常是空白的并不包含實際的代碼,需要由編程人員自己來填補。
現在假設一種代碼生成的情況,如果已經從Rational Rose的模型中生成了相應的代碼,并開始編寫各種方法主體的代碼,但是接著又對這些模型進行了修改,這時會發(fā)生什么事情呢?是不是根據更新后的模型再次生成代碼框架時,手工編寫的那些代碼就會丟失呢?事實上,情況并非如此。那些由Rational Rose工具生成的代碼包含了標志,這些標志顯示了哪段代碼是由模型生成的,而哪段代碼則是由編程人員手工編寫的。當從模型重新生成代碼時,代碼生成器不會涉及手工編寫的代碼部分,因此這部分代碼也就不會丟失。針對如何生成代碼,在本章中后面將進行詳細的講解。
(5)Rational Rose提供了逆向工程功能。逆向工程與代碼生成功能正好相反。利用逆向工程功能,Rational Rose可以通過讀取用戶編寫的相關代碼,在進行分析以后,生成并顯示出與用戶代碼結構相關的UML圖。一般來說,根據代碼的信息只能創(chuàng)建出靜態(tài)結構圖,如類圖,然后依據代碼中的信息列舉出類的名稱、類的屬性和相關操作。但是,從代碼中無法提取那些詳細的動態(tài)信息。
(6)Rational Rose提供了模型互換功能。當利用不同的建模工具進行建模時,常常會遇到這樣一種情況:在一種建模工具中創(chuàng)建了模型并將其輸出后,接著想在另外一種建模工具中將其導入,由于各種建模工具之間提供了不同的保存格式,這就造成了導入往往是不可能實現的。為了實現這種功能,一個必要的條件就是在兩種不同的工具之間采用一種用于存儲和共享模型的標準格式。標準的XML元數據交換(XML Metadata Interchange,XMI)模式就為UML提供了這種用于存儲和共享模型的標準。最新版本的Rational XDE提供了XMI的內在支持,關于XMI的更多信息,可以查閱OMG的XMI相關規(guī)范。
- Puppet 4 Essentials(Second Edition)
- 從零構建知識圖譜:技術、方法與案例
- C和C++安全編碼(原書第2版)
- 網店設計看這本就夠了
- Getting Started with Hazelcast(Second Edition)
- Java EE核心技術與應用
- Java網絡編程實戰(zhàn)
- Python Data Science Cookbook
- Learning Material Design
- SQL Server 2008 R2數據庫技術及應用(第3版)
- SQL Server 2008中文版項目教程(第3版)
- Visual Basic程序設計全程指南
- OpenCV Android Programming By Example
- R語言數據挖掘:實用項目解析
- 人人都能開發(fā)RPA機器人:UiPath從入門到實戰(zhàn)