[VS2010/.NET 4.0 自我修煉-01] 初探 Visual Studio 2010 Ultimate 內建的 UML 工具

  • 10111
  • 0
  • 2010-09-08

[VS2010/.NET 4.0 自我修煉] 初探 Visual Studio 2010 Ultimate 內建的 UML 工具

首先,感謝點部落團隊舉辦贈書自我修練活動,

讓筆者有機會看書自我學習以及分享所得~

以下正式開始這次的修練之路~~~

 

 

在 Visual Studio 中有一套協助開發的工具叫做「類別圖表」,

如果筆者沒記錯,這是從 2008 版本開始內建在 VS 裡的。

但是 2008 的版本只有單純的類別圖檢視。

 

而這次在 2010 的版本中,「類別圖表」大大的提升了對 UML 的支援度,

不僅可建立類別圖 (Class Diagram),還可建立最常使用的其他四種圖:

  • 使用案例圖 (Use Case Diagram)
  • 活動圖 (Activity Diagram)
  • 順序圖 (Sequence Diagram)
  • 元件圖 (Component Diagram)

 

本篇以下僅先針對類別圖做簡單的使用介紹,

示範內容包括如何透過類別圖表來做類別的新增、繼承設定以及類別成員的細節設計,

以下開始示範:

 

 

一、新增類別

1. 在 VS 裡面開一個新的類別庫專案

 

01-開新專案(類別庫) 02-選取類別庫範本

 

2. 在專案項目上面點滑鼠右鍵,選擇「類別圖表檢視」, VS 會自動加入一個文件叫做「ClassDiagram1.cd」,

並且開啟設計檢視畫面

03-開啟類別圖表檢視 04-類別圖表檢視看起來的樣子

 

3. 在設計檢視畫面的空白處點擊滑鼠右鍵,選擇「加入」,可看到右邊出現次選單,

可新增的項目有「類別」、「列舉」、「介面」、「抽象類別」、「結構」、「委派」、「註解」等七項,

05-滑鼠右鍵選單

 

4. 因為接下來要介紹繼承的操作方式,所以我們選擇「類別」,建立新類別以供「繼承」的操作範例使用。

選擇了類別之後,可以看到類別基本資訊的設定視窗,具有「類別名稱」、「存取 (修飾詞)」、「檔名」等項目可編輯。

首先來看「類別名稱」文字方塊,我們可在這邊指定新增類別的名稱

06-新增_類別

 

5. 接著是「存取修飾詞」下拉選單,這邊包含了三種修飾詞,public、internal 以及預設

07-存取修飾詞

 

6. 最後是設定這個類別要新增在哪個 .cs 檔案中,

這邊提供了有兩個方式給我們選擇,

其一是「建立新檔案」,也就是在專案中新增一個 .cs 檔案,檔案命名會以第 4 步所指定的名稱為準

其二是「加入至現有檔案」,也就是選擇一個專案中既有的 .cs 檔案,將新的類別加在該檔案中

(i) 建立新檔案:08-建立新檔案 09-建立新檔案

(ii) 加入至現有檔案:08-加入至現有檔案 09-加入至現有檔案1 09-加入至現有檔案2

 

 

二、繼承

1. 接下來是前面提到的「繼承」的操作範例,

首先在 VS 左側可以看到「工具箱」裡面的「類別設計工具」,

點開來並點擊滑鼠左鍵選取「繼承」

10-建立繼承(父子)關係

 

2. 選取了「繼承」項目之後,將滑鼠游標移回到「類別圖表設計檢視」之中,可以看到滑鼠的游標改變了

11-滑鼠游標改變

 

3. 如果我們在這邊想讓類別 Class2 繼承類別 Class1,那就先將滑鼠游標移到類別 Class2 項目上面並點一下滑鼠左鍵,

這時候可以看到滑鼠游標的尖端部分跟類別 Class2 項目之間連著一條虛線

12-點一下類別 Class2

 

4. 然後將滑鼠游標移到類別 Class1 項目上面再點一下滑鼠左鍵,

可以看到兩個項目之間會用一條單向箭頭的直線連接起來,

