FE EXAM

シーケンス図(UML)

オブジェクト間のメッセージのやり取りを時間順に表すUMLの図。

INTERACTIVE VISUALIZATION
依頼(実線)
応答(破線)
処理中
フェーズ
idle
登場人物
3
メッセージ数
0
シナリオ
ステップ1 / 6
STEP 1/6ライフラインを並べるこれからATMで残高照会をする流れを、シーケンス図(=オブジェクト間のメッセージのやり取りを時間順に表すUMLの図)で描きます。まず登場するオブジェクト(利用者・ATM・銀行システム)を上に並べ、それぞれから下へ点線(ライフライン=そのオブジェクトが存在し続ける時間軸)を伸ばします。上から下へ時間が進みます。
利用者ATM銀行システム時間
解説

📌
シーケンス図とは

AB依頼応答

シーケンス図とは、オブジェクト間のメッセージのやり取りを時間順に表すUMLの図のことです。横方向に登場人物(オブジェクト)、縦方向に時間を取り、上から下へ処理が進みます。

身近な例で考えると、レストランでの注文のやり取りに似ています。客が店員に注文し、店員が厨房に伝え、料理ができて客に届く。「誰が誰に何を頼み、どう返ってきたか」を時系列で並べたものがシーケンス図です。

上のツールで▶ボタンを押すと、ATMで残高照会をする流れを題材に、メッセージの矢印が上から下へ1本ずつ描かれ、処理が進んでいく様子を確認できます。

✏️
描き方

利用者システム処理中

シーケンス図は、次の要素を順番に置いていくと描けます。

ライフライン:登場するオブジェクトを上に並べ、下へ点線を伸ばす(存在する時間軸)
同期メッセージ:処理の依頼を表す実線の矢印。上から下へ時間順に引く
実行仕様:処理中のオブジェクトの線上に置く細長い長方形
戻りメッセージ:依頼への応答を表す破線の矢印。逆向きに戻す

ポイントは「上にあるメッセージほど先に起きる」こと。縦の位置がそのまま時間の前後を表します。依頼(実線)と応答(破線)を区別して描くと、処理の往復が読み取りやすくなります。上のツールで矢印が上から順に増えていく様子を確認してみてください。

🛠️
用途

クラス図静的な構造シーケンス図動的な振る舞い

シーケンス図は、システムが動くときのオブジェクトどうしの連携の流れを表すために使います。クラス図が「静的な構造」を表すのに対し、シーケンス図は「動的な振る舞い」を表します。

具体的な使い道は次のとおりです。
処理の流れの設計:ある機能を実現するのに、どのオブジェクトがどの順で連携するかを決める
仕様の共有:開発者どうしで「この操作のときの内部の動き」を正確に伝える
不具合の調査:どこで処理が止まったか、応答が返らないかを追う手がかりにする

同じ「動的な振る舞い」を表す図でも、シーケンス図は「時間順のやり取り」に注目するのが特徴です。一連の処理で誰がいつ動くかを順番に見たいときに最も力を発揮します。クラス図で骨組みを決め、シーケンス図で動きを設計する、という流れで使い分けます。

📌
同期メッセージと非同期メッセージの違い

AB同期(実線塗り)応答(破線)非同期(開き矢印)Aは応答を待たずに次の処理へ進む(Bの処理と並行して動ける)

シーケンス図には、メッセージの送り方が2種類あります。「応答を待つか・待たないか」の違いです。

同期メッセージ(実線・塗りつぶし矢印):メッセージを送ったあと、送り手は相手の処理が終わるまで待ちます。「電話して、相手が話し終えるまで聞く」イメージです。上のツールで使われているのがこのタイプです。応答(破線)が返ってきて初めて次へ進みます
非同期メッセージ(実線・開き矢印):メッセージを送っても、送り手は応答を待たずにすぐ次の処理へ進みます。「メールを送って、返信が来る前に別の作業をする」イメージです。受け手は独立して処理を進めます

なぜ2種類あるのか。システムによっては「応答が来るまで他のことを一切しない」ほうが安全な場合と、「待ち時間に別の処理を進めて効率を上げたい」場合があるからです。Webページを読み込む際に、画像の到着を待ちながら他の部品も並行して取得するのは非同期メッセージの考え方です。

📌
ライフラインと実行仕様バーの意味

時間ATM画面ライフライン存在している間ずっと伸びるサーバ実行仕様バーその間だけ処理中を示す残高照会を依頼残高データを返す

シーケンス図の読み方を理解するには、ライフライン実行仕様バーの2つの見た目の意味を押さえておくと便利です。

ライフライン(縦の点線):オブジェクトのヘッダー(上の箱)から下へ伸びる点線です。「このオブジェクトがここに存在している」ことを示す時間軸です。上から下へ時間が進むので、縦の位置がそのまま「いつ」を表します
実行仕様バー(ライフライン上の細長い長方形):オブジェクトが実際に処理を行っている時間帯を表します。メッセージを受け取ってから応答を返すまでの間が「処理中」としてハイライトされます。この長方形がある間は「そのオブジェクトがアクティブ(活動中)」という意味です

なぜ実行仕様バーが必要なのか。点線だけでは「処理中かどうか」が分かりません。バーを描くことで「メッセージを受けてから返答するまでの処理時間がどのくらいか」を視覚的に示せます。複数のオブジェクトが同時に動いているときに、「今どこで処理が詰まっているか」を一目で見つけやすくなります。上のツールでオレンジ色の細長い箱がそれにあたります。

練習問題

🎯
基本情報技術者 練習問題

Q1.UMLのシーケンス図が主に表現するものはどれか。
A.クラスの属性と操作、クラス間の継承関係
B.オブジェクト間のメッセージのやり取りを時間順に表す
C.利用者とシステムの機能の関係
D.データをためておく場所とデータの流れ
Q2.シーケンス図で、オブジェクトから下へ伸びる縦の点線は何を表すか。
A.メッセージの内容
B.クラスの継承関係
C.そのオブジェクトが存在し続ける時間軸(ライフライン)
D.データベースへの保存処理
Q3.シーケンス図で、依頼に対する応答(戻り値)を表す矢印はどれか。
A.実線の矢印
B.破線の矢印
C.白抜き三角の矢印
D.塗りつぶしのひし形

関連コンテンツ

シーケンス図 | Vizigo