20
2. Rational Rose 2003 逆向工程生成UML模型圖
2.1 ANSI C++(標(biāo)準(zhǔn)C++)逆向工程(Reverse Engineer)
2.2 Visual C++逆向工程(Reverse Engineer)
(1)在網(wǎng)上下載Rational Rose Enterprise Edition 2003
(2)網(wǎng)上下載Rose 2003的破解包rose2003crack
(3)安裝Rational Rose Enterprise Edition 2003
點(diǎn)擊exe安裝包,按照向?qū)б徊揭徊阶摺?/span>
Product Selection:選擇Rational Rose Enterprise Edition
Deployment Method: 選擇Desktop installation from CD image
安裝過程中,若系統(tǒng)跳出警告框 “SmartHeap Library”—MEM_BAD_POINTER, 點(diǎn)擊 ”確定”跳過。
安裝完成后,跳出 ”License Key Administrator Wizard ” 對話框,選擇右下方的 ” Don’t show this wizard on startup again, I’ll use the toolbar to activate it.” 。
1. 安裝Rose后,默認(rèn)是需要許可證書的。去下載個破解的。本例中下載的是rose2003crack.rar。
2. 先用破解壓縮包里的 rational.exe,lmgrd.exe 覆蓋到你的Rose 2003安裝目錄的Rational\Common\
3. 然后記事本打開破解壓縮包里的license.dat, 修改里面的 SERVER yourPC ANY DAEMON rational "C:\Program Files\Rational\Common\rational.exe" 改成 SERVER 你的機(jī)器名 ANY DAEMON rational "你的安裝目錄\rational.exe" ,拷貝到Common目錄下..
4. 為終止警告框 “SmartHeap Library”—MEM_BAD_POINTER跳出, 將破解壓縮包里的SHW32.DLL(一般會于mem_bad_pointer_emend.rar中)拷貝到你的Rose 2003安裝目錄的\Rational\Rose下覆蓋即可。
5. 將Flexlm.cpl拷貝到C:\WINDOWS\system32下,在控制面板里,切換到經(jīng)典視圖,運(yùn)行 FLEXlm License Manager。 之后配置FLEXlm License Manager如下:
在 Setup 面板配置文件路徑,lmgrd.exe -> 你的安裝目錄 \Common\lmgrd.exe, 而 License File 為你改過的\Common\license.dat
6. 在Control面板點(diǎn)擊Start,如果成功的話點(diǎn)擊Status按鈕將顯示 你的機(jī)器名:license server UP (MASTER), 說明成功了。 失敗的話重啟一下FlexLm License Manager就沒問題了。
7. 如果彈出對話框License Key Administrator Wizard后, 選定Point to a Rational License Server to get my licenses,單擊下一步, Server Name文本框中填寫你的機(jī)器號(可能已經(jīng)填好),單擊完成。 (成功的話會出現(xiàn)兩屏的licenses)
8. 從開始菜單啟動Rational Rose Enterprise Edition,若跳出對話框”Rational License Key Error” , 點(diǎn)擊”Launch License Key Administrator”, 進(jìn)入對話框,選擇工具條最左邊的小帽子按鈕”Start Wizard”, 跳出對話框” License Key Administrator Wizard”,選定Point to a Rational License Server to get my licenses,單擊下一步,Server Name文本框中填寫你的機(jī)器號(可能已經(jīng)填好,應(yīng)與license.dat中的機(jī)器名同),單擊完成。 (成功的話會出現(xiàn)兩屏的licenses)
9. 若重啟電腦后,無法從開始菜單啟動Rational Rose Enterprise Edition,請重啟控制面板里的FlexLm License Manager。
這一節(jié)主要介紹用戶如何使用Rose的逆向工程生成UML模型,并用來進(jìn)行C++代碼的結(jié)構(gòu)分析。
Rational Rose可以支持標(biāo)準(zhǔn)C++和Visual C++的模型到代碼的轉(zhuǎn)換以及逆向工程。下面將詳細(xì)地說明這兩種C++ project的逆向工程的步驟和具體操作。
使用標(biāo)準(zhǔn)C++逆向工程,需要在組件圖(component view)中創(chuàng)建一個組件(component),設(shè)置好需要進(jìn)行轉(zhuǎn)換的組件的信息,也就是該組件的語言、所包含的文件、文件所在的路徑、文件后綴等等信息,然后Reverse Engineer就可以根據(jù)給定的信息將代碼轉(zhuǎn)換成類圖了。
(一) 右鍵點(diǎn)擊組件視圖(Component View),選擇New->Component,創(chuàng)建一個新的組件
(二) 將component的language屬性設(shè)定為ANSI C++
a) 選中創(chuàng)建的component,點(diǎn)擊右鍵,選中Open Specification
b) 在這個對話框中將該component的language設(shè)定為ANSI C++
(三) 配置該ANSI C++ component,設(shè)置好該component中包含的C++代碼文件,并進(jìn)行C++語言的詳細(xì)設(shè)置
a) 選中該component,點(diǎn)擊右鍵,選擇ANSI C++->Open ANSI C++ Specification
b) 把Source file root directory設(shè)定為你的C++源碼文件所在的路徑,Reverse engineering root package 中輸入轉(zhuǎn)換后的工程的名稱,默認(rèn)為C++ Reverse Engineered,Reverse engineer directories as packages 選項(xiàng)將以文件夾的形式在Rose 的Logical View中生成與源文件相同的文檔結(jié)構(gòu)。點(diǎn)擊Add Files將需要轉(zhuǎn)換的文件添加到Project Files中,視你的需要來做其它的設(shè)定,比如:頭文件擴(kuò)展名等等。
(四) 將設(shè)置好的component轉(zhuǎn)換成模型圖
a) 選中設(shè)置好的component,點(diǎn)擊右鍵,選中ANSI C++->Reverse Engineer
b) 選中需要轉(zhuǎn)換的class,點(diǎn)擊ok,一個component的逆向轉(zhuǎn)換就完成了。
c) 逆向轉(zhuǎn)換完成后,將在Rose主界面的Logical View下顯示逆向轉(zhuǎn)化后的代碼。
(五) 得到逆向工程的模型圖
a) 新建一個Class Diagram,并命名。
b) 雙擊此Diagram打開,選擇Query->Add Classes。
c) 在Package下拉列表選擇包含類的文件夾,點(diǎn)擊OK。選擇All >> 添加。
d) 重復(fù)同樣的操作直到所有需轉(zhuǎn)換成UML模型的類都已經(jīng)添加完畢。最后在Class Diagram視圖中顯示所有生成的UML模型圖及其它們之間的聯(lián)系。
(六) 排列視圖
一般來說,一個系統(tǒng)中所涉及的數(shù)據(jù)元素非常多,導(dǎo)致視圖很擁擠,排版也非常困難。Rational Rose提供的自動排版功能可以很方便地幫助用戶解決這個問題。
選擇Format->Layout Diagram,系統(tǒng)會將圖中的所有元素用最優(yōu)方式重新排列,給用戶一個清晰的視圖。
2.2 Visual C++逆向工程(Reverse Engineer)
Visual C++ 在使用這個功能的時(shí)候,要求用戶的機(jī)器上同時(shí)安裝Visual Studio。Visual C++的逆向工程也需要首先創(chuàng)建一個component,并將該component的language屬性設(shè)置為VC++。Rational Rose對VC++模型的轉(zhuǎn)換是通過讀取VC++ Project File的信息來實(shí)現(xiàn)的,用戶只需要將對應(yīng)的project file信息指定給component就可以了。其余操作與“ANSI C++(標(biāo)準(zhǔn)C++)逆向工程”基本雷同。
(一) 將VC++ Project的信息賦給剛剛創(chuàng)建好的component。
a) 選擇該component,點(diǎn)擊右鍵,選擇Assign To Project
b) 在對話框中找到剛剛創(chuàng)建的component,右鍵點(diǎn)擊并選擇Properties。
c) 在下面對話框中選中需要進(jìn)行轉(zhuǎn)換的Project,點(diǎn)擊ok,該component就與需要轉(zhuǎn)換的project關(guān)聯(lián)上了。
(二) 將設(shè)置好的component轉(zhuǎn)換成模型圖
選中設(shè)置好的component,點(diǎn)擊右鍵,Update Model…,將會彈出確認(rèn)對話框,選中需要轉(zhuǎn)換的class,點(diǎn)擊finish就可以了。
注釋
①IBM Rational Software Architect是一個集成式設(shè)計(jì)和開發(fā)工具,使用戶可以用UML模型驅(qū)動的開發(fā)方式開發(fā)出結(jié)構(gòu)清晰的應(yīng)用程序和服務(wù)。
②IBM Rational Software Modeler是基于UML2.0的可定制的可視化建模和設(shè)計(jì)工具,遵循它所提供的工作流程,可以使得系統(tǒng)設(shè)計(jì)師,系統(tǒng)分析師,設(shè)計(jì)人員等寫出更為清晰的文檔,更為有效地進(jìn)行溝通和設(shè)計(jì)工作。
③UML提供的各種類型的模型描述圖
用例圖(Use Case Diagram):描述系統(tǒng)提供的一個功能單元,主要目的是幫助開發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,包括基于基本流程的"角色"(actors,也就是與系統(tǒng)交互的其他實(shí)體)關(guān)系,以及系統(tǒng)內(nèi)用例之間的關(guān)系。
序列圖(Sequence Diagram):顯示具體用例(或者是用例的一部分)的詳細(xì)流程。
狀態(tài)圖(Statechart Diagram):表示某個類所處的不同狀態(tài)和該類的狀態(tài)轉(zhuǎn)換信息。
活動圖(Activity Diagram):表示在處理某個活動時(shí),兩個或者更多類對象之間的過程控制流。
類圖(Class Diagram):表示不同的實(shí)體(人、事物和數(shù)據(jù))如何彼此相關(guān);換句話說,它顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu)。
組件圖(Component Diagram):提供系統(tǒng)的物理視圖。組件(Component)表示模型代碼庫、執(zhí)行庫和其它組件的信息。組件是代碼的實(shí)際模塊,組件圖主要用戶是負(fù)責(zé)控制代碼和編譯部署應(yīng)用程序的人。有些組件是代碼庫,有些組件是運(yùn)行組件,如執(zhí)行文件或動態(tài)鏈接庫(DLL)文件。)
部署圖(Deployment View):表示該軟件系統(tǒng)如何部署到硬件環(huán)境中。
數(shù)據(jù)模型圖(Data Model Diagram):描述關(guān)系數(shù)據(jù)結(jié)構(gòu)。
參考文獻(xiàn):
申 震杰, IBM 中國軟件開發(fā)中心軟件工程師 《利用Rational Rose進(jìn)行C++代碼和數(shù)據(jù)庫結(jié)構(gòu)分析》
聯(lián)系客服