青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

利用Rational Rose進行C++代碼的逆向工程介紹

Rational Rose是利用UML(統一建模語言)進行分析和設計面向對象軟件系統的強大的可視化工具,可以進行項目需求分析、結構規劃和生成框架代碼,還可以支持從現有系統逆向轉出工程代碼,生成Rose模型的功能。

2004年10月,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++ project的逆向工程的步驟和具體操作。

1. 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 root directory設定為你的C++源碼文件所在的路徑,并且將需要轉換的文件添加到Project Files中,視你的需要來做其它的設定,比如:頭文件擴展名等等。

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

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

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

2. Visual C++ 在使用這個功能的時候,要求用戶的機器上同時安裝Visual Studio。Visual C++的逆向工程也需要首先創建一個component,并將該component的language屬性設置為VC++。Rational Rose對VC++模型的轉換是通過讀取VC++ Project File的信息來實現的,用戶只需要將對應的project file信息指定給component就可以了。

a) 將VC++ Project的信息賦給剛剛創建好的component。

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

②在對話框中找到剛剛創建的component,右鍵點擊并選擇Properties。

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

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

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




回頁首

三.如何用Rational Rose進行數據庫結構分析

利用Rational Rose可以進行關系數據庫的數據模型設計并導出DDL語言腳本,相反還可以導入已有的DDL腳本生成數據模型以及連接SQLServer, DB2, Oracle等數據庫并導入數據庫的schema生成數據模型。

下面以SQL Server為例說明一下逆向轉換工程的步驟。

a) 首先,選擇Tools->Data Modeler-> Reverse Engineer

b) 在進行逆向工程轉換的過程中可以選擇是從數據庫還是DDL腳本進行轉換,如果是DDL腳本轉換,就直接給定DDL腳本文件位置就可以了。本例子給出的是連接SQLServer數據庫將schema導入生成數據模型的過程,所以選中Database,進入下一步。

c) 填寫數據庫相關信息

d) 選中所有需要轉換的schema

e) 選擇需要將哪些數據庫中的元素導入到數據模型中

轉換操作會自動在組件圖(Component View)中添加數據庫組件,并在邏輯圖(Logical View)中生成以《Schema》作為命名開頭的數據模型。

打開數據模型,可以看到從數據庫中轉換過來的各個表和視圖。

從數據模型圖中可以看到表的結構以及各個表和視圖之間的邏輯關系。



回頁首

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

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

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

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

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

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

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



點擊查看大圖



回頁首

五.總結

了解了Rational Rose的逆向工程功能,用戶就可以方便地利用這一工具進行大型數據庫相關的C++系統的分析和研究了。



回頁首

注釋

①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):描述關系數據結構。

posted on 2008-05-10 20:58 肥仔 閱讀(6130) 評論(1)  編輯 收藏 引用 所屬分類: 其他經驗

評論

# re: 利用Rational Rose進行C++代碼的逆向工程介紹  回復  更多評論   

