使用 UML API 進行程式設計
Visual Studio Ultimate 的 UML API 可讓您撰寫程式碼來建立、讀取和更新 UML 模型和圖表。
除了 API 參考頁面之外,下列主題也會說明 API。
主題 |
說明的範例類型和方法 |
說明的功能 |
---|---|---|
UML 項目及其屬性和關聯。 例如,IElement 及其子系,包括 IClass、IActivity、IUseCase、IComponent、IInteraction、IModel 和 IPackage |
在 Visual Studio Ultimate 中,UML 模型符合 UML 規格 2.1.2 版,該版本可從 UML 資源頁面 (英文) 取得。 每一個型別都是一個介面,此介面的名稱與 UML 型別相同且包含前置詞 "I"。 |
|
IPackage.CreateClass() IClass.CreateOperation() |
每一個項目型別都有建立其子項目的方法。 |
|
IShape、IDiagram IShape.Move() |
模型中的每一個項目都可做為圖表上的圖形表示。 在某些情況下,您可以為每一個物件建立新圖形。 您可以移動圖形、調整圖形大小、為圖形上色,以及摺疊或展開這些圖形。 |
|
IModelStore IDiagramContext |
「模型存放區」可儲存模型。 「圖表內容」可讓您存取目前的圖表和存放區。 |
|
ILinkedUndoContext |
您可以將一系列變更連結到一項異動中。 |
|
IMenuCommand IGestureExtension ICommandExtension |
您可以定義透過按兩下或拖曳至圖表的方式叫用的命令,藉此擴充圖表的功能。 |
|
ValidationContext |
您可以定義驗證規則,有助於確保模型符合指定的條件約束。 |
|
IElement、IShape |
從 [UML 模型總管] 或 UML 圖表將項目拖曳至另一個圖表或應用程式時,該項目會序列化為 IDataObject。 |
|
IInteraction、ILifeline、IMessage |
建立和更新互動圖表與使用其他圖表類型有些許差異。 |
|
ILayer、ILayerDiagram |
您可以撰寫程式碼以建立和編輯圖層圖表,也可以根據圖層圖表來驗證程式碼。 |
關於實作
UML 模型工具建置於 Domain-Specific Language Tools 上。 每個封裝與每個圖表都會以一個 Domain-Specific Language Tools 模型來表示,且規則與其他方法的集合會維護其間的一致性。
來自該平台的類型會顯示在可供您參考以撰寫 UML 擴充功能的某些組件上。 雖然您可以存取 Domain-Specific Language Tools API 以擴充 UML 工具,但您應注意下列事項:
您可能會發現有些明顯的簡單變更會導致不一致的情況與未預期的影響。
實作方式日後可能會有所變更,而使您透過 Domain-Specific Language Tools API 所做的修改不再適用。
API 組件
下表摘錄了可為 UML 工具提供擴充性的組件,與建議您使用的命名空間。
組件 |
命名空間 |
可供存取: |
---|---|---|
Microsoft.VisualStudio.Uml.Interfaces |
(全部) |
UML 型別 |
Microsoft.VisualStudio.ArchitectureTools.Extensibility |
||
Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation |
||
Microsoft.VisualStudio.Modeling.Sdk.10.0 |
||
(其他命名空間) |
建議僅供進階使用 |
|
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(其他命名空間) |
建議僅供進階使用 |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
|
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
System.Linq |