Rational Rose 2003 逆向工程轉換C++源代碼成UML類圖

網上的關於從C++代碼到UML類圖生成過程的東西不少,找了個能用的,現在轉下,以備不時之需。

轉來稍微調整了下內容,只關心使用。

原出處http://siulyn.blog.163.com/blog/static/6245583620087252539344


Rational Rose 2003 逆向工程生成UML模型圖

這一節主要介紹用戶如何使用Rose的逆向工程生成UML模型,並用來進行C++代碼的結構分析。

Rational Rose可以支持標準C++Visual C++的模型到代碼的轉換以及逆向工程。下面將詳細地說明這兩種C++ project的逆向工程的步驟和具體操作。

1 ANSI C++(標準C++)逆向工程(Reverse Engineer

使用標準C++逆向工程,需要在組件圖(component view)中創建一個組件(component),設置好需要進行轉換的組件的信息,也就是該組件的語言、所包含的文件、文件所在的路徑、文件後綴等等信息,然後Reverse Engineer就可以根據給定的信息將代碼轉換成類圖了。

(一)    右鍵點擊組件視圖(Component View),選擇New->Component,創建一個新的組件

 

(二)    componentlanguage屬性設定爲ANSI C++

a)          選中創建的component,點擊右鍵,選中Open Specification

 

 

b)         在這個對話框中將該componentlanguage設定爲ANSI C++

 

(三)    配置該ANSI C++ component,設置好該component中包含的C++代碼文件,並進行C++語言的詳細設置

a)          選中該component,點擊右鍵,選擇ANSI C++->Open ANSI C++ Specification

b)         Source file root directory設定爲你的C++源碼文件所在的路徑,Reverse engineering root package 中輸入轉換後的工程的名稱,默認爲C++ Reverse EngineeredReverse engineer directories as packages 選項將以文件夾的形式在Rose Logical View中生成與源文件相同的文檔結構。點擊Add Files將需要轉換的文件添加到Project Files中,視你的需要來做其它的設定,比如:頭文件擴展名等等。

 

(四)    將設置好的component轉換成模型圖

a)          選中設置好的component,點擊右鍵,選中ANSI C++->Reverse Engineer

b)         選中需要轉換的class,點擊ok,一個component的逆向轉換就完成了。

c)        逆向轉換完成後,將在Rose主界面的Logical View下顯示逆向轉化後的代碼。

 

(五)    得到逆向工程的模型圖

          a)  新建一個Class Diagram,並命名。

         b)         雙擊此Diagram打開,選擇Query->Add Classes

c)          Package下拉列表選擇包含類的文件夾,點擊OK。選擇All >> 添加。

 

d)        重複同樣的操作直到所有需轉換成UML模型的類都已經添加完畢。最後在Class Diagram視圖中顯示所有生成的UML模型圖及其它們之間的聯繫。

 

(六)    排列視圖

一般來說,一個系統中所涉及的數據元素非常多,導致視圖很擁擠,排版也非常困難。Rational Rose提供的自動排版功能可以很方便地幫助用戶解決這個問題。

選擇Format->Layout Diagram,系統會將圖中的所有元素用最優方式重新排列,給用戶一個清晰的視圖。



2 Visual C++逆向工程(Reverse Engineer

Visual C++ 在使用這個功能的時候,要求用戶的機器上同時安裝Visual StudioVisual C++的逆向工程也需要首先創建一個component,並將該componentlanguage屬性設置爲VC++Rational RoseVC++模型的轉換是通過讀取VC++ Project File的信息來實現的,用戶只需要將對應的project file信息指定給component就可以了。其餘操作與“ANSI C++(標準C++)逆向工程”基本雷同。

(一)    VC++ Project的信息賦給剛剛創建好的component

a)          選擇該component,點擊右鍵,選擇Assign To Project

b)         在對話框中找到剛剛創建的component,右鍵點擊並選擇Properties

c)          在下面對話框中選中需要進行轉換的Project,點擊ok,該component就與需要轉換的project關聯上了。

 

(二)    將設置好的component轉換成模型圖

選中設置好的component,點擊右鍵,Update Model…,將會彈出確認對話框,選中需要轉換的class,點擊finish就可以了。

 

註釋

IBM Rational Software Architect是一個集成式設計和開發工具,使用戶可以用UML模型驅動的開發方式開發出結構清晰的應用程序和服務。

IBM Rational Software Modeler是基於UML2.0的可定製的可視化建模和設計工具,遵循它所提供的工作流程,可以使得系統設計師,系統分析師,設計人員等寫出更爲清晰的文檔,更爲有效地進行溝通和設計工作。

UML提供的各種類型的模型描述圖

用例圖(Use Case Diagram):描述系統提供的一個功能單元,主要目的是幫助開發團隊以一種可視化的方式理解系統的功能需求,包括基於基本流程的"角色"actors,也就是與系統交互的其他實體)關係,以及系統內用例之間的關係。

序列圖(Sequence Diagram):顯示具體用例(或者是用例的一部分)的詳細流程。

狀態圖(Statechart Diagram):表示某個類所處的不同狀態和該類的狀態轉換信息。

活動圖(Activity Diagram):表示在處理某個活動時,兩個或者更多類對象之間的過程控制流。

類圖(Class Diagram):表示不同的實體(人、事物和數據)如何彼此相關;換句話說,它顯示了系統的靜態結構。

組件圖(Component Diagram):提供系統的物理視圖。組件(Component)表示模型代碼庫、執行庫和其它組件的信息。組件是代碼的實際模塊,組件圖主要用戶是負責控制代碼和編譯部署應用程序的人。有些組件是代碼庫,有些組件是運行組件,如執行文件或動態鏈接庫(DLL)文件。)

部署圖(Deployment View):表示該軟件系統如何部署到硬件環境中。

數據模型圖(Data Model Diagram):描述關係數據結構。




附:rose的安裝參見:http://www.blogjava.net/hoojo/archive/2012/02/14/369922.html

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