UML API を使用したプログラミング

Visual Studio Ultimate の UML API を使用すると、UML モデルおよび図の生成、読み取り、および更新を行うためのコードを記述できます。

API については、API リファレンス ページのほか、次のトピックで説明されています。

トピック

説明されている型およびメソッドの例

説明されている機能

方法: UML API を使用して関係をナビゲートする

UML 要素とそのプロパティおよび関連。 たとえば、IElement とその子孫である IClass、IActivity、IUseCase、IComponent、IInteraction、IModel、IPackage。

Visual Studio Ultimate では、UML モデルは、UML リソース ページから入手できる UML 仕様バージョン 2.1.2 に準拠しています。 それぞれの型は、プレフィックスとして "I" が付けられた、UML 型と同じ名前のインターフェイスです。

方法: 要素および関係を生成する

IPackage.CreateClass()

IClass.CreateOperation()

それぞれの要素型は、子を生成するためのメソッドを持ちます。

方法: 図にモデルを表示する

IShape、IDiagram

IShape.Move()

モデルのそれぞれの要素は、図においてシェイプとして表すことができます。 場合によっては、それぞれのオブジェクトに対して新しいシェイプを生成できます。 これらのシェイプについては、移動、サイズ変更、色の設定、および折りたたみ/展開を行うことができます。

方法: UML モデル内を移動する

IModelStore

IDiagramContext

モデル ストアは、モデルを格納します。

図コンテキストは、現在の図およびストアへのアクセスを提供します。

方法: トランザクションを使用してモデルの更新をリンクする

ILinkedUndoContext

一連の変更を 1 つのトランザクションにリンクできます。

方法: モデリング図にメニュー コマンドを定義する

IMenuCommand

IGestureExtension

ICommandExtension

ダブルクリックと図へのドラッグによって起動されるコマンドを定義することで、図の機能を拡張できます。

方法: UML モデルの検証制約を定義する

ValidationContext

モデルが指定された制約に準拠していることを保証するための検証規則を定義できます。

方法: IDataObject から UML モデル要素を取得する

IElement、IShape

要素を UML モデル エクスプローラーまたは UML 図から別の図またはアプリケーションにドラッグすると、要素は IDataObject としてシリアル化されます。

方法: UML API を使用してシーケンス図を編集する

IInteraction、ILifeline、IMessage

相互作用図の生成と更新は、他の種類の図とはその操作方法が異なります。

レイヤー図に関する拡張機能の作成

ILayer、ILayerDiagram

レイヤー図を生成および編集するコードを記述できます。また、レイヤー図と照らし合わせてプログラム コードを検証することもできます。

実装について

UML モデリング ツールはドメイン固有言語ツール上に構築されています。 それぞれのパッケージとそれぞれの図はドメイン固有言語ツールモデルによって表されており、ルールとその他のメソッドのコレクションによって、パッケージと図の間の一貫性を保ちます。

そのプラットフォームの型は、UML 拡張機能を記述するために参照するアセンブリの一部で表示されます。 ドメイン固有言語ツール API にアクセスすると、UML ツールへの拡張機能も作成できますが、次の事項を考慮に入れる必要があります。

  • 単純と思われる変更によって一貫性が失われ、予測できない結果を引き起こすことがあります。

  • 実装は将来的に変更されることがあるので、ドメイン固有言語ツール API を使用して行った調整が有効でなくなる場合があります。

API アセンブリ

この表は、UML ツールに機能拡張をもたらすアセンブリと、推奨される名前空間を示します。

アセンブリ

名前空間

アクセス先

Microsoft.VisualStudio.Uml.Interfaces

(すべて)

UML の種類

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml

作成方法

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

図と図形

Microsoft.VisualStudio.ArchitectureTools.Extensibility

モデリング プロジェクト

Microsoft.VisualStudio.Modeling.Sdk.10.0

Microsoft.VisualStudio.Modeling.ExtensionEnablement

メニュー コマンド拡張機能

リンクされた Undo トランザクション

Microsoft.VisualStudio.Modeling.Validation

検証

(その他の名前空間)

高度な用途向け

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.WorkItemTracking.Client

作業項目とフィールド

Microsoft.TeamFoundation.Client

Microsoft.TeamFoundation.Client

作業項目とフィールド

System.ComponentModel.Composition

System.ComponentModel.Composition

MEF コンポーネントのエクスポートとインポート

System.Linq

System.Linq

コレクションの簡単な操作 (特に関係を処理する場合)

参照

その他の技術情報

UML モデルと図の拡張

UML モデリング機能拡張の API リファレンス