Visual Studio 2010 自訂 UML Profiles - Part 2

Part 1 裡面,我們已經建立並安裝好自訂的 UML Profile,在這篇續集中,自然就是要說明如何在模型中套用自訂的 stereotypes 了。

練習:在模型中套用自訂的 stereotypes

安裝好自訂的 UML profile 之後,接著就可以在繪製模型時使用我們定義的 stereotypes,練習步驟如下:

(1) 新建立一個塑模專案:從 Visual Studio 主選單點 File > New > Project...,在左邊範本清單裡選擇 Modeling Projects,再到右邊點選 Modeling Project,如下圖:


將專案名稱指定為 NorthwindModel,然後按 OK 鈕。

(2) 在此塑模專案中加入一個類別圖和活動圖:Project > Add New Item,然後選擇 UML Class Diagram。檔案名稱可用預設值。

(3) 從 Solution Explorer 中雙擊此類別圖,以開啟模型編輯器,然後從 Toolbox 拉一個 Class 元素到類別圖中。接著查看該元素的 stereotypes 屬性,在該屬性的下拉清單裡,應該看不到 model、view、controller 這三個 stereotypes。這是因為我們尚未將 profile 套用至模型的緣故。

(4) 欲將 profile 套用至模型,可開啟 UML Model Explorer(主選單 > Architecture > Windows > UML Model Explorer),點選其中的模型或套件(此例即為 NorthwindModel),然後到屬性視窗中設定 Profiles 屬性。參考下圖:


你可以看到,Vsiual Studio 2010 Ultimate 已內建三個 profiles,一個是專為 C# 語言提供的 C# Profile,另外兩個則是支援 UML 標準 stereotypes 的 Standard Profile L2 和 Standard Profile L3。

(5) 將 profile 套用至模型後,再回頭修改剛才的類別圖,現在應該可以看到類別元素的 Stereotype 屬性的下拉清單裡面有多出 model、view、controller 這三個選項。


(6) 勾選其中一個 stereotype,例如 "model",你就可以在類別圖中看到套用後的視覺效果(在類別名稱上面顯示已套用的 stereotypes):


(7) 在專案中加入一個活動圖:Project > Add New Item,然後選擇 UML Activity Diagram,檔案名稱可用預設值。

(8) 編輯剛才新增的活動圖,從 Toolbox 拉一個動作節點(Action)到活動圖中,然後設定該節點的 Stereotypes 屬性。屬性下拉清單裡面應該可以看到「人工作業」:


由於我們在編寫 MyUmlProfile.profile 時,已經指定 model、view、controller 這三個 stereotypes 只能套用於類別元素,因此這裡的 Stereotypes 屬性下拉清單裡並不會出現。此外,你會發現,雖然有為動作節點「處理訂單」套用了「人工作業」stereotype,但是在活動圖中並沒有顯示這個 stereotype(類別圖則會顯示,參考上一個步驟的圖):


Profile 檔案的結構

現在讓我們回頭看一下 .profile 檔案的內容:


每個 .profile 檔案裡面都有一個 <profile> 根元素,此元素有一個 name 屬性(1),用來指定 profile 的名稱,而 displayName 屬性是顯示名稱。在 <profile> 之下包含三個區段:
  • <metaclasses>:列出這個檔案裡用到的 metaclass 清單(6)。
  • <stereotypes>:定義各個 stereotypes。
  • <propertyTypes>:列出 stereotype 區段中用到的屬性的型別。
此範例一共定義了四個 stereotypes,而且這裡都沒有定義新的屬性。這四個 stereotypes 分別是:
  • humanTask(2):指定用於活動圖的節點。
  • model(3):指定用於類別圖的類別元素。
  • view(4):指定用於類別圖的類別元素。
  • controller(5):指定用於類別圖的類別元素。
各個 stereotype 可套用於哪些元素,是由各 <stereotype> 區段中的 <metaclasses> 來指定,而每一種元素的類型則是由 <metaclassMoniker> 指定。例如:

<metaclassMoniker name="/MyUmlProfile/Microsoft.VisualStudio.Uml.Activities.IActivityNode" />

注意 name 的屬性值必須以 "/YourProfileName" 開始,而 YourProfileName 就是 <profile> 元素的 name 屬性值(此例即 "/MyUmlProfile")。

結語

在塑模比較複雜的應用程式時,UML 提供的基本表示法和 stereotypes 往往不敷使用,因此,如果知道如何使用自訂 profile 來擴充 UML 語意,開發人員也就掌握了更大的設計彈性。透過本文 Part 1 與 Part 2 的練習,你應該已經大致瞭解 UML profile 的用途,並且能夠用 Visual Studio 2010 Ultimate 建立自訂的 profile。限於篇幅,有些地方並未加以說明,例如:VSIX 編輯器中各個欄位的作用、為自訂的 stereotype 加上屬性、以及如何決定 stereotype 可套用的模型元素的類別名稱(.profile 中的 stereotypes\stereotype\metaclasses\metaclassMoniker 元素)等等。如欲獲得更多相關資訊,可參考文後列出的參考資料。

Copyright © 2012. Huan-Lin 學習筆記 - All Rights Reserved
Powered by Blogger
Template Design by Cool Blogger Tutorials
Published by Templates Doctor