C++開發本身是一個標准,各種實現之間有區別,對標准的理解、執行程度也不同。而C#、Java語言是由商業公司掌握的,在這方面很少有問題,希望本文能教會你更多東西。
IBM推出了支持最新的UML2.0的可視化建模工具 Rational Software Architect見注釋①) 和IBM Rational Software Modeler見注釋②)。雖然它們支持在建模功能上有了更好的改進、支持了更新的標准。
是RSA的精彩功能主要是集中在對Java應用的支持,而IBM Rational Software Modeler則是主要關注系統的模型設計,如果要從結構上分析C++編寫的系統的代碼,Rational Rose還是首選的工具。接下來的文章將會對如何利用Rational Rose 的逆向轉出工程來進行系統分析進行更加詳細地闡述。
一.Rational Rose逆向工程介紹
逆向工程Reverse Engineer)就是從現有系統的代碼來生成模型的功能。分析已有的代碼其主要的目的就是了解代碼結構和數據結構,這些對應到模型圖就是類圖、數據模型圖和組件圖對UML各種模型圖的描述見注釋③)。
也就是通過Rational Rose的逆向工程所得到的結果。Rational Rose所支持的逆向工程功能很強大,包括的編程語言有C++, VB, VC, Java, CORBA,以及數據庫DDL腳本等等,並且可以直接連接DB2, SQLServer, Oracle和Sybase等數據庫導入Schema並生成數據模型。
很多大型的C++開發的產品都涉及到數據庫的使用,對這種大型系統的開發,尤其是做二次開發的情況下,主要的難點就是對源碼和數據庫結構的分析。而利用Rose的逆向工程這一功能,就可以完成代碼'類圖以及數據庫Schema->數據模型圖的轉換。解決這兩大難點,可以使開發和設計人員在對這種大型系統的升級、分析和開發中,更為方便、快捷、有條理地掌握系統結構,不用再為分析龐大的系統結構而頭疼。
二.如何用Rational Rose進行C++代碼分析
這一節主要介紹用戶如何使用Rose的逆向工程生成UML模型,並用來進行C++代碼的結構分析。Rational Rose可以支持標准C++和Visual C++的模型到代碼的轉換以及逆向工程。下面將詳細地說明這兩種C++開發的逆向工程的步驟和具體操作。
1. ANSI C++標准C++)逆向工程Reverse Engineer)使用標准C++逆向工程,需要在組件圖component view)中創建一個組件component),設置好需要進行轉換的組件的信息,也就是該組件的語言、所包含的文件、文件所在的路徑、文件後綴等等信息,然後Reverse Engineer就可以根據給定的信息將代碼轉換成類圖了。
a) 右鍵點擊組件視圖Component View),選擇New->Component,創建一個新的組件
把Source file root directory設定為你的C++開發所在的路徑,並且將需要轉換的文件添加到Project Files中,視你的需要來做其它的設定,比如:頭文件擴展名等等。