UML API を使用したプログラミング
Visual Studio Ultimate の UML API を使用すると、UML モデルおよび図の生成、読み取り、および更新を行うためのコードを記述できます。
API については、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() |
モデルのそれぞれの要素は、図においてシェイプとして表すことができます。 場合によっては、それぞれのオブジェクトに対して新しいシェイプを生成できます。 これらのシェイプについては、移動、サイズ変更、色の設定、および折りたたみ/展開を行うことができます。 |
|
IModelStore IDiagramContext |
モデル ストアは、モデルを格納します。 図コンテキストは、現在の図およびストアへのアクセスを提供します。 |
|
ILinkedUndoContext |
一連の変更を 1 つのトランザクションにリンクできます。 |
|
IMenuCommand IGestureExtension ICommandExtension |
ダブルクリックと図へのドラッグによって起動されるコマンドを定義することで、図の機能を拡張できます。 |
|
ValidationContext |
モデルが指定された制約に準拠していることを保証するための検証規則を定義できます。 |
|
IElement、IShape |
要素を UML モデル エクスプローラーまたは UML 図から別の図またはアプリケーションにドラッグすると、要素は IDataObject としてシリアル化されます。 |
|
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.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 |