其中父類別 (Class1) 那邊是箭頭,子類別 (Class2) 那邊沒有箭頭,

像這樣的圖形是從 UML 2.0 的規範而來~~~

我們這時再將類別 Class2 打開來看,VS 果然已經編輯過其內容,

使類別 Class2 繼承類別 Calss1 了~~~

13-移到類別 Class1 上面點滑鼠左鍵 14-繼承關係建立完成1 14-繼承關係建立完成2

 

 

三、類別細節

A. 屬性

1. 在 VS 的上方有一排按鈕叫做「類別設計工具」,

其中有一個按鈕叫做「類別細節視窗」,我們可以利用它來設計類別成員

15-類別細節視窗

 

2. 開啟「類別細節視窗」之後,我們首先來加幾個屬性看看,

將滑鼠游標移到圖片所在位置點一下左鍵,就會進入編輯模式,

在這個文字方塊可以輸入屬性名稱~

16-加入屬性 17-填入屬性名稱

 

3. 我們在上一動將屬性名稱編輯為「ID」,這時候可以按 tab 鍵繼續編輯「型別」這個文字方塊。

文字游標移到「型別」文字方塊之後,VS 會自動將型別設定為 int,而修飾詞則為 public

18-型別預設為 int,存取修飾詞預設為 public,非隱藏

 

4. 很貼心的是,VS 在「型別」這個文字方塊中也提供了 Intellisense,

而且會將完整的型別名稱補上去~

19-編輯型別的文字方塊提供了 Intellisense 20-會自動編輯為完整類別名稱

 

5. 接著是「存取 (修飾詞)」,在這邊是以下拉選單的方式來呈現,

有 public、private、internal、protected、protected internal、預設等六個項目可選擇

21-存取修飾詞的部分為下拉選單

 

6. 接著是「摘要」,這邊比較特殊一點,是以另開視窗的方式來提供編輯,

點一下「摘要」文字方塊右側的「…」按鈕即可開啟編輯視窗

22-點選摘要 23-摘要的編輯視窗 24-稍微編輯了一下摘要

 

7. 最後是「隱藏」核取方塊,這個的作用很簡單,只是可以挑選要在設計檢視中看到哪些屬性,

被隱藏的就看不到囉~~~

25-隱藏1 25-隱藏2

 

8. 筆者在類別 Class1 跟類別 Class2 中各加了兩個屬性,ID 以及 Name,類別細節看起來會像下列這樣

26-加了 ID 以及 Name 兩個屬性 27-類別 Class2 也加了 ID 以及 Name 兩個屬性

 

9. 屬性的設定操作方式就介紹到此,這時候類別 Class1 跟類別 Class2 的 .cs 檔內容會是這個樣子,

我們可以看到每個屬性的 getter 都需要手動去 implement,

也就是不會自動使用下列的寫法:

public Guid ID
{
    get;
    set;
}

28-類別 Class1 的內容 29-類別 Class2 的內容

 

B. 欄位

1. 「欄位」的設計方式與屬性幾乎是一模一樣,因此不再多做介紹,

其中唯一不同的地方是「欄位」的「存取 (修飾詞)」預設為 private,

這是因為「封裝」裡的「資訊隱藏」概念……

30-欄位的存取修飾詞預設為 private

 

C. 方法

1. 「方法」的編輯方式與上述兩種成員的方式大同小異,

其中「型別」代表的是方法的回傳值,預設會是 void,

而「存取 (修飾詞)」預設是 public

31-方法的回傳型別預設為 void,存取修飾詞預設為 public 

 

2. 這個時候,類別 Class1 跟類別 Class2 的內容會像下列這樣,

可以看到「方法」一樣是需要 implement 的~~~

33-新增了欄位以及方法的類別 Class1 33-新增了欄位以及方法的類別 Class2

 

四、總結

印象中有人用這套來作正反向工程,

等到修練篇數滿了之後再來試作看看~~~

 

備註:工具終究只是工具,

最重要的還是要了解他背後的理論基礎,

才不會淪為小精靈一族~~~~~~ XDDD