粘貼別人的文章不要寫轉載嗎?還把別人的姓名給刪除了,有沒有版權觀念呀?
是不是想讓別人誤認為這篇文章是你寫的?
2009-06-30 21:12 | xxxx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲另类春色国产| 亚洲精品久久久久久一区二区| 精品二区视频| 午夜免费在线观看精品视频| 中国成人在线视频| 亚洲一二三区在线| 欧美一级日韩一级| 美女免费视频一区| 欧美美女bbbb| 国产精品www994| 国产亚洲一区二区精品| 亚洲高清在线观看一区| 一本一本大道香蕉久在线精品| 一本一本a久久| 久久高清免费观看| 亚洲高清影视| 亚洲视频在线免费观看| 欧美中文字幕视频| 欧美日本中文字幕| 国产一区免费视频| 亚洲美女精品成人在线视频| 亚洲视频图片小说| 久久尤物视频| 亚洲免费av观看| 久久国产精品72免费观看| 欧美国产精品日韩| 国产欧美一区二区三区另类精品| 久久高清免费观看| 牛牛精品成人免费视频| 亚洲美女在线一区| 久久久亚洲一区| 国产精品大全| 91久久精品一区二区别| 欧美在线观看视频一区二区三区 | 亚洲综合首页| 欧美.日韩.国产.一区.二区| 一本久久a久久免费精品不卡| 欧美一区二区私人影院日本| 蜜臀av在线播放一区二区三区| 一本色道久久综合| 欧美成人午夜免费视在线看片| 国产日韩欧美综合在线| 99精品视频网| 亚洲大胆在线| 久久久综合网站| 国产一区二区精品| 亚洲伊人观看| 亚洲精品乱码久久久久久按摩观| 久久久91精品国产一区二区三区| 国产精品国产亚洲精品看不卡15| 亚洲精品永久免费精品| 美腿丝袜亚洲色图| 久久精品国产99精品国产亚洲性色| 国产精品久久久久久久久久尿| 99re视频这里只有精品| 亚洲国产一区二区三区青草影视| 久久综合色一综合色88| 一本色道久久88综合日韩精品| 久久综合亚洲社区| 一区二区三区欧美在线| 欧美黄色大片网站| 亚洲欧洲在线观看| 亚洲国产精品va在线看黑人动漫| 噜噜噜久久亚洲精品国产品小说| 影音先锋在线一区| 久久婷婷国产综合尤物精品| 久久精品99无色码中文字幕| 激情成人亚洲| 欧美国产精品| 欧美日韩成人| 午夜国产一区| 久久国内精品视频| 伊人夜夜躁av伊人久久| 欧美成人激情视频| 欧美激情第4页| 亚洲视频一区| 亚洲欧美一区在线| 黄色成人在线网站| 亚洲国产欧美精品| 欧美日韩精品系列| 欧美在线二区| 久久频这里精品99香蕉| 欧美激情1区2区| 亚洲精品网址在线观看| 亚洲精品在线看| 国产欧美在线看| 欧美成人午夜77777| 欧美日韩三级一区二区| 久久国产精品色婷婷| 久久婷婷蜜乳一本欲蜜臀| 99这里只有久久精品视频| 中文一区二区| …久久精品99久久香蕉国产| 亚洲人精品午夜在线观看| 国产女主播一区二区三区| 欧美成人精品1314www| 欧美午夜激情在线| 欧美gay视频| 国产精品推荐精品| 欧美成人dvd在线视频| 国产精品爱久久久久久久| 久久亚洲一区二区三区四区| 欧美日韩一区不卡| 欧美freesex8一10精品| 国产精品久久久一本精品| 欧美激情久久久| 国产女人精品视频| 亚洲精品美女在线| 狠狠色综合日日| 亚洲无限av看| 日韩亚洲精品视频| 久久蜜桃av一区精品变态类天堂| av成人免费在线| 久久理论片午夜琪琪电影网| 亚洲专区免费| 欧美日韩不卡一区| 欧美国产精品va在线观看| 国产视频一区二区在线观看| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品免费网站| 一区二区三区国产| 亚洲男人天堂2024| 亚洲一区二区三区在线| 在线观看日韩av电影| 亚洲欧美日韩国产中文| 亚洲视频碰碰| 欧美日本韩国一区| 欧美激情导航| 在线播放国产一区中文字幕剧情欧美| 亚洲一区二区3| 亚洲一区二区三区久久| 欧美精品一级| 最新亚洲视频| 亚洲最新合集| 欧美日韩一区二区三区视频| 亚洲国产视频直播| 亚洲激情女人| 欧美+亚洲+精品+三区| 欧美激情第4页| 日韩图片一区| 欧美图区在线视频| 亚洲一区二区在线看| 亚洲欧美中文日韩在线| 国产免费一区二区三区香蕉精| 一区二区三区高清不卡| 午夜国产欧美理论在线播放| 国产精品自拍小视频| 新狼窝色av性久久久久久| 久久天天躁狠狠躁夜夜爽蜜月| 在线成人中文字幕| 欧美黑人国产人伦爽爽爽| 亚洲美女精品一区| 性色一区二区三区| 伊人成人在线视频| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美精品色综合| 99日韩精品| 久久精品天堂| 亚洲国产毛片完整版| 欧美日韩国产精品一区二区亚洲| 99视频精品全国免费| 久久成人在线| 亚洲福利小视频| 欧美三区在线观看| 欧美一区二区成人| 亚洲国产乱码最新视频| 在线一区二区日韩| 国产女人水真多18毛片18精品视频| 欧美在线亚洲一区| 亚洲精品在线三区| 久久夜色撩人精品| 一本色道久久综合狠狠躁篇的优点| 国产精品久久久久99| 久久九九全国免费精品观看| 91久久极品少妇xxxxⅹ软件| 亚洲欧美国产日韩天堂区| 激情欧美一区二区三区在线观看 | 国内外成人免费激情在线视频| 猫咪成人在线观看| 亚洲综合99| 亚洲国产欧美在线人成| 午夜日韩在线观看| 亚洲青涩在线| 欧美一二三区精品| 国产亚洲毛片| 欧美高清在线观看| 欧美在线999| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美在线视频在线播放完整版免费观看 | 国产精品久久久久久久久久免费看| 久久成人在线| 99国产精品自拍| 欧美激情亚洲另类| 玖玖精品视频| 久久久久女教师免费一区| 亚洲婷婷综合色高清在线| 亚洲区免费影片| 激情丁香综合| 韩国一区二区在线观看| 国产精品视频你懂的|