画面遷移図と画面仕様書の書き方
概要
- 日程: Day 6 / セッション 1
- 時間: 09:30-09:55(25分)
- 形式: 座学
- ゴール: 画面遷移図の表記ルールと画面仕様書に書くべき項目(レイアウト・入力項目・ボタンの遷移先等)を6つ以上挙げ、良い画面遷移図の条件を自分の言葉で説明できる
- 学習形式: 対話型解説、ケーススタディ
導入(5分)
昨日、画面一覧と機能一覧を作りました。今日はそれを「つなげて」「中身を埋めます」。
問いかけ: あなたが初めて使うWebサービスで、3クリックしても目的のページにたどり着けなかったら、どうしますか?
たいていの人は離脱します。画面遷移図はユーザを迷子にさせない地図です。
今日の流れ:
- セッション1(このセッション): 書き方を学ぶ
- セッション2: 自チームの画面遷移図を作る
- セッション3: 画面仕様書を作り、外部設計書を完成させる
設計フェーズの折り返し地点です。今日終われば外部設計が完成し、明日からは内部設計に入ります。
本編(15-18分)
1. 画面遷移図の表記ルール
画面遷移図は「画面(ノード)」と「遷移(矢印)」で構成します。Mermaidのflowchartで書きます。
良い画面遷移図と分かりにくい画面遷移図
悪い例: 矢印が交差し、どこから始まるか不明
flowchart LR
A["A画面"] --> B["B画面"]
B --> C["C画面"]
A --> C
C --> A
B --> A
C --> B
何が悪いか:
- 開始画面が不明
- 全画面が相互に遷移し、ユーザの動線が見えない
- 遷移の理由(ボタン名・操作)がない
良い例: 開始が明確で、遷移ラベル付き
flowchart TD
Start(["開始"]) --> Top["S-001
トップ画面"] Top --|ログインボタン|--> Login["S-002
ログイン画面"] Login --|認証成功|--> Home["S-003
マイページ"] Login --|認証失敗|--> Login Home --|予約するボタン|--> Form["S-101
予約フォーム"] Form --|確認ボタン|--> Confirm["S-102
予約確認"] Confirm -- "戻るボタン" --> Form Confirm -- "確定ボタン" --> Done["S-103
予約完了"] Done -- "マイページへ" --> Home
トップ画面"] Top --|ログインボタン|--> Login["S-002
ログイン画面"] Login --|認証成功|--> Home["S-003
マイページ"] Login --|認証失敗|--> Login Home --|予約するボタン|--> Form["S-101
予約フォーム"] Form --|確認ボタン|--> Confirm["S-102
予約確認"] Confirm -- "戻るボタン" --> Form Confirm -- "確定ボタン" --> Done["S-103
予約完了"] Done -- "マイページへ" --> Home
良いところ:
- 開始ノードが明示
- 各遷移に「ボタン名・操作名」がラベル
- 失敗時の戻り先が描かれている
- 画面IDと画面名がノードに入っている
ここがポイント
- 全画面が必ず遷移図に登場する(画面一覧との一致)
- 行き止まり画面(戻れない画面)がない
- 到達不能画面(誰からも遷移されない画面)がない
- ペルソナのゴール(CJM To-Be版の終点)に到達できる
2. 画面仕様書に書くべき項目
画面仕様書は「1画面につき1ページ」で書きます。最低限の項目はこの7つ。
| 項目 | 内容 |
|---|---|
| 1. 画面ID・画面名 | 一覧と一致 |
| 2. 画面の目的 | この画面で何を達成するか(1文) |
| 3. レイアウト | 画面イメージ(ワイヤーフレーム、簡易図でOK) |
| 4. 入力項目 | 項目名・型・必須/任意・バリデーション |
| 5. ボタン・リンク | ボタン名・動作・遷移先画面ID |
| 6. 表示項目 | この画面で表示する情報の一覧 |
| 7. エラー時挙動 | 入力エラー・通信エラー時の挙動 |
コード例: 「予約フォーム画面」の画面仕様書
画面ID: S-101
画面名: 予約フォーム画面
目的: ユーザが希望日時・人数を入力して予約申込ができる
レイアウト:
+--------------------------------+
| ヘッダー(ログイン状態) |
+--------------------------------+
| タイトル: 予約申込 |
| |
| 来店日 [____] (必須) |
| 時間 [____] (必須・15分単位) |
| 人数 [__] (必須・1〜10) |
| 要望 [_______________] (任意) |
| |
| [戻る] [確認へ進む] |
+--------------------------------+
入力項目:
- 来店日: date型、今日以降、必須
- 時間: time型、営業時間内、必須
- 人数: number型、1-10、必須
- 要望: text型、200文字以内、任意
ボタン:
- [戻る]: マイページ画面(S-003)へ遷移
- [確認へ進む]: 入力チェック後、予約確認画面(S-102)へ遷移
表示項目:
- ログイン中のユーザ名(ヘッダー)
- 営業時間案内(注意書き)
エラー時挙動:
- 入力エラー: 該当項目下に赤字でメッセージ表示、遷移しない
- 通信エラー: 画面上部にトースト「通信に失敗しました。再試行してください」
ここがポイント
- レイアウトは「絵心」より「位置関係」が大事。テキストアートでも可
- 入力項目には必ず「型」と「バリデーション」を書く
- ボタンの遷移先は必ず画面IDで明記する
- エラー時挙動を書き忘れない(明日の内部設計の入力になる)
コラム: ユーザが迷子にならない遷移とは
良い遷移の条件は3つです。
- 戻り道がある: ブラウザの戻るに頼らず、画面内に明示的な戻り導線
- 現在地が分かる: パンくず、ステップインジケータ、タイトル
- 次の一手が明確: ボタンが多すぎず、主アクションが目立つ
CJM(カスタマージャーニーマップ)のTo-Be版でペルソナの感情を確認しましょう。「ここで迷う」「ここで不安」と書いた地点には、案内・確認・ヘルプを置きます。
💬 AIに聞いてみよう
- 「以下の画面遷移図を見て、ユーザが迷子になりそうな箇所を指摘してください。[Mermaid貼付]」
- 「Webサービスでよく見落とされる画面(404、メンテ、利用規約)を挙げて」
- 「予約フォーム画面の画面仕様書をレビューしてください。実装者が迷う点はありますか?」
まとめ(5分)
今日学んだこと:
- 画面遷移図は「開始ノード明示」「遷移ラベル付与」「行き止まり禁止」が基本
- 画面仕様書は7項目(ID・目的・レイアウト・入力・ボタン・表示・エラー)が最低限
- ペルソナの動線(CJM To-Be版)を必ず突き合わせる
次セッションで実際に作ります。
🔄 振り返りチェック
- 良い遷移図と悪い遷移図の違いを2つ以上挙げられる
- 画面仕様書の7項目をすべて言える
- 「行き止まり画面」「到達不能画面」を発見する観点を持てた
- CJM To-Be版を確認する理由を説明できる
補足資料
- 入力: 画面一覧(Day5 Session3)、CJM To-Be版(Day3)
- 出力: 次セッションで画面遷移図、その次で画面仕様書
学習ガイド
想定される質問と回答例
| 質問 | ヒント |
|---|---|
| ワイヤーフレームは絵で描かないとダメ? | テキストアートでも可。要は「どこに何があるか」が分かればよい |
| 共通ヘッダー・フッターは毎画面書く? | 1画面で「共通レイアウト」として定義し、各画面では参照する形でOK |
| モーダルダイアログは画面? | 画面として扱う。画面遷移図にも入れる |
| スマホ対応のレイアウトはどこで考える? | 画面仕様書に「PC/SP両方のレイアウト」を併記する、または別シート |
| 画面IDが多すぎて遷移図が複雑 | 機能カテゴリごとに遷移図を分割する(例: 予約系、会員系、管理系) |
つまずきやすいポイント
| つまずきポイント | ヒント |
|---|---|
| 遷移ラベルなしで矢印だけ書く | 必ず「何のボタンか・どの操作か」をラベルに書く |
| エラー時の戻り先を書き忘れる | 入力エラー・通信エラー・タイムアウトの3パターンを必ず考える |
| 画面仕様書を「あとで書く」と後回し | 主要画面1つだけでも今日のうちに書く。後でなくなる時間 |
| デザインの良し悪しを気にしてしまう | 今は「機能と情報の配置」だけ。装飾はDay10のプロトタイプ以降 |
| ペルソナを無視して画面を作る | CJM To-Be版を画面に紐づけて、ペルソナの感情を確認する |