資源描述:
《rational rose逆向工程介紹》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、2004年10月,IBM推出了支持最新的UML2.0的可視化建模工具?RationalSoftwareArchitect(見注釋①)和IBMRationalSoftwareModeler(見注釋②)。雖然它們支持在建模功能上有了更好的改進、支持了更新的標準,但是RSA的精彩功能主要是集中在對Java應用的支持,而IBMRationalSoftwareModeler則是主要關(guān)注系統(tǒng)的模型設計,如果要從結(jié)構(gòu)上分析C++編寫的系統(tǒng)的代碼,RationalRose還是首選的工具。接下來的文章將會對如何利用Rati
2、onalRose的逆向轉(zhuǎn)出工程來進行系統(tǒng)分析進行更加詳細地闡述。一.RationalRose逆向工程介紹逆向工程(ReverseEngineer)就是從現(xiàn)有系統(tǒng)的代碼來生成模型的功能。分析已有的代碼其主要的目的就是了解代碼結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),這些對應到模型圖就是類圖、數(shù)據(jù)模型圖和組件圖(對UML各種模型圖的描述見注釋③),也就是通過RationalRose的逆向工程所得到的結(jié)果。RationalRose所支持的逆向工程功能很強大,包括的編程語言有C++,VB,VC,Java,CORBA,以及數(shù)據(jù)庫DDL腳本等
3、等,并且可以直接連接DB2,SQLServer,Oracle和Sybase等數(shù)據(jù)庫導入Schema并生成數(shù)據(jù)模型。很多大型的C++開發(fā)的產(chǎn)品都涉及到數(shù)據(jù)庫的使用,對這種大型系統(tǒng)的開發(fā),尤其是做二次開發(fā)的情況下,主要的難點就是對源碼和數(shù)據(jù)庫結(jié)構(gòu)的分析。而利用Rose的逆向工程這一功能,就可以完成代碼'類圖以及數(shù)據(jù)庫Schema->數(shù)據(jù)模型圖的轉(zhuǎn)換,解決這兩大難點,可以使開發(fā)和設計人員在對這種大型系統(tǒng)的升級、分析和開發(fā)中,更為方便、快捷、有條理地掌握系統(tǒng)結(jié)構(gòu),不用再為分析龐大的系統(tǒng)結(jié)構(gòu)而頭疼。二.如何用Rat
4、ionalRose進行C++代碼分析這一節(jié)主要介紹用戶如何使用Rose的逆向工程生成UML模型,并用來進行C++代碼的結(jié)構(gòu)分析。RationalRose可以支持標準C++和VisualC++的模型到代碼的轉(zhuǎn)換以及逆向工程。下面將詳細地說明這兩種C++project的逆向工程的步驟和具體操作。1.ANSIC++(標準C++)逆向工程(ReverseEngineer)使用標準C++逆向工程,需要在組件圖(componentview)中創(chuàng)建一個組件(component),設置好需要進行轉(zhuǎn)換的組件的信息,也就是該
5、組件的語言、所包含的文件、文件所在的路徑、文件后綴等等信息,然后ReverseEngineer就可以根據(jù)給定的信息將代碼轉(zhuǎn)換成類圖了。a)右鍵點擊組件視圖(ComponentView),選擇New->Component,創(chuàng)建一個新的組件b)將component的language屬性設定為ANSIC++①選中創(chuàng)建的component,點擊右鍵,選中OpenSpecificationlocatedintheTomb,DongShenJiabang,deferthenextdayfocusedontheassa
6、ssination.Linping,Zhejiang,1ofwhichliquorwinemasters(WuzhensaidinformationisCarpenter),whogotAfewbayonets,duetomissedfatal,whennightcame②在這個對話框中將該component的language設定為ANSIC++c)配置該ANSIC++component,設置好該component中包含的C++代碼文件,并進行C++語言的詳細設置①選中該component,點擊右鍵,選擇
7、ANSIC++->OpenANSIC++Specification②把Sourcefilerootdirectory設定為你的C++源碼文件所在的路徑,并且將需要轉(zhuǎn)換的文件添加到ProjectFiles中,視你的需要來做其它的設定,比如:頭文件擴展名等等。d)將設置好的component轉(zhuǎn)換成模型圖①選中設置好的component,點擊右鍵,選中ANSIC++->ReverseEngineerlocatedintheTomb,DongShenJiabang,deferthenextdayfocusedon
8、theassassination.Linping,Zhejiang,1ofwhichliquorwinemasters(WuzhensaidinformationisCarpenter),whogotAfewbayonets,duetomissedfatal,whennightcame②選中需要轉(zhuǎn)換的class,點擊ok,一個component的逆向轉(zhuǎn)換就完成了。2.VisualC++在使用這個功能的時候,要求用戶的機器上同時