コミュニケーション図とは?書き方やシーケンス図との違いを解説
uml-communication-diagram-hero-xxl-sub-use-case

コミュニケーション図とは?書き方やシーケンス図との違いを解説

uml-communication-diagram-hero-xxl-sub-use-case

システムアーキテクチャは、すべてのアプリケーションやソフトウェアのプロセス、 アクション、相互作用を支えるための中心的な要素です。

UML(統一モデリング言語)は、このアーキテクチャを設計するための設計図として活用され、 エンジニアだけではなく、プロジェクトに参加しているすべての関係者の共通言語としても 役立ちます。

その中でコミュニケーション図は、システム内のオブジェクトやアクター間のメッセージ交換を 視覚化することに役立つ図です。

この図は、ソフトウェア設計の初期段階で、オブジェクトがどのように相互作用するかを 詳細に説明するためによく使用されます。

この記事では、そんなコミュニケーション図についてやシーケンス図との違い、書き方に ついてわかりやすく解説しています。

記事の最後にはコミュニケーション図の作成におすすめのオンラインツールやテンプレートに ついてもご紹介しているので、ぜひご確認ください。

▼ 関連ページ UMLとは?図の種類から書き方の基本をわかりやすく解説

コミュニケーション図とは?

コミュニケーション図は、システムやプロセス機能内のオブジェクトやアクター間で 送信されるメッセージの詳細を視覚的に表現するための図の1つです。UMLバージョン2.5.1 では、シーケンス図やインタラクション概要図と並んで「振る舞い図の」の一つとして 分類されています。

ここではATMを例にコミュニケーション図がどのようにプロセスを表現できるか見てみましょう。

  1. ユーザー(アクター)は、カードを挿入し、パスワードを入力してATMにメッセージを 送信します。

  2. 次にATMは銀行にメッセージを送り、利用者の口座情報を参照します。

  3. 最後に、銀行はATMに承認メッセージを送り、ユーザーはお金を受け取ることができます。

コミュニケーション図を使うことで現金を引き出すためのすべてのメッセージやそのプロセスの 方向、優先順位、依存関係を示すための小数点以下の順序番号を視覚的に表現することができ ます。

また、この図では長方形で表されたすべてのオブジェクトは、直線と矢印で結ばれています。

▼ 関連ページ UMLガイド | インタラクション概要図についてわかりやすく解説

コミュニケーション図の目的

コミュニケーション図の主な目的は、ユースケースで指定されたことをシステムに実行させる ために、オブジェクトが互いに(あるいは自分自身に)送信するメッセージを示すことです。

オブジェクトとアクター間の適切なメッセージの順序をマッピングすることで、開発者や プログラマーは工数を最適化でき、さらに初期段階でのミスを避けることができます。

この図は、将来の変更、更新、再設計のための文書としても役立ちます。

コミュニケーション図の使用事例

通常、コミュニケーション図は、システム開発の前に作成され、何がどのように構築される 必要があるかをマッピングするためのツールです。オブジェクト間のメッセージや相互作用を 図にする目的は、ユースケースや機能で述べられた機能や振る舞いを実現することです。

より具体的に言うと、メッセージや情報の順序がこの図では記述されます。

コミュニケーション図を使うことで、オブジェクト間、またはユーザーとオブジェクト間の メッセージの流れ(およびその順序)をモデリングすることができます。

コミュニケーション図を使うメリット

コミュニケーション図は、効果的なシステム図の作成、開発、システムアーキテクチャーの 設計においてさまざまなメリットをもたらしてくれます。

以下でこれらのメリットについて見ていきましょう。

情報をわかりやすく表現できる

コミュニケーション図を使うことで、システム内の各オブジェクトやアクターの役割を明確に することができます。

順序立てて情報を表示できる

コミュニケーション図は、オブジェクト間のメッセージの順序や流れ(どのような順序で、 どのメッセージが他のオブジェクトに依存しているかなど)を理解するために不可欠となる 図です。

複雑なシステムを可視化

コミュニケーション図は、複数のオブジェクトが関係する複雑なプロセスを、明確な表記に よって視覚化するのに役立ちます。

イテレーションに役立つ

コミュニケーション図を使用すれば、システムの新しい機能やシナリオを計画しやすくなります。

理想的には、システム内の図が定期的に更新され、新機能の視覚化とプロトタイピングが シンプルかつ直感的に行えることです。

