標籤:
用過幾個建模設計工具,小的有staruml,大的有rational rose,EA。最後發現還是Visual Studio建模比較舒服(個人觀點,不要爭論)。
打算對自己經常用的幾個建模圖做一個介紹,類圖(Class Diagram),時序圖(sequence diagram),使用案例圖(use case giagram),元件圖表(component diagram),分層圖(layer diagram)。
本文主要介紹在Visual Studio中設計類圖,主要包含一下內容:
- VS Modeling Project介紹
- 類圖建立
- 類之間關係說明
- 根據類圖自動產生代碼
VS Modeling Project介紹
想使用Visual Studio進行建模,首先得建立一個Modeling Project。
建立後Project如下:
接下來所有在VS下面的建模都可以在這個Project中進行了。在Project中右鍵=》Add new item, 就可以建立所有VS支援的模型了。
在中選擇 UML Class diagram就可以建立類圖畫布進行類設計了。
類圖建立
可以通過左側的tool box進行類圖的建立,示範了,介面,類,類的關係:繼承,依賴,彙總,組合。Enum就不再示範,package是分包設計類圖,把類圖設計在package裡面,個人覺得用處不大,如果需要分包就建立個類圖檔案吧。螢幕大小有限,把整個系統的類圖按包放到一個畫板是不現實的,也不再示範。
類之間關係說明
上面的類圖展示了“繼承(inheritance),依賴(dependence),彙總(aggregation),組合(composition)”這三類別關係,其實還有一個關聯(association)(people to country),這是類之間非常弱的關係,僅僅從視覺上告訴人,類之間有關聯。繼承都瞭解,下面著重介紹另外三個。
依賴:A類依賴B,是指在A類中有方法的參數、方法體內或者方法的傳回值用到了B。中Person依賴Mail
彙總:A類和B類彙總,是只A類是B類的一個屬性,但是B類可以單獨存在,中Person和Book,Book是person的屬性,但是Book可以單獨存在
組合:組合類別似於彙總也是整體部分的關係,中Person和Hand的關係,hand作為Person的屬性存在,區別在於Person和Hand的生命週期一樣。
彙總和組合在程式結構上本身是一樣的,但是分開來從圖上可以搞清楚的理解設計,以及對象的生命週期。
根據類圖自動產生代碼
在VS下面完全可以根據上面的類圖產生代碼,畫板上右鍵:
產生代碼如下(類的組建目錄自己是可以選擇的):
可以看到如類圖所示Book,Hand,Country都作為Person的屬性而存在。
以上就是我對VS下面建立類圖的一些總結,這個非常有用,便於team溝通。最終版一鍵產生代碼,生產力也上去了。
另外一些修改屬性,比如是否是abstract、public等這些就不再示範了。
UML Design Via Visual Studio-Class Diagram