Rational Rose建模初步

建模對每一位軟件開發人員都不陌生。Rational ROSE建模工具的出現,使程序員從手工建模的工作中解脫出來,並使大型開發項目的分析,建模、設計更加規範化。我們曾經通過《ROSE 技術白皮書》對Rose的可視化建模有了瞭解,從今天開始,我們將循序漸進地指導您如何應用Roe工具完成建模。同時,我們還將提供一個使用Rational Rose UML CASE 工具創建完整的UML模型的範例。對那些想高效地使用和評估Rational Rose工具(而不是其他UML CASE 工具)的新用戶,我們建議做下面的工作:

首先:創建使用Rational Rose CASE 工具(www.rational.com)的圖表和報告,如下所示。

第二:使用Rational Rose——UML CASE 工具在你的問題領域創建一個類似的實例,如一個訂單系統、產品系統,客戶系統,等等。

第三(如果需要),使用其他 UML CASE 工具創建這些實例,以充分比較不同工具的性能。

我們的目標是創建一個系統的正確、可靠、可理解、可擴展、可複用、完整的UML模型。該模型應該混合了可複用的類、組件和模式。這裏提供一個經簡化的銀行存款模型。

 

從Rational Rose開始

啓動 Rose

選擇菜單File-New,選擇File-SaveAs,將文件另存爲BusinessModel.然後選擇File-New-SaveAs,另存爲Requirements-AnalysisModel;

注意,當Requirements-Analysis(需求分析)完成後要另存爲Design-ImplementationModel(設計-實現模型);

選擇View(視圖)選中Status Bar,Browser, Documentation, As Unified;

選擇Tools-Options-Diagram 選中Stereotype Display(構造型顯示)標籤並選中Show/Display 的所有項目(Three-Tier Diagram除外);

可以在文檔窗口(Documentation Window)爲每個瀏覽器元素(Browser element)鍵入"文檔信息";

可以在圖上增加文本框(text boxes)"ABC"(譯註:ABC 是文本框符號的標誌);

可以在圖上增加註釋;也可以通過"File-Delete"(譯註:似乎應是Edit-Delete)從模型中刪除不正確的元素。Check Model後,選擇Window-Log查看日誌文件;

可以選擇Report-Documentation Report;

選擇Help,查看Rational Rose Help Topics(幫助主題)。

創建Rose 用例圖:在瀏覽器窗口,選擇Use Case View(用例視圖),將"Main"重命名爲"Use Case Diagram",在Use Case View雙擊可以顯示用例圖,在圖上放置參與者(ACTOR)和用例,選擇一種關係連接各元素。

 

 

參與者 用例

創建Rose 類圖

在瀏覽器窗口選擇Logical View(邏輯視圖),將“Main”重命名爲“class diagram”;在Class Diagram上雙擊以顯示類圖;

在圖上放置"類";選擇一個"類"然後按鼠標右鍵,選擇New Attribute鍵入屬性;

選擇"類"然後按鼠標右鍵,再選擇:"New Operation"鍵入操作;

從工具條中選擇"泛化"(Generalization)關係箭頭,從子類到超類拖曳,放置一個泛化關係;

從工具條中選擇實現(Realize)箭頭,由實現類向接口拖曳,放置一個實現關係;

從工具條中選擇關聯(Association)箭頭從較大/上級類向較小/從屬類拖曳,放置一個關聯關係;

在離較小/從屬類最近的關聯線上單擊鼠標右鍵,鍵入角色名及角色多重性;

從工具條中選擇菱形的聚合符號,然後從較大/整體類向較小/部分類拖曳,放置一個聚合/組成關係;

在到部分類最近的關聯線上單擊鼠標右鍵,鍵入角色名稱及角色多重性;

從工具條中選擇依賴箭頭,從源/客戶類(source/client class)向目標/供應端(destination/supplier class)拖曳,放置一個依賴(dependency)關係;選擇Tools-Check Model;

選擇Report - Show Usage/Show Instances/Show Access Violations;

選擇 File - Save。

 

創建Rose 順序圖

在瀏覽器窗口選擇Logical View;

選擇Browse-Interaction Diagram-Logical View-<View>;

選擇Sequence Diagram;

鍵入圖名;

在圖上放置對象(object)以表示類的對象;

雙擊對象並且選擇從下拉列表中選擇類名;

選擇Rose 對象消息(Object Message)符並在兩個對象間拖曳;

雙擊消息,選擇操作。