コミュニケーション図とシーケンス図の違い

シーケンス図とコミュニケーション図は、どちらも「振る舞い図」として分類される図です。

この図では、オブジェクトやアクター間で交換されるメッセージを通じて、システムや プログラムがどのように動作するかを視覚化します。

シーケンス図とコミュニケーション図の違いは、シーケンス図が指定された時間にわたって 展開するプロセスを示すのに対し、同じシステムのコミュニケーション図は、交換された メッセージの概要として、関係するすべてのオブジェクトを1つのスペースで表すことです。

コミュニケーション図では、特定のタスク、機能、ユースケースに参加するすべての オブジェクト間の関係の概要を簡単に見ることができます。

シーケンス図では、各メッセージ交換のタイミングと、1 つのメッセージ交換がどのように 別のメッセージ交換につながるかを見ることができます。

▼ 関連ページ シーケンス図とは?書き方のポイントや構成要素・記号を例を使って解説

コミュニケーション図の書き方

コミュニケーション図の作成は、適切な構成要素があれば簡単に進めることができます。

ここではいくつかのステップを通してコミュニケーション図の書き方をご紹介します。

Step 1:モデリングする機能を決める

コミュニケーション図がモデル化する機能やシステムの概要を書き出し、必要となるアクター、 オブジェクト、メッセージをリストアップしていきます。

例えば、ユーザーが ATM を使って請求書を支払うプロセスを視覚化するには、別のコミュニ ケーション図が必要になります。

しかし、可視化するアクションやメッセージが増えれば増えるほど、図が複雑になっていく ので注意してするようにしましょう。

決まったアクションごとにコミュニケーション図を用意することがベストです。

Step 2:オブジェクトとアクターに対して接続された記号や図形を追加する

図上にひし形図形を追加します。

各オブジェクトに、長方形を1つ追加し、名前を付けます。

図上に、互いの間にスペースを空けて配置します。

アクターがいる場合は、アクターを棒人間として追加します。

アクターは長方形で示すこともできますが、棒状の方が視覚的にわかりやすいでしょう。

アクターとオブジェクトを線で結ぶことで、メッセージのシーケンスを視覚化し始めます。

直線は形と形の間につながりがあることを示し、メッセージの方向を示す矢印はその後に来ます。

Step 3:矢印を使ってオブジェクト間のメッセージを視覚化する

オブジェクトを結ぶ線の横に矢印を置きましょう。

各矢印は1つのメッセージを表し、矢印の方向は、どのオブジェクトがメッセージを送信し、 どのオブジェクトがメッセージを受信するかを視覚化します。

ここでは図の全体を通して、同じフォーマットの矢印を使用するようにしましょう。

オブジェクトの中には、直接つながっていない、シーケンスの別の位置にある他のオブジェクト と通信するものもあリマス。

矢印は、それぞれのオブジェクトに届くようにまっすぐである必要はありません。

行と行が近すぎると読みにくくなるので、行、矢印、オブジェクト、メッセージテキストの 間隔をバランスよくとるようにしましょう。

Step 4:矢印に数字と文字のラベルを付ける

各矢印にメッセージIDとシーケンス番号を追加し、メッセージの内容と順序を示します。

メッセージ番号のシーケンスとラベリングは、UMLのベストプラクティスに従い、業界の フォントとサイズにこだわります。

これらの番号は、システム内でメッセージングがどのように機能するかを正確に理解するための 鍵となります。

Step 5:コミュニケーション図の最終確認と共有

コミュニケーションズ上のオブジェクトを整理・調整し、メッセージのやり取りが合理的で あり、誰でも直感的に理解できるように編集しましょう。

ここでは、オブジェクトのタイプやメッセージのシーケンスを区別するために色を使用します。

コミュニケーション図をシーケンス図に落とし込んで、シーケンスに欠陥がある場合は、 コミュニケーション図に戻り、番号の順序や矢印の方向を調整します。

プロジェクト関係者やクライアントにもフィードバックを求めて、システムに関するコミュニ ケーション図をレビューし図を完成させましょう。

メッセージの流れを一緒にたどり、すべてが満足のいくものであることを確認し、アクションの 完了を視覚化します。

UMLコミュニケーション図で使用される記法と記号

他のUML図と同様、コミュニケーション図は、システムの振る舞いを視覚化する記法と記号で 構成されます。

