実務家による実践的なレビューと、効果的なシステム要件モデリングのためのユースケース図の理解・作成・活用に関する包括的ガイド
🎯 新しい紹介
ソフトウェア工学の授業で初めてUMLユースケース図に出会ったとき、正直に言うと、私は混乱しました。棒人間、楕円、ステレオタイプが「」のような破線の矢印…まるで秘密の言語を学んでいるようでした。<<include>>そして<<extend>>…まるで秘密の言語を学んでいるようでした。しかし、いくつかの実際のプロジェクトに取り組み、Visual Paradigmのようなツールを深く使いこなした後、私はユースケース図が要件工学において最も強力で、かつ過小評価されているアーティファクトの一つであることに気づきました。

このガイドは、あなたと同じ立場にいた人、すなわちステークホルダーの期待と技術的実装のギャップを埋めようとしているプロダクトプロフェッショナル、開発者、または学生の視点から書かれています。新しい機能の文書化、クロスファンクショナルチームの整合、資格試験の準備など、どんな状況でも、この包括的なガイドを通じて、単にユースケース図を描くだけでなく、描くユースケース図を描くだけでなく、ユースケースの視点で考えることのできるようになります。
以下の内容をカバーします:
-
✅ ユースケース図が本当に意味するもの(そして意味しないもの)
-
✅ OMG UML仕様に基づく視覚的表記リファレンス
-
✅ Visual Paradigmにおけるステップバイステップの作成ワークフロー
-
✅ 図をシンプルかつ効果的に保つためのプロテクニック
-
✅ ミーティングノートを記録し、実行可能なシナリオに進化させる方法
さあ、始めましょう。
📘 ユースケース図とは何か?(全体像)
A ユースケース図は、ユーザーがシステムとどのようにやり取りするかを示すシンプルな表現であり、ユーザーと関与するさまざまなユースケースとの関係を示しています。UMLのUMLユースケース図は、開発中の新しいソフトウェアプログラムのシステム/ソフトウェア要件の主な形式です。

💡 経験から得た重要な洞察:ユースケースは、その「」を指定する。期待される動作(何をすべきか)、そしてその実現方法(どのようにするか)ではない。この関心事の分離が、ステークホルダー間のコミュニケーションにおいてそれらを非常に価値あるものにしている。
ユースケース図が得意とする点:
-
🎯 システム機能の高レベルでエンドユーザー視点を提供する
-
🗣️ 技術的・非技術的ステークホルダー間の対話を促進する
-
🧭 システムが実際にやらなければならないことの「設計図」として機能する
-
🔗 詳細仕様、シーケンス図、またはユーザーストーリーとリンクする
彼らが示さない点(それも問題ない):
-
❌ 目標達成のためのステップの実行順序
-
❌ 詳細なUIフローまたはデータベーススキーマ
-
❌ 実装ロジックまたはアルゴリズムの複雑さ
⚠️ 実務者への注意喚起:ユースケース図に20個以上のユースケースが含まれている場合、おそらく誤用している可能性があります。シンプルさを保ちましょう。関連する機能をパッケージでグループ化してください。詳細は他の図で処理させましょう。
🧩 ユースケース図の表記法:視覚的リファレンスガイド

以下は、私がブックマークしている完全な表記法リファレンスです。各要素には、形式的な正確性が必要な方のために、公式のOMG UML仕様の抜粋が含まれています。
| アイコン | 名前 | 目的と私の実践的ノート |
|---|---|---|
| ユースケース | システムを通じて達成可能なユーザーの目標を表す。プロのヒント:明確にするために、ユースケースの名前を「注文する」や「レポートを生成する」などの動詞+名詞の表現にする。 | |
| 関連 | アクターとそれらが参加するユースケースを結ぶ。データの流れではなく、相互作用を示す。 | |
| アクター | システムとやり取りする外部エンティティ。思い出してください:アクターは役割(例:「顧客」)を表し、特定の人(例:「ジョン・ドウ」)ではない。 | |
| システム | システムの境界。ユースケースは内部に、アクターは外部に配置する。範囲を明確にする。 | |
| 包含 | 必須な振る舞いの再利用。基本のユースケース常に含まれるものを実行する。 | |
| 拡張 | オプション/条件付きの振る舞い。拡張は、定義された拡張ポイントで特定の条件下でのみ実行される。 | |
| 依存関係 | 一つの要素が、別の要素の仕様または実装に依存している。ユースケース図では控えめに使用する。 | |
| 一般化 | 継承関係。特定の分類子は、一般的な分類子の特徴を継承する。 | |
| 実現 | 仕様とその実装をリンクする。クラス/コンポーネント図でより一般的に使用される。 | |
| 協働 | 役割が機能を達成するためにどのように協働するかを説明する。インスタンスの詳細を抽象化する。 |
🔍 深掘り:基本的な記法の説明
ユースケース

