シーケンス図とは?書き方・構成要素・記号の意味をわかりやすく解説
2026年9月14日
最終更新日:2026年10月23日
著者:株式会社ネクストスケール編集部
監修者:石丸真平

システム開発の設計工程では、複数のオブジェクトがどのような順番でやり取りするかを明確にする必要があります。この処理の流れを時系列で可視化する手法として広く使われているのが、UMLのシーケンス図です。
シーケンス図は、オブジェクト間のメッセージの送受信を上から下へ時間の流れに沿って表現します。ユースケースの具体的な処理手順を設計書として残したり、チームメンバー間で処理フローの認識を合わせたりする場面で活用されています。
ただし、ライフラインや実行仕様、複合フラグメントといった専門用語が多く、初めて触れる方には取っつきにくい印象があるかもしれません。この記事では、シーケンス図の基本的な構成要素から具体的な書き方の手順、作成に使えるツールまで、実務に必要な知識を順番に整理しています。
| 確認したいポイント | 結論 | 詳細 |
| シーケンス図とは何か? | 処理の流れを時系列で示す図 | UMLの相互作用図の一種で、オブジェクト間のメッセージのやり取りを時間軸に沿って表現する。システム設計の場面で広く使われている |
| どんな要素で構成されるか? | 4つの基本要素がある | ライフライン・メッセージ・実行仕様・複合フラグメントの4要素で構成される。それぞれの記号と意味を覚えれば読み書きできる |
| どう書けばよいか? | 4ステップで順番に作成 | 登場オブジェクトの決定→ライフライン配置→メッセージ記述→条件分岐や繰り返しの追加の順に進めると漏れが出にくい |
| 作成ツールは何があるか? | 無料・有料ともに選択肢がある | draw.ioやPlantUMLは無料で利用可能。astah*やLucidchartは有料だがチーム開発向けの機能が充実している |
この記事でわかること
・シーケンス図の定義と、UMLにおける位置づけ
・ライフライン・メッセージ・実行仕様・複合フラグメントの意味と記号
・シーケンス図を4ステップで書く具体的な手順
・alt・loop・optなど複合フラグメントの使い分け
・無料・有料のシーケンス図作成ツールの特徴と選び方
| \ システム設計・開発のご相談はこちら / ▶ 相談予約はこちら |
シーケンス図とは
シーケンス図は、UML(統一モデリング言語)で定義されている相互作用図の一種です。システム内のオブジェクトやコンポーネントが、時間の経過に沿ってどのようにメッセージをやり取りするかを表現します。
シーケンス図の定義とUMLにおける位置づけ
UMLには構造図と振る舞い図という2つの大分類があり、シーケンス図は振る舞い図の中の「相互作用図」に分類されます。相互作用図にはシーケンス図のほかにコミュニケーション図やタイミング図がありますが、処理の時系列を明示できるシーケンス図が最も広く使われています。
シーケンス図の縦軸は時間の流れを表し、上から下に向かって処理が進みます。横軸にはシステムに登場するオブジェクト(ライフライン)を並べ、オブジェクト間のやり取りを矢印(メッセージ)で結びます。この構造により、ある機能がどのような手順で実現されるかを一目で把握できます。
IPA(独立行政法人 情報処理推進機構)が実施する基本情報技術者試験でも、シーケンス図はソフトウェア設計の出題範囲に含まれています。
シーケンス図が使われる場面
シーケンス図は、主に以下のような場面で活用されます。
・ユースケースの詳細設計:ユースケース図で定義した機能について、具体的な処理手順を可視化する
・API連携の設計:外部システムやマイクロサービス間のリクエストとレスポンスの流れを整理する
・既存システムの分析:設計書がないシステムの処理フローを読み解き、ドキュメント化する
・レビューや認識合わせ:開発チーム内で処理の流れを共有し、仕様の抜け漏れを防ぐ
特にAPI連携やマイクロサービスアーキテクチャの設計では、複数のサービス間の通信順序を明確にする必要があるため、シーケンス図の重要性が高まっています。
シーケンス図の構成要素と記号の意味
シーケンス図は、いくつかの基本的な構成要素で成り立っています。以下の表に主な要素をまとめます。
| 構成要素 | 記号・表現 | 役割 |
| ライフライン | 長方形+下向きの破線 | 図に登場するオブジェクトやアクターを表す。破線は時間の経過を示す |
| メッセージ(同期) | 実線+塗りつぶし矢印(→) | 送信側が応答を待ってから次の処理に進む呼び出し。メソッド呼び出しに相当 |
| メッセージ(非同期) | 実線+開いた矢印(▷) | 送信側が応答を待たずに次の処理に進む呼び出し。イベント通知などに使う |
| 戻り値 | 破線+開いた矢印(◁–) | メッセージに対する応答を表す。省略されることもある |
| 実行仕様 | ライフライン上の細長い長方形 | オブジェクトが処理を実行中であることを示す。アクティベーションとも呼ぶ |
| 複合フラグメント | 長方形の枠+左上にラベル | 条件分岐(alt)・繰り返し(loop)・任意実行(opt)などの制御構造を表現する |
それぞれの要素について、もう少し詳しく見ていきましょう。
ライフライン
ライフラインは、シーケンス図に登場するオブジェクトやアクターを表す要素です。図の上部に長方形で名前を記載し、そこから下に向かって破線(生存線)を引きます。この破線が、そのオブジェクトの時間軸上の存在期間を示します。
ライフラインの名前は「オブジェクト名:クラス名」の形式で記述するのが正式ですが、クラス名だけやオブジェクト名だけで書くケースも多くあります。たとえば「:ブラウザ」「:サーバ」「:データベース」のように、役割がわかる名前をつけるのが実用的です。
ライフラインの並び順は、処理の起点となるオブジェクトを左端に置き、処理の流れに沿って右に配置するのが一般的です。こうすることで、メッセージの矢印が左から右に流れやすくなり、図が読みやすくなります。
メッセージの種類と矢印の書き分け
シーケンス図のメッセージには複数の種類があり、矢印の形状で区別します。最も基本的なのは同期メッセージと非同期メッセージの2つです。
同期メッセージは、実線の矢印(先端が塗りつぶされた三角形)で表します。送信側は、受信側が処理を完了して応答を返すまで待機します。プログラムでいうメソッド呼び出しに相当し、シーケンス図で最もよく使うメッセージです。
非同期メッセージは、実線の矢印(先端が開いた矢印)で表します。送信側は応答を待たずに次の処理に進みます。イベントの発火や非同期通知、メッセージキューへの送信などに使います。
戻り値(応答メッセージ)は、破線の矢印(先端が開いた矢印)で表します。同期メッセージに対する応答を返す際に使用します。戻り値が自明な場合や図をシンプルに保ちたい場合は省略されることもあります。
このほか、オブジェクト自身に対してメッセージを送る「自己メッセージ」も存在します。ライフラインから自分自身に向けて矢印を折り返す形で記述し、内部処理やローカルメソッドの呼び出しを表現します。
実行仕様(アクティベーション)
実行仕様は、ライフライン上に表示される細長い長方形で、オブジェクトが処理を実行中であることを示します。メッセージを受信した時点から、応答を返す時点までの間が実行仕様として描かれます。
実行仕様があることで、どのタイミングでどのオブジェクトが動いているかが視覚的にわかります。複数のオブジェクトが同時に処理を行っている場合は、それぞれのライフライン上に実行仕様が並行して表示されます。
なお、実行仕様が入れ子になるケースもあります。あるオブジェクトが処理中に自分自身のメソッドを呼び出す場合、元の実行仕様の上に重なるように新しい実行仕様が描かれます。
オブジェクトの生成と消滅もシーケンス図で表現できます。生成メッセージは破線の矢印でライフラインの先頭(長方形)に向けて描き、消滅は大きな×印をライフラインの終端に置くことで表します。たとえば「注文オブジェクトを生成する」「セッションを破棄する」といった処理が該当します。
複合フラグメントの種類と使い方
複合フラグメントは、シーケンス図の中で条件分岐や繰り返しなどの制御構造を表現するための仕組みです。長方形の枠でメッセージの一部を囲み、左上にラベルをつけて種類を示します。
| 種類 | ラベル | 意味と使い方 |
| 条件分岐 | alt | if-else文に相当。条件ごとに処理を分けて記述する。各条件は点線で区切り、ガード条件を[ ]内に書く |
| 任意実行 | opt | if文(else なし)に相当。条件を満たす場合のみ実行される処理を囲む |
| 繰り返し | loop | for文やwhile文に相当。ガード条件に繰り返し条件を記述する |
| 中断 | break | 例外発生時などに処理を中断する。breakの後のメッセージは実行されない |
| 並行処理 | par | 複数の処理を同時に実行することを表現する。非同期処理の可視化に使う |
| 参照 | ref | 別のシーケンス図を参照する。図が複雑になったときに分割して管理するために使う |
複合フラグメントを使いすぎると図が複雑になるため、1つのシーケンス図に入れるフラグメントは2〜3個程度に抑えるのが読みやすさの目安です。処理が複雑になる場合は、refフラグメントを使って別図に分割することを検討してください。
| \ システム設計・開発のご相談はこちら / ▶ 資料請求はこちら |
関連記事:基本設計書と詳細設計書の違い それぞれの目的・記載内容・作成順序・品質を高めるコツを解説
シーケンス図の書き方|4つのステップ
シーケンス図を書くときは、最初からすべてを一度に描こうとせず、段階を踏んで進めることで抜け漏れの少ない図に仕上がります。
ステップ1:登場するオブジェクトを決める
まず、対象となる機能やユースケースに関わるオブジェクト(アクター、画面、サーバ、データベースなど)を洗い出します。ユースケース図やユースケース記述がある場合は、そこから登場人物と関連するシステムコンポーネントを抽出するとスムーズです。
たとえば「ログイン処理」であれば、「ユーザー」「ログイン画面」「認証サーバ」「ユーザーDB」が登場するオブジェクトの候補です。この段階では不足があっても構いません。メッセージを書いていく過程で必要なオブジェクトが追加されることは珍しくありません。
要件定義の進め方については関連記事も参考にしてください。
ステップ2:ライフラインを配置する
洗い出したオブジェクトをシーケンス図の上部に横並びで配置します。左端にはアクター(操作を行う人間やシステム)を置き、右に向かって処理の流れに沿った順番で並べるのが基本です。
ライフラインの間隔は均等にし、メッセージの矢印が読みやすくなるよう十分なスペースを確保してください。オブジェクトの数が多すぎると図が横に広がりすぎて読みにくくなるため、1つのシーケンス図に登場するライフラインは5〜7個程度が適切です。それ以上になる場合は、処理を分割して複数のシーケンス図に分けることを検討しましょう。
ステップ3:メッセージを時系列で記述する
ライフラインを配置したら、処理の流れに沿ってメッセージ(矢印)を上から順に描いていきます。各メッセージには処理内容を示すラベルをつけます。たとえば「ログイン要求(ID, パスワード)」「認証結果を返す(true/false)」のように、何を送っているかがわかる名前にします。
メッセージを記述する際は、以下の点に注意してください。
・同期メッセージには必ず戻り値(応答)を対にして描く
・メッセージの順序が処理の実行順と一致していることを確認する
・メッセージ名は動詞で始めると処理内容が伝わりやすい(例:「取得する」「検証する」「通知する」)
・引数や戻り値の型が重要な場合はラベルに含める
メッセージを記述していく中で、新たに必要なオブジェクトが見つかることがあります。その場合はライフラインを追加して図を更新してください。最初から完璧なライフラインの一覧を作る必要はなく、メッセージを書きながら図を育てていく意識で進めると効率的です。
また、シーケンス図の粒度は設計フェーズによって変わります。概要設計の段階ではシステム間の大まかなやり取りを描き、詳細設計の段階ではメソッド名や引数まで具体的に記述します。設計段階に合った詳細度でシーケンス図を作成し、段階的に詳細化していくのが現場での標準的なアプローチです。
ステップ4:条件分岐や繰り返しを追加する
基本的なメッセージの流れが描けたら、条件分岐(alt)、繰り返し(loop)、任意実行(opt)などの複合フラグメントを追加します。
たとえばログイン処理では、「認証成功の場合はダッシュボードに遷移し、失敗の場合はエラーメッセージを表示する」という分岐があります。この場合、altフラグメントを使い、ガード条件として[認証成功]と[認証失敗]を記述します。
複合フラグメントは必要な箇所にだけ使い、シンプルさを保つことが重要です。すべての条件分岐や例外処理を1つのシーケンス図に詰め込むと可読性が大幅に下がります。正常系と異常系を別のシーケンス図に分けるのもよく使われる手法です。
実務でよく使う複合フラグメントは、alt(条件分岐)、loop(繰り返し)、opt(任意実行)の3つです。まずはこの3つの使い方を確実に覚えてください。altフラグメントでは、フラグメント内を破線で区切り、それぞれの領域にガード条件を[条件式]の形式で記述します。たとえば在庫管理システムの注文処理であれば、[在庫あり]と[在庫なし]の2つの領域に分けて、それぞれの処理フローを描きます。
loopフラグメントでは、ガード条件に繰り返しの条件を記載します。たとえば「注文明細の数だけ繰り返す」場合は、[1, 明細件数]のように最小回数と最大回数を記述します。回数が不定の場合は条件式(例:[未処理明細あり])で表現することもあります。
シーケンス図を書くときの注意点
シーケンス図は便利な設計ツールですが、書き方を誤ると逆に設計の理解を妨げてしまうこともあります。ここでは、よくある注意点を整理します。
シンプルに保つための工夫
シーケンス図を読みやすく保つためのポイントは、1つの図に詰め込みすぎないことです。機能が複雑な場合は、正常系のメインフローと例外処理を分離する、あるいはrefフラグメントを使ってサブシーケンスに分割するといった方法が有効です。
また、戻り値が自明な場合は省略して構いません。たとえばGET要求に対してデータが返ってくることが明らかな場合、応答の矢印を省略しても意図は伝わります。ただし、チーム内で省略ルールを統一しておかないと、人によって描き方がバラバラになるので注意が必要です。
ラベルの命名規則も統一しましょう。メッセージ名を日本語にするか英語にするか、引数の記載レベルをどこまで詳しくするかを事前に決めておくと、複数人でシーケンス図を作成する場合でも一貫性を保てます。
他のUML図との使い分け
シーケンス図は処理の時系列を表現するのに適していますが、すべての設計をシーケンス図だけでカバーするのは現実的ではありません。目的に応じて他のUML図と組み合わせることで、設計の全体像を効率よく表現できます。
・クラス図:システムの静的な構造(クラスの属性や関連)を表現する
・ユースケース図:システムの機能と利用者の関係を俯瞰する
・アクティビティ図:業務プロセスやワークフロー全体の流れを表現する
・状態遷移図:1つのオブジェクトの状態変化を表現する
一般的な設計フローでは、まずユースケース図で全体の機能を洗い出し、各ユースケースに対してシーケンス図で処理手順を詳細化する、という流れが多く採用されています。
シーケンス図とよく混同されるのがアクティビティ図です。アクティビティ図は業務フロー全体の流れを表現するのに適しており、フローチャートに近い形式で分岐や並列処理を描きます。一方、シーケンス図はオブジェクト間の具体的なやり取りと時間的な順序に焦点を当てています。業務プロセスの全体像を把握したい場合はアクティビティ図、特定の機能の実装詳細を詰めたい場合はシーケンス図というように、目的に応じて使い分けてください。
要件定義書の書式について詳しく知りたい方は以下の記事もあわせてご覧ください。
関連記事:要件定義書のフォーマット|表紙・ID体系・表のレイアウトと選び方
| \ システム設計・開発のご相談はこちら / ▶ 相談予約はこちら |
シーケンス図の作成に使えるツール
シーケンス図は手描きでも作成できますが、専用ツールを使うとライフラインの配置やメッセージの描画が効率的になります。以下に、主なツールを比較します。
| ツール名 | 費用 | 動作環境 | 特徴 |
| draw.io(diagrams.net) | 無料 | ブラウザ/デスクトップ | アカウント不要で即利用可能。UML図のテンプレートが豊富 |
| PlantUML | 無料 | テキストベース | テキストで記述しコマンドで図を生成。Gitでの管理に向く |
| Mermaid | 無料 | テキストベース | Markdown内に記述可能。GitHubやNotionで直接レンダリングできる |
| Cacoo | 有料(無料枠あり) | ブラウザ | チームでの同時編集に対応。日本語サポートが充実 |
| astah* | 有料 | デスクトップ | UML全図種に対応。国内の教育機関や企業で広く利用されている |
| Lucidchart | 有料(無料枠あり) | ブラウザ | テンプレートが豊富で直感的な操作性。Confluence連携も可能 |
無料ツールの選び方
個人の学習や小規模プロジェクトでは無料ツールで十分対応できます。draw.ioはGUI操作で直感的にシーケンス図を描けるため、初心者にも扱いやすいツールです。Google DriveやGitHubとの連携にも対応しています。
PlantUMLやMermaidは、テキストベースでシーケンス図を記述するツールです。テキストファイルとして管理できるため、Gitでのバージョン管理との相性がよく、コードレビューの仕組みの中で設計図のレビューもあわせて行いたいチームに向いています。
有料ツールの選び方
チーム開発や業務利用で本格的に使う場合は、有料ツールの導入を検討してください。astah*はUMLの全図種に対応した設計ツールで、日本国内の企業や教育機関で広く利用されています。クラス図からシーケンス図へのトレーサビリティを保ちながら設計を進められる点が強みです。
CacooやLucidchartは、ブラウザ上で複数人が同時に図を編集でき、リアルタイムの共同作業が可能です。リモートワーク環境でチームメンバーと設計を共有するには、こうしたクラウド型のツールが便利です。
ツール選定で見落としやすいのが、エクスポート形式の対応状況です。設計書として納品する場合にPDFや画像での出力が必要になることが多いため、事前に確認しておきましょう。PlantUMLやMermaidはテキストから画像を自動生成できますが、レイアウトの細かい調整には限界があります。プレゼンテーションや正式な設計書に含める場合は、GUIで微調整ができるdraw.ioやastah*の方が適しています。
また、チームでツールを統一することも重要です。メンバーによって異なるツールを使っていると、ファイル形式の互換性やレビューのしやすさに問題が生じます。プロジェクトの開始時にツールを決定し、チーム全体で同じ環境で設計を進める体制を整えてください。
システム開発の外注を検討している場合は、発注先の選び方も確認しておくと安心です。
関連記事:システム開発の外注とは|メリット・デメリット、費用相場、選び方を解説
| \ システム設計・開発のご相談はこちら / ▶ 資料請求はこちら |
まとめ
シーケンス図は、オブジェクト間のメッセージのやり取りを時系列で可視化するUMLの設計図です。ライフライン・メッセージ・実行仕様・複合フラグメントの4つの基本要素で構成され、システムの処理手順を明確に表現できます。
書き方は、登場オブジェクトの洗い出し→ライフライン配置→メッセージ記述→条件分岐の追加の4ステップで進めます。複合フラグメントを使えば条件分岐や繰り返しも表現できますが、1つの図に詰め込みすぎず、必要に応じて図を分割することが読みやすさの鍵です。
ツール選定では、個人学習やプロトタイプならdraw.ioやPlantUML、チーム開発ならastah*やCacooなど、用途に応じた選択が重要です。
AIコンサル・AX伴走支援サービスご紹介資料
この資料でこんなことがわかります!
- 社外AI役員とは
- 支援内容
- 導入の進め方
- 導入実績・効果
\3ステップで簡単入力/
| システム設計やシーケンス図の作成でお悩みの方は、ネクストスケールの無料相談をご活用ください。 ▶ 無料で経営相談する |
この記事の監修者
株式会社ネクストスケール 代表取締役




