画面一覧・機能一覧の作成
概要
- 日程: Day 5 / セッション 3
- 時間: 11:10-12:40(90分)
- 形式: 実習
- ゴール: 情報の状態遷移図から、画面一覧と機能一覧を漏れなく時間内に作成し、チーム内で読み合わせて整合性を確認できる
- 学習形式: ハンズオン実習(AIサポートあり)
導入(5分)
直前セッションで状態遷移図ができました。ここから機能・画面を「機械的に」導けます。
問いかけ: 「予約済み → キャンセル」という遷移1つから、いくつ機能・画面が必要だと思いますか?
最低でも「キャンセルボタン(機能)」と「キャンセル確認画面(画面)」と「キャンセル完了画面(画面)」が出てきます。1つの遷移が複数の機能・画面に化けます。
このセッションの進め方:
- 1つの状態遷移から画面・機能を導くデモ(15分)
- 全状態遷移について分担して洗い出す(55分)
- 読み合わせと整合性チェック(15分)
本編(15分)
1. 状態遷移から画面・機能を導く
ルールは1つ。遷移1本につき「機能」を1つ以上、「画面」を1つ以上書き出す。
例: 「予約済み → キャンセル」という遷移を分解します。
flowchart LR
A["予約済み"] -->|D キャンセル| B["キャンセル"]
ここから出てくるもの:
| 種別 | ID | 名前 | 目的 |
|---|---|---|---|
| 機能 | F-101 | 予約キャンセル | 予約済み状態の予約をキャンセル状態に遷移させる |
| 画面 | S-201 | 予約詳細画面 | 予約内容を表示し、キャンセルボタンを提供 |
| 画面 | S-202 | キャンセル確認画面 | 誤操作防止のための確認 |
| 画面 | S-203 | キャンセル完了画面 | 結果通知とメール送信案内 |
ここがポイント
- Rの遷移(参照)は「一覧画面」「詳細画面」になりやすい
- Cの遷移は「入力フォーム画面」と「確認画面」と「完了画面」の3点セットになりやすい
- Uは「編集画面」、Dは「削除確認画面」が必要
2. 画面一覧・機能一覧のフォーマット
画面一覧(テンプレート)
| 画面ID | 画面名 | 目的 | 関連情報モデル | 関連機能ID |
|---|---|---|---|---|
| S-001 | トップ画面 | サービス概要表示、ログイン導線 | (なし) | F-001 |
| S-101 | 予約フォーム画面 | 予約情報の入力 | 予約情報 | F-101 |
| S-102 | 予約確認画面 | 入力内容の確認 | 予約情報 | F-102 |
機能一覧(テンプレート)
| 機能ID | 機能名 | CRUD | 対象情報モデル | 関連画面ID | 概要 |
|---|---|---|---|---|---|
| F-001 | ログイン | C | ユーザセッション | S-001 | 認証情報を検証してセッション生成 |
| F-101 | 予約登録 | C | 予約情報 | S-101, S-102 | 入力された予約情報を登録 |
| F-102 | 予約一覧表示 | R | 予約情報 | S-201 | ユーザの予約を時系列で表示 |
ここがポイント
- IDの体系を最初に決める(S-1xx は予約系、S-2xx は会員系、など)
- 同じ機能を複数画面が呼ぶことがある(一覧画面と詳細画面の両方が「予約参照」を使う)
- 共通機能(ログイン、ログアウト、エラー表示)も忘れずに
コラム: 「3点セット」の正体
「入力 → 確認 → 完了」は、Webアプリ設計の定番パターンです。なぜ「確認」が要るのか?理由は2つ。誤操作防止と、入力内容の最終承認。重要な操作(決済、削除、退会)ほど確認画面が効きます。逆にメモアプリの「保存」のように軽い操作には不要です。「ペルソナがこの操作で後悔したら困るか?」で判断します。
💬 AIに聞いてみよう
- 「以下の状態遷移図から、画面と機能を網羅的に洗い出してください。[Mermaid貼付]」
- 「私たちの画面一覧に、よく忘れがちな画面(エラー、404、メンテナンス、利用規約)はありますか?」
- 「この機能一覧で、CRUDのRが漏れていそうな情報モデルはどれですか?」
実習・演習(55分)
課題
すべての状態遷移図から、画面一覧と機能一覧を作成する。
進め方
ID体系を決める(5分)
- 画面IDの命名規則(例: S-{機能カテゴリ}{連番})
- 機能IDの命名規則(例: F-{機能カテゴリ}{連番})
分担して洗い出す(35分)
- 情報モデルごとに担当を決める
- 担当の状態遷移から画面と機能を抽出
- スプレッドシートまたはMarkdown表に記入
共通画面・機能を追加(5分)
- ログイン、ログアウト、トップ画面、エラー画面、404画面
- 検索機能、通知機能(必要に応じて)
読み合わせと整合性チェック(10分)
- チームで一覧を画面投影し、1行ずつ読み上げる(話す&行う)
- 状態遷移↔画面・機能の対応漏れを確認
成果物
画面一覧.md(または表)機能一覧.md(または表)
ヒント
- 迷ったら「ペルソナがこの操作をする画面はどこか?」と問う
- 機能と画面が1対1だと思い込まない。1機能を複数画面が呼んでよい
- 「あったら便利」は今は書かない。状態遷移に必要なものに絞る
まとめ(5分)
明日(Day6)は、この画面一覧から「画面遷移図」と「画面仕様書」を作ります。今日の成果物の質が、明日の作業時間を決めます。
🔄 振り返りチェック
- すべての状態遷移に対応する機能・画面がある
- 共通画面(ログイン、エラー)を含めた
- 機能と画面の対応関係(FとSのID)を明示した
- チームで読み合わせを行った
- AIに「漏れチェック」を依頼した
補足資料
- 入力: 情報の状態遷移図(Day5 Session2)
- 出力: 画面一覧、機能一覧(Day6の入力)
学習ガイド
想定される質問と回答例
| 質問 | ヒント |
|---|---|
| 1機能・1画面で書ききれない巨大な機能がある | 機能を「サブ機能」に分解する。例: 予約登録 = 予約情報入力 + 空き確認 + 仮押さえ + 確定 |
| エラー画面はモデルごとに必要? | 共通エラー画面1つで足りることが多い。フォームのバリデーションエラーは各画面内で扱う |
| 検索機能はどのCRUDですか? | R(参照)の派生。検索条件入力画面と検索結果画面の2画面になりやすい |
| 一覧画面と詳細画面、どちらが先? | ペルソナの動線次第。たいていは一覧→詳細だが、通知から直接詳細に飛ぶ場合もある |
| 画面と機能のIDがどんどん増える | 良い兆候。ただし100超えたらサブシステム分割を検討 |
つまずきやすいポイント
| つまずきポイント | ヒント |
|---|---|
| 状態遷移を見ずに画面を考える | 必ず遷移図に戻る。「この画面はどの遷移を扱う?」を全画面で答えられること |
| Rの画面を忘れる | 「ユーザはこの情報をどこで見る?」を全情報モデルに対して問う |
| 画面の粒度がバラバラ | 「1画面=1目的」を原則に。複数目的なら分ける |
| 機能名が曖昧(「予約処理」など) | 「予約登録」「予約変更」「予約キャンセル」のようにCRUDを意識した名前にする |
| ID体系を後から変える | 後で変えると参照を全部直す羽目に。最初に決めて固定する |