ユースケースは、システムまたはソフトウェアアプリケーションにアクセスすることで達成可能なユーザーの目標を表す。Visual Paradigmでは、ユースケースの下にサブシーケンス図を作成することで、ユースケース内でのユーザーとシステムの相互作用を記述できる。また、イベントフロー編集ツールを使用してユースケースのシナリオを記述することもできる。
OMG UML仕様:
「ユースケースとは、システムが実行する一連のアクションの仕様であり、その結果は通常、システムの1人以上のアクターまたは他のステークホルダーにとって価値のある観察可能な結果をもたらす。」
— UMLスーパ構造仕様 v2.4.1、p.606
アクター

アクターは、システムとやり取りするエンティティである。ほとんどの場合、アクターはシステムのユーザーを表すために使用されるが、実際にはシステムと情報交換が必要なものは何でもアクターになり得る。したがって、アクターは人間、コンピュータのハードウェア、他のシステムなどである。
OMG UML仕様:
「アクターは、対象とやり取りするユーザーまたは他のシステムが果たす役割を指定する… アクターは、対象とやり取りするが、対象の外部にあるエンティティが果たす役割の種類をモデル化する。」
— UMLスーパ構造仕様 v2.4.1
包含と拡張:重要な違い
| 関係 | 使用するタイミング | 方向 | 私の目安 |
|---|---|---|---|
<<include>> |
動作が のとき常に 必須 | 基本 → 包含 | 「このステップはメインフローに必須です」 |
<<extend>> |
動作が のとき条件付きまたはオプション | 拡張 → 基本 | 「これはXの条件が満たされた場合にのみ発生する」 |


💡 実際の例:
注文を出す含む支払いを検証する(常に必須)
注文を出す以下によって拡張可能プロモコードを適用する(ユーザーがコードを持っている場合のみ)
🛠️ ユースケース図の描き方:私のVisual Paradigmワークフロー
いくつかのUMLツールを試した後、厳密さと使いやすさのバランスが取れていることから、私はVisual Paradigmを選びました。以下が私の実証済みのワークフローです:
ステップ1:図を作成する
-
選択 図 > 新規 アプリケーションツールバーから。
-
の新しい図ウィンドウで、選択してくださいユースケース図.
-
クリックしてください次へ.
-
図の名前と説明を入力してください。場所フィールドでは、図を保存するモデルを選択できます。
-
クリックしてくださいOK.
ステップ2:システム境界の定義
ユースケース図でシステムを作成するには、システム図のツールバーから選択し、図ペイン上でクリックしてください。最後に、新しく作成されたシステムに名前を付けてください。

✅ ベストプラクティス:システムの名前を明確にしてください(例:「E-Commerceプラットフォーム」など、「System1」ではない)。これがスコープの基準になります。
ステップ3:アクターの追加
ユースケース図でアクターを描くには、アクター図のツールバーから選択し、図ペイン上でクリックしてください。最後に、新しく作成されたアクターに名前を付けてください。

🎯 プロのヒント:まず、ユースケースを開始する主要なアクターから始め、その後、支援するシステムや役割(二次的なアクター)を追加してください。
ステップ4:ユースケースの作成(スマートな方法)
図のツールバーを通じてユースケースを作成する以外にも、リソースカタログを通じて作成できます:
-
マウスをソースの形状(例:アクター)の上に移動してください。
-
を押してください。リソースカタログボタンを押してドラッグしてください。

-
マウスボタンを離して、希望の場所までドラッグしてください。
-
を選択してください。関連 -> ユースケースリソースカタログから選択してください。

-
ソースの形状と新しく作成されたユースケースが接続されました。最後に、新しく作成されたユースケースに名前を付けます。

ステップ5:長いユースケース名の処理
ユースケースが広すぎる場合は、塗りつぶされたセレクタをドラッグしてサイズを変更することで、より良い表示が可能になります。その結果、ユースケース名は自動的に折り返されます。

⌨️ キーボードショートカット:を押してください。Alt + Enter手動で改行を強制します。
ステップ6:<> および <> の関係を追加する
Extendの場合:
-
ユースケースの上にマウスを移動し、押したままその リソースカタログボタンをドラッグしてください。
-
希望の場所でマウスボタンを離し、選択してください。Extend -> ユースケース.
-
新しいユースケースに名前を付け、拡張ポイントを定義してください。

Includeの場合:
-
同じリソースカタログからのドラッグアプローチです。
-
を選択してください。包含 -> ユースケース.
-
含まれるユースケースの名前を付けます。

ステップ7:パッケージで整理する(必要に応じて)
図に多くのユースケースがある場合は、パッケージを使って整理できます。
-
選択してください パッケージ 図のツールバー上にあります。

-
マウスをドラッグして、これらのユースケースを囲むパッケージを作成します。

-
最後に、パッケージの名前を付けます。

