使用VS2010建模
因為在平時工作中一直用Rational Rose或者EA等UML建模工具來實現UML圖的設計繪制,當然它們也支持正向及逆向工程。但一直感覺使用起來不能和Visual Studio很好的結合起來。直到今天我在微軟官網發現了一個拓展即:Visual Studio 2010的可視化和建模工具包。
自己小試了一下發現這是個非常強大,使用也很便捷的拓展,下面具體說明一下本人是怎么使用該拓展的。
首先,需要安裝VS2010 Ultimate
然后,下載Visual Studio 2010的可視化和建模工具包(在vs的“工具”——“擴展管理器”——“聯機庫”中輸入檢索條件,即可檢索到)
Visual Studio 2010的可視化和建模工具包下載完成后是2個.vsix拓展文件,一個是建模工具包,一個是運行時,如下圖:
雙擊直接安裝即可,安裝后開啟VS2010,在新建項目對話框中會多了一項“建模項目”如下圖:
其中包括:
Layer Designer Command Extension——即向層關系圖添加命令和特定動作,具體請參見:向層關系圖添加命令和特點動作
Layer Designer Gesture Extension——即在圖層圖表中加入命令和軌跡,具體請參見:在圖層圖表中加入命令和軌跡
Layer Designer Validation Extension——即向層關系圖添加自定義體系結構驗證,具體請參見:向層關系圖添加自定義體系結構驗證
建模項目——今天我們主要討論該模板。
選中“建模項目”模板,設置名稱為“TestModelingProject”及設置存儲路徑,點擊【確定】按鈕。
這樣我們就創建了一個建模項目,在VS2010中的解決方案資源管理器中會看到如下圖:
選中TestModelingProject建模項目,然后點擊IDE菜單欄中的【體系結構】菜單項然后選擇【新建關系圖】
彈出關系圖選擇頁面
目前共有如下幾種關系圖類別,我們以UML類圖為例,來建立我們自己的程序UML。
設置名稱及添加到建模項目后點擊【確定】按鈕。會自動在IDE中生成類關系圖。
點擊IDE左側的“工具箱”DockPanel,在工具箱中會出現類圖中常用的圖形,如
我們先建立一個Demo,即向畫布中拖拽一個接口及兩個類,分別命名為:IDemo,Demo1,Demo2,在接口中有一個方法約定即:int GetMaxValue(List<Int> list),兩個類分別實現該接口,如
這里介紹一下接口或類型圖中該如何添加“特性”及“操作”,如添加一個操作即一個方法,首先選中“操作”行右鍵點擊【添加】-》【操作】
然后再屬性DockPanel中設置相關參數及返回值類型等
設置參數點擊“Parameters”屬性中右邊的瀏覽按鈕“
”,彈出操作參數集合編輯器窗口,對參數進行設置
這樣我們的方法就建立成功了,“特性”的創建和方法類圖,這里就不再一一介紹,這樣我們接口和類就創建成功了。
下面我們來將建好的UML類圖導出來,如何操作呢?如下:
Ctrl+A選中接口和類圖,右鍵點擊【GenerateCode】
這時會提示選擇類模板對話框
點擊【確定】按鈕,開始創建工程
最終我們的UML類圖被正向工程導出為如下圖的類庫
最終會輸出一些日志信息提供查看
這樣我們的一個正向工程就完成了,在下章中我們會討論逆向工程的相關細節。
首先,我們先來創建我們將要逆向工程的項目文件,項目很簡單為了演示全面,我們分別建立了3個工程項目(類庫),如圖:
該項目主要實現數據的加減乘除4種簡單計算操作,主要為了演示怎樣逆向工程及如何導出依賴項。
下面分別介紹一下這3個類庫的功能:
ZY.TestModeling.InterfaceDefine——該類庫主要功能為接口聲明。
ZY.TestModeling.Implement——該類庫主要負責功能實現(這里使用了策略模式對算法進行封裝)。
ZY.TestModeling.UI——顧名思義該類庫為用戶接口UI界面主要負責UI程序與用戶交互。
這樣我們項目結構清晰了,下面來看如何使用VS2010拓展進行逆向工程。
首先、我們應該創建我們所需用的類圖文件,如何操作呢?即我們右鍵點擊解決方案,然后選擇【添加】-》【新建項目】
然后再新建項目對話框中選擇【建模項目】設置項目名稱及存儲位置后點擊【確定】
這樣在解決方案下將自動生成建模項目
然后選中該項目點擊Visual Studio 2010中的菜單欄【體系結構】-》【新建關系圖】
然后彈出新建關系圖對話框,選擇“UML類圖”設置名稱及添加到的建模項目后點擊【確定】
將在建模項目下生成一個.classdiagram文件,該文件即類圖項目文件,雙擊打開生成的類圖文件。
然后、在Visual studio 2010的菜單欄中選擇【體系結構】-》【窗口】-》【體系結構管理器】,如圖:
這樣會出現”體系結構資源管理器窗口”
這里主要有兩種視圖方式,分別為“解決方案視圖”及“類視圖”
解決方案視圖即按解決方案中的層次項目目錄進行體系結構展示
類視圖即按類的層次項目目錄進行體系結構展示
這里我們使用“解決方案視圖”方式進行體系結構展示,在子項目窗口中選中將要逆向工程的項目,這樣在右邊將出現“文件”浮動窗口,在該窗口中將展示出被選中的3個項目的所有文件,選中所有文件后將出現”類型”浮動窗口
按住鼠標左鍵將選中類型拖動到類圖文件中松開鼠標左鍵,這樣我們的逆向工程類圖就生成了。怎么樣簡單吧!
最終結果為
這里還有一個不得不提的地方就是,在生成的類圖中可以選中某個類右鍵點擊【View Code】,這樣就可以直接調轉到類圖的具體實現文件了,開可以雙擊類圖中的某個“特性”或者“操作“都可以直接定位到實現代碼,這種操作確實很實用也很便利!
同時還可以生成依賴項關系圖,我覺得這個功能也很強大,它可以將項目中所依賴的DLL全部以圖形化方式展示出來,並將依賴關系展現出來,甚至可以定位到具體的依賴函數。
如何使用呢?
點擊Visual Studio 2010菜單欄中的【體系結構】-》【生成依賴項關系圖】
具體用5個子項可供選擇,
按程序集,
按命名空間,
按類,
By Include File,
自定義
自己可以根據自己需要進行依賴項關系圖的生成
這里我們選用”按程序集“生成
生成后
點擊【
】按鈕,即可以將內部細節展現出來,支持子項繼續展開,不能不說微軟確實很強大
同樣雙擊圖中的方法可以直接定位到具體的代碼實現。
這樣我們的逆向工程就完成了。