選擇Tools - Check Model;

選擇Report - Show Unresolved Objects/Show Unresolved Messages;

選擇 File - Save。

 

-------------------

文章中,我們使用了“統一軟件開發過程”。(參見《The Unified Software Development Process》(Ivar Jacobson,Grady Booch, James Rumbaugh 著)、《The Rational Unified Process An Introduction Second Edition》(Krutchen著))。統一過程生命週期階段圖示如下:

 

系統/子系統/組件 包/類/對象
Ⅰ-需求→→ Ⅱ-分析
需求描述/產品性能 類圖
所有用例的用例圖 包圖
每個用例場景(scenario)的順序圖 順序圖和/或寫作圖
每個用例所有場景的活動圖 活動圖和狀態圖
Ⅳ-實現 ←←Ⅲ-設計
過程環境硬件&軟件
組件圖&部署圖
過程環境硬件(HW)&軟件(SW)
更新的類/包/順序/協作/活動/狀態圖

 

 

---Ⅴ&Ⅵ 構建/測試

下表中總結了在統一過程中不同的模型:

 

  業務模型 需求模型 分析模型 設計模型 實現模型; 測試模型
關鍵UML元素 業務過程(用例),業務域對象 系統,參與者,用例,交互 業務包,類,對象,消息 硬件&軟件配置,包,類,對象,消息 組件,節點,編碼 測試計劃和測試實例
主要關注點 模型業務 黑盒模型系統 問題領域模型的業務元素(不含實現細節) 更新特定實現的分析圖/規約,例如硬件&軟件配置 分佈式環境模型物理元素;對應所有需求的編碼 單元(類/操作)測試,集成,整個系統測試
目標:元素間弱耦合-強內聚 充分的業務/企業信息 所有用例/場景的充分信息,所有計劃過的增量/迭代。 滿足需要的最簡業務/問題領域模型 生成最大量代碼或手動編碼需要的足夠的信息 界面友好、最適當的組件架構-網絡;滿足所有需求的代碼 編碼可滿足所有需求的充分測試
靜態/結構性圖 業務領域對象 顯示參與者的塊圖和用例圖 包/類圖 包/類圖 組件和部署圖;逆向類圖
動態的/基於時間的圖 業務過程(用例) 每個用例場景的用例圖、順序圖,每個用例的活動圖 每個用例場景的順序圖,基於狀態的類的狀態圖,複雜操作的活動圖 每個用例場景的順序圖,基於狀態的類的狀態圖,複雜操作的活動圖 可選地,顯示分佈式信息的更新順序圖
關鍵團隊成員 業務分析員 業務分析員 業務分析員 開發人員 架構師,開發人員 開發人員/測試人員
模型籤認 項目經理,架構師,客戶 項目經理,架構師,客戶 項目經理,架構師,客戶 項目經理,架構師 項目經理,架構師 項目經理,架構師,客戶(驗收)

建議的任務/練習:基於統一過程創建一個UML模型。

0 ——業務建模-企業級

評審業務模型:前景文檔,組織結構圖,業務事件和過程(用例),業務參與者,工作人員(worker),實體(域模型),業務規則目錄,業務接口(操作集),業務模式,業務系統體系結構-組件圖,術語表。參見《The Rational Unified Process An Introduction Second Edition》(Krutchen著)及《Business Modeling with UML》(Eriksson 和Penker 著)。

Ⅰ-需求-系統/子系統/組件級(與語言無關的)

1.需求-對需求描述、系統圖(System Drawing),系統塊圖(客戶提供)進行評審。創建系統協作圖[環境圖(Context Diagram)]以說明對象/數據的輸入輸出、設定系統的邊界(可選)。創建需求可追蹤性表,列出需求名、需求號、引用、用例、UML元素、測試實例、描述、職責,等等(可選)。評審管理計劃、時間表、風險、命名/編碼標準、方法設計-UML 過程/構造型/特徵/約束(可選)。

2.所有用例-創建用例圖說明所有用例。說明用例關係(包含,擴展、泛化)和/或分級用例(從高級到細節)(可選)。確定用例的增量和迭代。

3.每個用例-爲每個用例創建用例規約描述:用例名、觸發、輸入、輸出、前置條件/異常、後置條件/異常,基本的和替代性可選場景【從樂觀到悲觀】、業務規則。爲每個用例場景創建順序圖(可選)。爲每個用例創建輸入/輸出表和測試實例(可選)。

