ガイドライン: コミュニケーション図
トピック
コラボレーション図の名前をコミュニケーション図に変更しました。詳しくは、『UML 1.x と UML 2.0 の相違点 』を参照してください。
コミュニケーション図は、特定のユース・ケースの振る舞い、またはユース・ケースの一部の振る舞いを実行するために、オブジェクトがどのように相互作用するのかを示すのに使用されます。設計者は、コミュニケーション図とシーケンス図を併せて使用し、ユース・ケースの特定のイベント・フローを実行するオブジェクトのロールを定義して明確化します。
これは、クラスの責務とインターフェースを決定する際の主要な情報源となります。
シーケンス図とは異なり、コミュニケーション図はオブジェクト間の関係を表します。シーケンス図とコミュニケーション図は、類似した情報を表しますが、その表現方法が異なります。コミュニケーション図はオブジェクト間の関係を示し、特定のオブジェクトに与えるすべての影響の理解とプロシージャーの設計に向いています。
コミュニケーション図は、その形式のため、多くの場合分析作業に向いています (『作業: ユース・ケース分析』を参照)。特に、少ない数のオブジェクトの単純な相互作用を表現するのに向いています。オブジェクトとメッセージの数が増えるにつれて、コミュニケーション図は次第に読み取りにくくなります。さらに、シーケンス図では容易に注記として追加できるタイミング情報、意思決定ポイント、その他の非構造情報などの追加説明情報を示すのは困難です。
コミュニケーション図では、オブジェクトとアクター・インスタンスを表現でき、それらがどのように関係して相互作用するかを示すリンクとメッセージを付加できます。
このダイアグラムは、オブジェクトが相互にメッセージを送信して通信する方法という点から、参加するオブジェクトに何が起きるのかを表現します。ユース・ケースのイベント・フローを少し変えたものにもコミュニケーション図を作成できます。

「リサイクル・マシン・システム」のユース・ケース「預け入れ品目の検収」のイベント・フローの一部を表すコミュニケーション図。
オブジェクトは、オブジェクトの名前を示すオブジェクト記号と、下線付きのそのクラスをコロンで区切って表します。
オブジェクト名: クラス名
コミュニケーション図ではオブジェクトを次のように使用できます。
- オブジェクトのクラスは指定しなくてもかまいません。通常は、オブジェクトだけのコミュニケーション図を最初に作り、後からクラスを指定します。
- オブジェクトは名前がなくてもかまいませんが、同じクラスの異なるオブジェクトを区別するには、名前を付ける必要があります。
- オブジェクトのクラス自体も、相互作用でアクティブに参加するのであれば、コミュニケーション図に表現できます。
アクター・インスタンスは、通常、相互作用の呼び出し元としてコミュニケーション図に出てきます。同じダイアグラムに複数のアクター・インスタンスがある場合は、ダイアグラムの端の方に寄せておくようにします。
リンクは次のように定義されます。
- リンクとは、オブジェクト間の関係であり、その間でメッセージを送信することができます。
コミュニケーション図では、リンクは 2 つのオブジェクトを結ぶ実線として表します。
- あるオブジェクトから別のオブジェクトへの相互作用または誘導は、このリンクを通して行います。
- リンクは関連のインスタンスにもなりますが、匿名のままでもかまいません。その場合、関連は指定されていません。
- メッセージ・フローはリンクに付加されます。詳細は、『メッセージ』を参照してください。
メッセージは、作業が後続するという期待を伴う情報を運ぶ、オブジェクト間のコミュニケーションです。コミュニケーション図では、メッセージはラベル付きの矢印としてリンクの近くに示されます。つまり、リンクは、対象オブジェクトにメッセージを伝達するために、またはメッセージの提供を実装するために使用されます。矢印は、リンクに沿って対象オブジェクト (メッセージを受け取るオブジェクト) の方向を指し示します。矢印にはメッセージ名のラベルとそのパラメーターが付けられます。相互作用全体でのメッセージの順番を表すために、矢印にシーケンス番号のラベルが付けられる場合もあります。シーケンス番号は、コミュニケーション図ではよく使用されます。これは、シーケンス番号がメッセージの相対的順番を記述する唯一の方法だからです。
メッセージを割り当てないこともできます。この場合のメッセージ名は、メッセージ全体の意味を表す一時的な文字列です。メッセージの送信先オブジェクトの操作を指定することで、後からメッセージを割り当てることができます。その時点で、メッセージの名前は指定された操作に置き換わります。
|