UML モデルと図の拡張

ここでは、Visual Studio Ultimate の UML モデリング ツールを拡張するためのいくつかの方法について説明します。

次の例のシナリオでは、Fabrikam は空港の荷物取り扱いシステムを設計およびインストールします。 ある空港のプロジェクトと別の空港のプロジェクトの間には、基本的な設備およびそれを制御するソフトウェアに関して多くの類似点があります。 ただし、コンベヤ ベルト、チェックイン デスク、保管庫、その他の荷物取り扱い装置の構成など、大きく異なる点もいくつかあります。

新しいプロジェクトを開始するにあたり、Fabrikam のチームは、顧客との間でこれらの要求についての議論を円滑にするために UML モデルを生成します。 チームは、アクティビティ図を使用して荷物の流れを表すことにしました。この図において、オブジェクト ノードは各設備を表します。 この UML モデルは、システムのコードを直接表しません。

Fabrikam のツール チームは、一連の拡張機能を追加して開発チームを支援しています。 以降のセクションでは、定義できるさまざまな拡張機能について説明します。 これらの手法のいくつかを 1 つの Visual Studio 拡張機能に組み合わせることができます。

プロファイル

プロファイルを使用すると、UML 要素のステレオタイプおよび追加のプロパティを定義できます。

Fabrikam のツール開発者は、アクティビティ図のオブジェクト ノードにステレオタイプ (たとえば、«コンベヤ ベルト»、«チェックイン デスク») を定義します。 チーム メンバーがアクティビティ図を使用して荷物取り扱いスキームを生成する場合、ステレオタイプを設定して、各ノードが表す設備の種類を示すことができます。 ツール開発者は、いくつかのステレオタイプに対して追加のプロパティを定義して、ユーザーがコンベヤ ベルトの能力やチェックイン デスクの左右の区別などの値を記録できるようにします。

詳細については、「方法: プロファイルを定義して UML を拡張する」を参照してください。

カスタム ツールボックス項目

カスタム ツールボックス項目は、図に定義されたプロトタイプから要素または要素グループを生成します。 たとえば、特定の色またはステレオタイプのユース ケースを生成するツールや、設計パターンを表すクラスおよび関連のグループを生成できます。 これらのツールボックス項目を Visual Studio 拡張機能に追加し、他のユーザーに配布できます。

詳細については、「方法: カスタム モデリング ツールボックス項目を定義する」を参照してください。

検証

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

Fabrikam のツール開発者は、荷物取り扱いモデルでチーム メンバーが単純なミスを犯すことがないように規則を定義します。 たとえば、チェックイン デスクを保管庫に直接接続することはできません。 これらの間には、少なくともコンベヤ ベルトが存在する必要があります。

詳細については、「方法: UML モデルの検証制約を定義する」を参照してください。

メニュー コマンド

UML 図内の要素を右クリックすることでユーザーが呼び出すことができるコマンドを定義します。 これらのコマンドを使用して、モデルおよび図を更新したり、Visual Studio でその他の操作を実行したりできます。

Fabrikam では、チェックイン デスクを生成した後で選択したコンベヤ ベルトに接続する"、"会社のレイアウト規則に従って図を配置し直す" などのよく実行される操作を自動化するためのメニュー コマンドを定義します。

方法: モデリング図にメニュー コマンドを定義する」を参照してください。

ジェスチャ

ユーザーが図の要素をダブルクリックしたときや、要素を図または図内の要素にドラッグしたときに起動されるコマンドを定義できます。 他の UML 図、Visual Studio の他の部分、または他のアプリケーションや Windows エクスプローラーからドラッグされた項目を処理するコマンドを定義できます。

Fabrikam のチーム メンバーは、仕様などのファイルを、Windows デスクトップからドラッグすることで、任意のモデル要素に関連付けることができます。 ツール開発者は、任意の要素にファイル パス プロパティを提供するステレオタイプと、ファイルが要素上にドロップされたときにステレオタイプとファイル パスを設定するジェスチャを定義しました。

詳細については、「方法: モデリング図にドロップおよびダブルクリック ハンドラーを定義する」を参照してください。

変更への対応

モデル内の変更が、ユーザーによる操作によってもたらされたものか、他のプログラム コードによってもたらされたものであるかにかかわらず、変更に対応するコードを作成できます。

Fabrikam の開発者は、要素の色をそのステレオタイプに応じて自動的に設定するコードを作成します。 これにより、ユーザーはモデル内のさまざまな要素の役割を簡単に区別できるようになります。

詳細については、「方法: UML モデル内で変更に応答する」を参照してください。

モデル バス

モデル バスを使用すると、別の図または別の Visual Studio 拡張機能から図またはモデルにアクセスできます。 特に、複数のモデルに情報を伝達することができるため、複数の人が同時に結合モデルに対して作業できます。

Fabrikam では、アクティビティ図上の要素を使用して、荷物取り扱い設備を表します。 設備の各項目については、別の図により詳細な仕様を記述できます。この図は、別のモデルに属することができます。 荷物フロー図の検証制約では、他の図から設備の該当するプロパティを取得します。 他の図への参照は、ステレオタイプに定義された追加のプロパティに格納されます。

詳細については、「方法: UML モデルを他のモデルおよびツールと統合する」を参照してください。

生成

1 つのモデルから、プログラム コード、スクリプト、構成、ドキュメント、新しいモデル、またはその他の成果物を生成できます。

Fabrikam が設計する荷物取り扱いシステムのプログラム コードの多くは、複数のプロジェクトで共通しています。 主な変動要素は、空港における荷物の流れです。 設計チームが初期のいくつかのプロジェクトを経験した後、ツール開発者は、荷物フロー モデルから可変のプログラム コードの大部分およびその他のファイル (ユーザー ドキュメントなど) を生成するテンプレートを生成します。 これにより、新しいプロジェクトの開発時間が大幅に短縮され、エラー発生率も引き下げられます。

詳細については、「方法: UML モデルからファイルを生成する」を参照してください。

Team Foundation Server 統合

作業項目をモデル要素にリンクし、リンクされた項目にプログラムでアクセスできます。

Fabrikam のツール開発者は、それぞれの空港プロジェクトの作業スケジュールを生成するツールを作成します。 スケジュールされた作業項目は、モデル要素にリンクされます。

詳細については、「方法: 作業項目リンク ハンドラーを定義する」を参照してください。

モデルを更新するツール

UML モデルの読み込みを行うスタンドアロン アプリケーションおよび Visual Studio 拡張機能を作成できます。

Fabrikam の開発者は、モデルを読み取ってモデルの各要素での作業の進捗状況のレポートを生成するツールを作成します。

詳細については、「方法: プログラム コードで UML モデルを読み取る」を参照してください。

ドメイン固有の言語

特定の種類のモデルを頻繁に使用する場合は、ドメイン固有の言語を生成しておくと便利です。 これによって UML モデルよりも厳密にビジネス ニーズに対応できますが、構築および保持に多くの工数が必要です。 詳細については、「Visualization and Modeling SDK - ドメイン固有言語」を参照してください。

要件

外部リソース

カテゴリ

リンク

ビデオ

ビデオへのリンク

ビデオへのリンク

フォーラム

ブログ

Visual Studio のアーキテクチャ、視覚化、およびモデリング ツール ブログ

技術文書およびジャーナル

The Architecture Journal - Issue 23: Architecture Modeling and Processes (アーキテクチャ ジャーナル - 第 23 号: アーキテクチャのモデリングとプロセス)

その他のサイト

MSDN アーキテクチャ センター

参照

概念

ソフトウェア設計のためのモデルの開発

その他の技術情報

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