4.每個用例所有的場景-爲每個用例創建活動圖說明所有的用例場景(樂觀到悲觀)。用文本、流程圖或其他圖說明每個用例的場景/路徑(可選)。

5.信息--創建產品性能(Product Capabilities)列出非功能性的需求:可用性(可靠性、性能、安全、人員因素),一般性(generality)、可移動性、兼容性,時間,空間,存儲等等。創建一個語義數據模型(高級類/包圖)(可選)。

Ⅱ-分析-類和對象級(與語言無關的)

6.類和包-創建候選類清單,CRC 卡,類圖和包圖。創建對象圖顯示屬性值(可選)。

7.對象和消息-爲每個用例-樂觀場景創建順序圖。爲所有其他用例場景創建順序圖(可選)。或者,爲每個用例創建協作圖。

8.狀態和轉移-爲每個基於狀態的類創建狀態圖,說明狀態、事件、條件、動作。

9.操作-爲每個複雜的操作創建一個操作規約,說明前置條件、轉換,後置條件,以及異常。爲每個複雜操作創建活動圖,說明活動的順序、狀態、條件和動作(可選)。

III -設計-類和對象級(特定的過程環境下的)

10.過程環境-創建由已計劃的"實現硬件和軟件配置清單"組成的goig過程環境:操作系統,語言,類庫,組件,GUI,分佈--對象請求代理,永久數據存儲,等等。可列出潛在的模式,組件標準((Active X, Java Bean, CORBA),命名約定,編碼標準,代碼生成腳本,工具(CASE, 編譯器,配置管理,測試等等)(可選)。

11.更新的分析圖及規約-更新所有圖表和說明,爲過程環境增加細節,包括數據類型,參數/返回值,支持類,操作細節(前置條件/異常)轉換,後置條件/異常),等等。提供了實現模式,例如多態操作,異常(異常的超類/子類),線程,數據訪問,事務,安全,消息隊列等等。目標是:圖和規約爲手工編碼或代碼生成提供正確的信息(可選)。

Ⅳ 實現-系統/子系統/組件級(特定過程環境下的)

12.實施過程環境,組件標準和組件模式-更新過程環境,顯示已提供的組件(GUI,數據訪問,事務,分佈,消息隊列,安全等)、組件標準(ActiveX, Enterprise Java Bean,CORBA)、組件到組件模式,例如小的單個操作組件、基於組件的類、每一用戶-實體組件,基於組件的包,大的多包組件。

13.實施組件-創建組件圖顯示所有需要的帶有依賴關係的組件和文件,例如.EXE, DLL, .OCX, .LIB, .TXT, .HLP等等。顯示接口(棒棒糖)、創建接口圖顯示公有操作(exposed operation)(可選)。顯示IDL 代碼(Interface Definition Language,接口定義語言)例如 CORBA IDL, Microsoft IDL, Java(可選)。

14.實施節點(處理器和設備)- 創建部署圖,顯示所有需要的處理器、設備和其他器材,例如客戶網絡計算機(NC),Windows PC, NT Server,事務服務器,WEB 服務器,郵件服務器,傳真,打印機,網絡等。

V -構建

15.編碼標準和代碼生成腳本-更新編碼標準和代碼生成腳本.編碼標準爲所有主要UML元素編碼列出了樣本代碼、關係以及繼承策略、接口、異常、線程等。

16.每個組件的編碼、圖表逆向工程

VI - 測試

17.測試計劃-更新測試計劃,列出測試實例(名稱,輸入,輸出,條件),測試步驟(每一個測試用例的每一步用法),測試組件【驅動器(driver),測試裝置(harnesses),腳本】

18.測試-引導測試(conduct tests),例如類/操作測試(單元測試),個體組件測試(基於用例的),全範圍系統-多組件測試(基於用例的集成/驗收測試)。

VII - 模型和構建其他需要的組件

19.圖形用戶接口/用戶/外部接口組件-可選的-創建GUI 組件(窗口,菜單,對話框,面板)

20.永久存儲組件的-可選的-數據存儲表/存儲過程/觸發器。

 

小結

當我們開始一項工作時,並不知道接下來會發生什麼。我們關心的只是如何能出色地完成這項工作。現在,我們已經安裝了Rational Rose,並從頭開始創建了類圖,下面的工作將是“使用Rational CASE”,這纔是重點。

『引自 UMLCHINA

發佈了27 篇原創文章 · 獲贊 6 · 訪問量 2893
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章