Rational Rose C++逆向工程

一.Rational Rose逆向工程介紹

逆向工程(Reverse Engineer)就是從現有系統的代碼來生成模型的功能。分析已有的代碼其主要的目的就是了解代碼結構和數據結構,這些對應到模型圖就是類圖、數據模型圖和組件圖,也就是通過Rational Rose的逆向工程所得到的結果。

Rational Rose所支持的逆向工程功能很強大,包括的編程語言有C++, VB, VC, Java, CORBA,以及數據庫DDL腳本等等,並且可以直接連接DB2, SQLServer,Oracle和Sybase等數據庫導入Schema並生成數據模型。

二.如何用Rational Rose進行C++代碼分析

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

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

a) 右鍵點擊組件視圖(Component View),選擇New->Component,創建一個新的組件
這裏寫圖片描述

b) 將component的language屬性設定爲ANSI C++

①選中創建的component,點擊右鍵,選中Open Specification
這裏寫圖片描述
②在這個對話框中將該component的language設定爲ANSI C++
這裏寫圖片描述
c) 配置該ANSI C++component,設置好該component中包含的C++代碼文件,並進行C++語言的詳細設置

①選中該component,點擊右鍵,選擇ANSI C++->Open ANSI C++ Specification
這裏寫圖片描述
②把Source file rootdirectory設定爲你的C++源碼文件所在的路徑,並且將需要轉換的文件添加到Project Files中,視你的需要來做其它的設定,比如:頭文件擴展名等等。
這裏寫圖片描述
d) 將設置好的component轉換成模型圖

①選中設置好的component,點擊右鍵,選中ANSI C++->Reverse Engineer
這裏寫圖片描述
②選中需要轉換的class,點擊ok,一個component的逆向轉換就完成了。
這裏寫圖片描述

四.如何得到逆向工程的模型圖

在Rational Rose中,有些模型圖是不會自動生成的,很多時候這個工作需要用戶手工來完成。也就是說,Rational
Rose只負責生成模型,包括模型中的元素、元素的屬性以及各個元素之間的關係,但是需要用戶做一些額外的工作來得到視圖。

首先,通過逆向工程,用戶已經得到了UML模型或者數據模型的各個組件以及它們之間的關係。 下一步需要在該模型上創建一個視圖,它們可以是類圖(class diagram,描述系統的靜態結構)或者數據模型圖(Data
modeldigram,描述關係數據結構)。然後,手動從左邊的explorer中將各個元素拖進視圖中,在這個過程中,各個元素之間的關聯關係會自動在圖中表示出來,而不需要用戶再做其他工作。

例如:生成一個數據模型的數據模型圖的過程

從左邊將數據模型中的數據元素拖到右邊的數據模型圖中,表CustomerCustomerDemo和表CustomerDemographics之間的依賴關係的菱形箭頭是自動生成的,無需手工操作。
這裏寫圖片描述

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章