ボーナス:ビジネスユースケース
UML図ツールは、ビジネスアクターおよびユースケースの表現もサポートしています。通常のユースケースをビジネスユースケースとして表示するには:
-
ユースケースを右クリックして モデル要素のプロパティ > ビジネスモデル.

-
選択後、ユースケースの左端に追加のスラッシュが表示されます。

📝 要件の把握:ユースケースノートと会議ワークフロー
私の要件プロセスを変化させた1つの機能: ユースケースノート。ユーザーとの会議は要件把握の重要な一部ですが、ユーザーが本当に望んでいることを明確にするために複数回の会議が不可欠です。ユースケースノートは、要件把握の会議中に議論した内容を記録するためのものです。
ユースケースノートのアクセス方法
-
ユースケースを右クリック → ユースケース詳細を開く…

-
を開く ユースケースノート タブ。

構造化されたノートの入力
開くと、4つのポイントを持つ事前に定義されたテンプレートが表示されます: ワークフロー, ビジネスロジック, 意思決定、およびフォローアップ.

✏️ 私のテンプレートの強化: 私は2つのカスタムセクションを追加します:
ステークホルダーの懸念: 提言された反論やリスクを記録する
受入基準: 早期に検証可能な条件を草案化する
ネストされたノートの使用
複数のネストされたノートを作成することで、ユースケース関連のさまざまなアイデアを記録できます。押す Tab でインデントを設定し、 Shift+Tab でインデントを減らす。

🚀 ノートからシナリオへ:ワンクリック進化
ステークホルダーが望ましいシステム動作を説明する際、ノートを正式なシナリオに変換できます:
-
動作の説明を含む親ノート項目の上にマウスをホバーします。

-
箇条書きの隣にある下向き矢印をクリック → イベントの流れ > 新しいシナリオへ.

-
できました:ノートのテキストをシナリオ名として、サブノートをステップとして新しいシナリオが生成されます。

🔁 私が使用する反復的ワークフロー:
会議 → ノート → シナリオ草案 → ステークホルダーのレビュー → 改良されたユースケース → 関連付けられたシーケンス図
🎯 新しい結論:ユースケース図を使うべき時、使わないべき時
スタートアップや企業プロジェクトにおいて何年もユースケース図を適用してきた経験から、私のまとめたアドバイスです:
✅ ユースケース図を使うべきとき:
-
ビジネス関係者と開発者を、システムが何をすべきかという点で一致させたいとき何をシステムが行うべきこと
-
新しい製品や主要な機能リリースの範囲を文書化しているとき
-
未発見のアクター、またはエッジケースの相互作用を早期に特定したいとき
-
アジャイルスプリント用のユーザーストーリーを準備しているとき(ユースケース=エピックレベルの粒度)
❌ 別の選択肢を検討すべきとき:
-
非常に技術的で内部的なシステムの相互作用をモデル化しているとき(コンポーネント図やデプロイメント図を試してみてください)
-
リアルタイム動作や並行処理を指定する必要があるとき(状態機械図やシーケンス図の方が適しています)
-
対象読者が開発者だけで、コード優先の仕様を好むとき
最終的な考え:
ユースケース図は完璧さではなく、コミュニケーションです。わずかに不完全でも、全員が同じページにいる図は、リポジトリに放置されたまま使われない「正しい」図よりも、無限に価値があります。
🌟 私の黄金法則:5分以内に非技術的な関係者にユースケース図を説明できないなら、さらに簡略化してください。
シンプルから始めましょう。フィードバックをもとに繰り返し改善しましょう。図を、問題領域に対する理解とともに進化させてください。それがユースケースモデリングを単なる文書作成ではなく、戦略的優位性に変える方法です。
📚 参考文献
- ユースケースとは何か?:ユースケースを、ステークホルダーに観察可能で価値のある結果をもたらすシステム動作の仕様として定義する基礎的なWikipedia記事。
- 統合モデル化言語(UML):ソフトウェアシステムの可視化、仕様化、構築、文書化のための標準化されたモデル化言語としてのUMLの概要。
- UMLとは何か?:Visual Paradigmの学習ガイドから、初心者向けのUMLの概念、図の種類、モデリングの原則についての入門。
- なぜUMLモデリングが必要か?:UMLの導入を正当化する実用的な根拠。改善されたコミュニケーション、曖昧さの低減、より良い設計文書化といった利点をカバー。
- ユースケース図とは何ですか?: ユースケース図の目的、範囲、および行動型UML図内での位置づけを説明する基本ガイド。
- ユースケース図の記法ガイド: UMLユースケース図のすべての記号、関係性、およびOMG仕様の抜粋を網羅した包括的な視覚的参照。
- UMLでユースケース図を描く方法: Visual Paradigmでユースケース図を作成するためのステップバイステップチュートリアル。システム境界、アクター、関係性、整理技法を含む。
- ユースケースの会議メモの入力: ユースケースノートでステークホルダーの議論を記録し、それを形式的なシナリオや要件へと進化させるための高度なワークフローガイド。













