Visio のツールを使用して、クラスとオブジェクトを作成します。
重要: UML 静的構造図は Visio 2013 以降のバージョンでは使用できません。 詳細については、「 Visio の UML 図」を参照してください。
この記事の内容:
クラス、コンポーネント、その他の要素にインターフェイスを追加する
-
静的な構造体、コンポーネント、または配置の図で、ロリポップ型のインターフェイス図形 (線と円で表される) を図面ページにドラッグします。
-
円のないエンドポイントを、クラスコンポーネントやその他の要素の 接続ポイントに接着します。
-
[インターフェイス] 図形をダブルクリックして、名前、操作、その他のプロパティ値を追加します。
ヒント: また、クラスに似た四角形のインターフェイス図形を持つインターフェイスを表すこともできます。 インターフェイス操作の一覧を表示する場合は、この図形を使用します。
ヒント: インターフェイスに対して表示される図形の種類を変更するには、インターフェイス図形を右クリックし、[クラスのようなインターフェイスとして表示] または [ロリポップインターフェイスとして表示] をクリックします。
クラスとインターフェイスまたは他の要素間の実現化関係を示す
-
静的構造図で、クラス図形 (クラス、パラメーター化されたクラス、ユーティリティ、またはメタクラス) を右クリックし、[図形の表示オプション] をクリックして、[全般オプション] の [実現化リンク] をクリックします。
-
クラス図形の実現化リンクのコントロールハンドル をインターフェイス、クラス、またはその他の要素の 接続ポイントに接着します。
分類子に受信を追加する
-
受信を追加する分類子を表す図形をダブルクリックし、[受信] カテゴリをクリックします。
-
[新規] をクリックして、新しい受信を追加します。
-
[受信] カテゴリをクリックします。 受信列に受信の名前を入力します。 [シグナル] 列で、受信によって用意された分類子が反応するシグナルを選択し、必要なその他のプロパティ値を選択します。
注: シグナル要素は、シグナルリストで利用できるように、モデル内に存在する必要があります。
-
[例外] カテゴリで、受信によって生成できる例外 (存在する場合) を選びます。
注: シグナルリストで利用できるようにするには、モデルに例外要素が存在している必要があります。
-
必要に応じて制約やタグ付きの値を追加し、[ OK ] をクリックして、図形の [ UML プロパティ] ダイアログボックスを閉じます。
クラスにテンプレートパラメーターを追加する
-
パラメーターを追加する要素を表す図形 (パラメーター化されたクラス、クラス、ユーティリティ、メタクラス、バインド要素) をダブルクリックし、[テンプレートのパラメーター] をクリックします。
-
[新規] をクリックして、新しいパラメーターを追加します。
-
[テンプレートパラメーター] ボックスの一覧で、次の操作を行います。
-
既存のパラメーターを編集するには、[テンプレートのパラメーター ] 列に新しい名前を入力します。
-
種類を編集するには、[種類] フィールドをクリックし、矢印をクリックして、一覧から種類を選びます。
-
ドキュメントを追加するには、[ドキュメント] ボックスに入力します。
-
-
[ OK ] をクリックして変更を確定し、[ UML クラスプロパティ] ダイアログボックスを閉じます。
ヒント: クラス図形にパラメーターを追加することで、任意のクラスをパラメーター化されたクラスにすることができます。 クラス図形のパラメーターを非表示にするには、図形を右クリックし、[図形の表示オプション] をクリックして、[抑制] で [テンプレートパラメーター] を選択します。
クラス、データ型、またはインターフェイスに操作を追加する
-
操作を追加する要素を表す図形 (クラス、データ型、またはインターフェイス) をダブルクリックし、左側の [カテゴリ] リストで [操作] をクリックします。
-
[新規] をクリックして、新しい操作を追加します。
-
[プロパティ] を選択して、アイテムのプロパティを編集します。
プロパティ
説明
ステレオタイプ
ボックスの一覧から必要なステレオタイプを選びます。 使用するステレオタイプが一覧にない場合は、[ UML ] メニューの [ステレオタイプ] をクリックして、新しいステレオタイプを追加したり、既存のステレオタイプを編集したりすることができます。
接頭辞
操作の戻り値の種類をさらに識別するために使用する、言語固有の注釈テキストを入力します。
虚数単位
操作の戻り値の種類をさらに識別するために使用する、言語固有の注釈テキストを入力します。
戻り値の型
操作によって返される値の実装の種類を選びます。 目的の データ型 が表示されていない場合は、ツリービューでデータ型パッケージを右クリックし、[新規作成] をポイントして、[データ型] をクリックするか、新しいクラスを作成します。
式
[プレフィックス]、[戻り値の型]、[サフィックス] に追加したデータの結果が表示されます。
明確化
操作に適用される 可視性 (公開、プライベート、または保護されたもの) を選びます。 Public は、どのクラスでも操作が公開されていることを意味します。 [保護] は、クラスとそのサブクラス内で操作を利用できることを意味します。 Private は、この操作をクラス内でのみ使用できることを意味します。
OwnerScope
クラスを使って作成されたオブジェクトのみに 操作 が適用される場合は、[所有者スコープ] の [インスタンス] を選びます。 クラス自体に操作を適用できる場合は、[分類子] を選びます。
IsPolymorphic
操作 の実装をサブクラスでオーバーライドできるかどうかを選択します。また、クラスでメソッドを定義することもできます。 操作を実現するメソッドがすべての子孫によって変更されない場合は、オフのままにしておきます。
IsQuery
操作 のアプリケーションが要素の状態を変更しない場合に選択します。
通話の同時実行
Concurrency は、同じパッシブインスタンス (たとえば、IsActive = false である分類子から発生したインスタンス) への同時呼び出しのセマンティクスを指定します。 順次は、インスタンスへの1回の呼び出しのみを一度に未処理にすることができます。 [保護] は、同時実行スレッドからの複数の呼び出しが同時に発生する可能性があることを意味しますが、最初の操作が完了するまで他のユーザーがブロックすることができます。 同時実行とは、同時実行スレッドからの複数の呼び出しが同時に発生する可能性があることを意味します。
[ OK ] をクリックして、これらの設定を保存します。
-
アイテムのメソッドを編集するために、必要に応じてメソッドを選択します。
プロパティ
説明
クラス名
UML モデル図テンプレートによって、クラス名に関する詳細情報が自動的に提供されます。 この情報を編集することはできません。
操作名
この特定のクラスのメソッド本体を持つことができるすべての操作を表示します。 これには、現在のクラスのすべての操作、基本クラスのポリモーフィックな操作、クラスによって実装されるインターフェイスからの操作が含まれます。
メソッドを指定する操作を選びます。
Has メソッド
操作に対して実現するメソッドが含まれているかどうかを選択します。
Language
メソッドの作成に使用する言語を選びます。
メソッドの本文
メソッドの本文を入力します。
たとえば、単純な C++ メソッドの本文は、次のようになります。
{ if (x == 0) { RunCommand(); ProcessResults(); } }
テンプレートのパラメーターをクラスにバインドする
-
[ UML 静的構造] ステンシルから図面ページに、バインドするパラメーターを持つ [パラメタ化クラス] 図形の近くにある [境界要素] 図形をドラッグします。
-
[バインディング] 図形を図面ページにドラッグし、矢印がない端点をバインドされた要素の 接続ポイントに接着します。
-
矢印が付いたバインディングエンドポイントを、パラメタ化クラス図形の接続ポイントに接着します。
-
[バインド] 図形をダブルクリックして、[バインドされた引数] をクリックします。
-
[境界引数] で、型をバインドするパラメーター (パラメーターに型が指定されていない場合) を選択するか、値を選択します (パラメーターの型が指定されている場合)。 [プロパティ] をクリックし、値を入力するか入力して、[ OK]をクリックします。
-
[ OK ] をクリックして、[ UML バインドのプロパティ] ダイアログボックスを閉じます。
パラメタ化クラスに関連付けられた属性と操作が、バインドされた要素に渡されます。 属性型または操作の戻り値としてクラスに割り当てた、バインドされていないパラメーター (型が指定されていない場合) は、上記の手順5で指定した型によってバインド要素内で置き換えられます。
クラスのインスタンスとしてオブジェクトを作成する
-
静的構造図で、クラスの図形を図面ページにドラッグし、オブジェクトをインスタンスとして使用するクラスを表します。
-
省略 クラスの図形をダブルクリックして、[ UML クラスプロパティ] ダイアログボックスを開きます。 [属性] をクリックし、[新規] をクリックして、クラスに属性を追加します。 [OK] をクリックし、[OK] をもう一度クリックします。
-
[オブジェクト] 図形を図面ページにドラッグし、図形をダブルクリックします。
-
[ UML オブジェクトプロパティ] ダイアログボックスで、[オブジェクト] をクリックし、オブジェクトの名前を入力します。 [クラス] で、オブジェクトをインスタンスにするクラスを選びます。
-
[属性値] をクリックし、インスタンス値を追加する属性を選択して、[プロパティ] をクリックします。 属性の値を入力します。
-
[属性リンク] をクリックし、必要なその他のプロパティ値を追加して、[ OK]をクリックします。
-
インスタンス値を追加するすべての属性について、手順5と6を繰り返し、[ OK]をクリックします。
クラスからテンプレートパラメーターを削除する
-
削除するパラメーターを持つ要素を表す図形 (パラメーター化されたクラス、クラス、ユーティリティ、メタクラス、バインド要素) をダブルクリックし、[テンプレートのパラメーター] をクリックします。
-
削除するテンプレートパラメーターを選択し、[削除] をクリックして、[ OK]をクリックします。
クラスのテンプレートパラメーターを編集する
-
編集するパラメーターを持つ要素 (パラメーター化されたクラス、クラス、ユーティリティ、メタクラス、バインド要素) をダブルクリックし、[テンプレートのパラメーター] をクリックします。
-
[テンプレートのパラメーター] ボックスの一覧で、編集する各パラメーターに対して [種類] フィールドをクリックします。 次に、矢印をクリックして、リストから種類を選択します。
注: 属性に型が指定されていないパラメーターや、戻り値の型としての操作に割り当てることができます。
-
[テンプレートのパラメーター] ボックスの一覧で、編集するパラメーターごとに新しい名前を入力します。
-
[ドキュメント] ボックスに、必要なドキュメントを入力します。
-
[新規作成] をクリックして別のパラメーターを追加するか (手順 3 ~ 5 を実行します)、[ OK ] をクリックして [ UML クラスプロパティ] ダイアログボックスを閉じます。
クラスの [属性] セクションと [操作] セクションを非表示にする
-
クラスの図形を右クリックし、[図形の表示オプション] をクリックします。
-
[ UML 図形の表示オプション] ダイアログボックスの[抑制] で、 [属性] を選択して [属性] セクションを非表示にし、[操作] を選択して [操作] セクションを非表示にします。
ヒント: 属性と操作のセクションをもう一度表示するには、図形を右クリックし、[図形の表示オプション] をクリックして、[属性と操作] をクリアします。
パッケージ内のクラスが参照できることを示す
-
パッケージ図で、[依存性] 図形を図面ページにドラッグします。
-
依存関係点の矢印がない場合は、別のパッケージのクラスを参照するパッケージの接続ポイントに接着します。
-
参照されるターゲットクラスが含まれているパッケージの接続ポイント に、依存関係点を矢印で接着します。
-
[依存性] 図形をダブルクリックして、[ UML 依存関係プロパティ] ダイアログボックスを開きます。
-
[名前] に、依存関係の名前を入力します。 [ステレオタイプ] で、[インポート] を選び、[ OK]をクリックします。
注: <<のインポート>> の依存関係によってパッケージに接続すると、クラスを参照できることのみが示されます。 ターゲットクラスに適切な可視性を設定する必要があります。
実装クラスによる型の実装の表示
-
静的構造図で、[クラス] 図形を図面ページにドラッグします。 図形をダブルクリックします。
-
[ UML クラスプロパティ] ダイアログボックスで、[クラス] をクリックし、クラスの名前を入力します。 [ステレオタイプ] で [種類] を選び、[ OK]をクリックします。
-
2つ目のクラスの図形を図面ページにドラッグします。 図形をダブルクリックします。
-
[ UML クラスプロパティ] ダイアログボックスで、[クラス] をクリックし、クラスの名前を入力します。 [ステレオタイプ] で [ Implementation Class] を選び、[ OK]をクリックします。
-
実装クラスを右クリックし、[図形の表示オプション] をクリックします。 [ UML 図形の表示オプション] ダイアログボックスの[全般オプション] で、[実現化リンク] を選択し、[ OK]をクリックします。
-
実装クラス図形のコントロールハンドル をドラッグして、実現化関係を表すコネクタを作成します。
-
実現化コネクタの矢印の端点を、型を表すクラス図形の 接続ポイントに接着します。