この場合、記法はメッセージのやり取りとそのプロセスにおけるシーケンスに重点を置きます。

以下でこれらの記法と記号を見ていきましょう。

アクター

「アクター」とは、システムと相互作用するユーザーやエンティティのことを指し、ユーザー、 組織、イベントトリガー、または他のシステムなどで構成されています。

コミュニケーション図では、アクターは、人であれば棒の形、ユーザーであれば別の形で 視覚化されます。

通常、UML 図では、アクターは図の左上に記入され、一連のメッセージの開始点を示します。

アクターには、図内のメッセージIDと同じフォントタイプを使用してラベルを付けます。

▼ 関連ページ ER 図とは?記号の読み方から意味、作り方を解説

オブジェクトと図形

「オブジェクト」は通常、長方形で表されます。

1つのスタイルを選択し、図の全体で共通したスタイルで使用するようにしましょう。

オブジェクトは、特性やグループ、直接シーケンス、依存関係によって色分けされます。

接続線&矢印

コミュニケーション図の「線と矢印」は、接続と関係を表す表記法です。

直線はオブジェクトどうしを結びつけ、その関係を視覚化します。

オブジェクトが線で結ばれていない場合、それらは互いに独立した個別のものと見なされます。

矢印は、オブジェクト間で中継されるメッセージの方向を表します。

視覚的な混乱を避けるため、ダイアグラム全体で同じ矢印のスタイルを使用します。

また、線と矢印の間隔を同じにして、数字とメッセージに十分なスペースを確保しましょう。

接続された2つのオブジェクトが互いにメッセージを送信する場合、各矢印と表記を接続線の 両側に配置します。

数字

「数字」の表記は、オブジェクトとアクター間のメッセージの順序を詳細に示し、親と従属を 示すために小数を使用してメッセージをグループ化するために使用されます。

メッセージは常に 1 から始まり、2、3 と続きます。グループ 1 のメッセージには、1.1、1.2、 1.3 というように番号を付けます。

コミュニケーション図をシーケンス図に変換する場合、これらの数字は、オブジェクトを どのように配置し、時間に基づいてシーケンスを視覚化するようにレイアウトするかの設計図 として機能します。

メッセージ

メッセージはUMLの大文字小文字のガイドラインに従い、キャメルケースを使用します。

最初の単語を除く各単語は大文字で、単語と単語の間にスペースは入れません。

最初に順序とシーケンス番号を付け、次にコロンを付け、最後にメッセージを短いIDまたは 省略名で記述し、次のように、「1.1 : inputPin」と記入します。

メッセージを書くには「Arial」や「Open Sans」のようなシンプルなサンソンフォントを 使います。

図全体を通して同じフォントサイズを維持し、色を使用する場合は背景の上にテキストが 読みやすくなるようにします。

コミュニケーション図の作成には Miro がおすすめ

オンラインワークスペースである Miro では便利な作図ツールや自動ダイアグラム作成機能、 AI 作図機能「Miro アシスト」、UMLシェイプパックなどのツールを使ってシーケンス図の作成を 効率化できます。

チームやクライアントと離れた場所で業務をしていても、多彩な共有機能を備えたオンライン スペースを通していつでもリアルタイムで図を編集・共有可能です。

Miro を使ってチームでのシーケンス図の作成を実現しましょう。

以下のリンクから製品ページをご覧いただけます。

Miro の作図ツールMiro のUML図作成ツールMiro のコミュニケーション図作成ツールMiro のコミュニケーション図テンプレートMiro の作図テンプレートMiro のPlantUML作成アプリMiro のMermaid作図アプリ

新しい働き方を Miro で実現しましょう!

Miro はチームで課題を解決し、新しいアイデアを発見するための「ワークスペース」です。
accenture.svgbumble.svgdelloite.svgdocusign.svgcontentful.svgasos.svgpepsico.svghanes.svghewlett packard.svgdropbox.svgmacys.svgliberty mutual.svgtotal.svgwhirlpool.svgubisoft.svgyamaha.svgwp engine.svg
accenture.svgbumble.svgdelloite.svgdocusign.svgcontentful.svgasos.svgpepsico.svghanes.svghewlett packard.svgdropbox.svgmacys.svgliberty mutual.svgtotal.svgwhirlpool.svgubisoft.svgyamaha.svgwp engine.svg