Home
Get Started
実践ガイド
外部仕様設計
バッチ処理仕様設計
UAC 仕様設計
データ仕様設計
インフラ設計
移行計画
テスト方針・計画
開発プロセス・規約
画面 個別仕様
各画面のUI/UX設計から入力項目、バリデーション、画面遷移、エラーハンドリング仕様を定義します。
🎯 概要
- 目的: 各画面の詳細な仕様を明確にし、UI/UX設計、入力項目、バリデーション、画面遷移、エラーハンドリングを定義することで、フロントエンド開発チームが一貫性のある実装を実現する
- スコープ: 画面ごとのレイアウト、入力項目定義、処理フロー、バリデーション仕様、画面遷移、エラーメッセージをカバーする。デザインの詳細はFigma等で管理し、本仕様書では機能仕様に焦点を当てる
- 推奨する実施タイミング: 画面設計全体方針が決定した後、各画面の実装前に実施する
- 関連するステークホルダー: UI/UXデザイナー、フロントエンド開発者、バックエンド開発者、プロジェクトマネージャー
📥 重要な前提知識・インプット
- 前提知識: 画面設計の基本原則、ユーザビリティガイドライン、アクセシビリティ要件、入力バリデーションの手法
- インプット: 画面一覧・画面遷移図、UI/UXデザイン(Figma等)、業務フロー、API仕様、データ項目定義
📄 成果物の定義
- ドキュメントテンプレート: 📄
[テンプレ]画面 個別仕様書
- 必須要素: 画面ID、画面名、概要、画面レイアウト(Figmaリンク)、画面項目定義、処理フロー、画面遷移、バリデーション仕様、エラーハンドリング
✅ 品質基準・レビュー観点
✅ 品質チェックリスト:
| チェック項目 | チェック内容 |
|---|---|
| 項目定義の完全性 | 全ての入力項目に対して、ID・名称・種別・必須/任意・バリデーション・初期値が明記されているか |
| バリデーション仕様の明確性 | 各項目のバリデーションルールとエラーメッセージが具体的に定義されているか |
| 画面遷移の網羅性 | 全ての操作(ボタン・リンク)に対する遷移先と条件が明記されているか |
| エラーハンドリングの完全性 | 想定されるエラーケースとそれぞれのメッセージ・対処方法が定義されているか |
| デザインとの整合性 | Figmaデザインと仕様書の記載内容に齟齬がないか |
👁️🗨️ レビュー観点:
- ユーザビリティ: 操作フローが直感的で、ユーザーが迷わず操作できる設計になっているか
- アクセシビリティ: キーボード操作、スクリーンリーダー対応など、アクセシビリティ要件が考慮されているか
- 一貫性: 他の画面と項目名、用語、操作方法、エラーメッセージの表現が統一されているか
- 実装可能性: 定義された仕様がフロントエンド・バックエンド技術で実装可能か
- API仕様との整合性: 画面で扱うデータ項目がAPI仕様と整合しているか
🧪成果物のサンプル
# SCR-001: ログイン画面
## 概要
システムへのログイン処理を行う画面。メールアドレスとパスワードによる認証を実施する。
## 画面レイアウト
**[Figmaリンク]**: [ログイン画面デザイン](FigmaデザインのURLを挿入)
## 画面項目
| 項目ID | 項目名 | 入力種別 | 必須 | 最大文字数 | バリデーション | 備考 |
|-------|-------|---------|-----|----------|--------------|------|
| F001 | メールアドレス | テキスト入力 | ○ | 255 | メール形式チェック | - |
| F002 | パスワード | パスワード入力 | ○ | 128 | 8文字以上 | マスク表示 |
| F003 | ログインボタン | ボタン | - | - | - | Primary |
| F004 | パスワードを忘れた | リンク | - | - | - | - |
## 処理フロー
```mermaid
sequenceDiagram
participant U as ユーザー
participant S as 画面
participant A as 認証API
participant D as データベース
U->>S: メールアドレス・パスワード入力
U->>S: ログインボタン押下
S->>S: 入力バリデーション
alt バリデーションNG
S->>U: エラーメッセージ表示
else バリデーションOK
S->>A: 認証リクエスト
A->>D: ユーザー情報照会
D->>A: ユーザー情報返却
alt 認証失敗
A->>S: 認証エラー
S->>U: エラーメッセージ表示
else 認証成功
A->>S: トークン発行
S->>U: ダッシュボードへ遷移
end
end
```
## 画面遷移
- **ログイン成功時**: SCR-002(ダッシュボード)へ遷移
- **パスワードを忘れた**: パスワードリセット画面へ遷移
## エラーハンドリング
| エラー種別 | 表示メッセージ | 対処方法 |
|-----------|--------------|---------|
| 入力形式エラー | 「メールアドレスの形式が正しくありません」 | 再入力を促す |
| 認証エラー | 「メールアドレスまたはパスワードが正しくありません」 | 再入力を促す |
| アカウントロック | 「アカウントがロックされています。管理者にお問い合わせください」 | 管理者連絡先を表示 |
---
# SCR-003: ユーザー一覧画面
## 概要
登録されているユーザーの一覧を表示し、検索・絞り込み・編集・削除を行う管理画面。
## 画面レイアウト
**[Figmaリンク]**: [ユーザー一覧画面デザイン](FigmaデザインのURLを挿入)
## 検索条件項目
| 項目ID | 項目名 | 入力種別 | 必須 | 備考 |
|-------|-------|---------|-----|------|
| S001 | ユーザー名 | テキスト入力 | - | 部分一致検索 |
| S002 | メールアドレス | テキスト入力 | - | 部分一致検索 |
| S003 | ステータス | ドロップダウン | - | 全て/有効/無効 |
| S004 | 登録日From | 日付選択 | - | - |
| S005 | 登録日To | 日付選択 | - | - |
| S006 | 検索ボタン | ボタン | - | Primary |
| S007 | クリアボタン | ボタン | - | Secondary |
## 一覧表示項目
| 列ID | 列名 | データ型 | ソート | 備考 |
|-----|------|---------|-------|------|
| C001 | ユーザーID | 文字列 | ○ | リンク(詳細画面へ) |
| C002 | ユーザー名 | 文字列 | ○ | - |
| C003 | メールアドレス | 文字列 | ○ | - |
| C004 | ステータス | 文字列 | ○ | 有効/無効をバッジ表示 |
| C005 | 登録日 | 日時 | ○ | YYYY/MM/DD HH:MM |
| C006 | 操作 | - | - | 編集/削除ボタン |
## 処理フロー(検索)
```mermaid
sequenceDiagram
participant U as ユーザー
participant S as 画面
participant A as API
participant D as データベース
U->>S: 検索条件入力
U->>S: 検索ボタン押下
S->>A: ユーザー一覧取得API呼び出し
A->>D: ユーザーデータ検索
D->>A: 検索結果返却
A->>S: ユーザー一覧データ返却
S->>U: 一覧表示
```
## 操作仕様
| 操作 | 動作 |
|-----|------|
| 新規登録ボタン | SCR-004(ユーザー登録画面)へ遷移 |
| ユーザーID列クリック | SCR-006(ユーザー詳細画面)へ遷移 |
| 編集ボタン | SCR-005(ユーザー編集画面)へ遷移 |
| 削除ボタン | 確認ダイアログ表示後、削除処理実行 |
| ソートアイコン | 昇順/降順でソート |
## ページネーション
- 1ページあたりの表示件数: 20件(変更可能:10/20/50/100件)
- 総件数、現在ページ数を表示
- 前へ/次へ/先頭/最後のページへ移動可能
---
# SCR-004: ユーザー登録画面
## 概要
新規ユーザーを登録する画面。必須情報を入力し、システムにユーザーを追加する。
## 画面レイアウト
**[Figmaリンク]**: [ユーザー登録画面デザイン](FigmaデザインのURLを挿入)
## 入力項目
| 項目ID | 項目名 | 入力種別 | 必須 | 最大文字数 | バリデーション | 初期値 |
|-------|-------|---------|-----|----------|--------------|-------|
| F101 | ユーザー名 | テキスト入力 | ○ | 50 | 全角・半角英数字 | - |
| F102 | メールアドレス | テキスト入力 | ○ | 255 | メール形式、重複チェック | - |
| F103 | パスワード | パスワード入力 | ○ | 128 | 8文字以上、英数字記号含む | - |
| F104 | パスワード確認 | パスワード入力 | ○ | 128 | F103と一致 | - |
| F105 | 権限 | ドロップダウン | ○ | - | - | 一般ユーザー |
| F106 | ステータス | ラジオボタン | ○ | - | 有効/無効 | 有効 |
| F107 | 登録ボタン | ボタン | - | - | - | Primary |
| F108 | キャンセルボタン | ボタン | - | - | - | Secondary |
## 処理フロー
```mermaid
sequenceDiagram
participant U as ユーザー
participant S as 画面
participant A as API
participant D as データベース
U->>S: ユーザー情報入力
U->>S: 登録ボタン押下
S->>S: 入力バリデーション
alt バリデーションNG
S->>U: エラーメッセージ表示
else バリデーションOK
S->>A: ユーザー登録API呼び出し
A->>D: ユーザーデータ登録
alt 登録失敗(重複等)
D->>A: エラー
A->>S: エラー情報返却
S->>U: エラーメッセージ表示
else 登録成功
D->>A: 成功
A->>S: 登録成功
S->>U: 成功メッセージ表示
S->>U: SCR-003(一覧画面)へ遷移
end
end
```
## バリデーション仕様
| 項目 | バリデーション内容 | エラーメッセージ |
|-----|------------------|----------------|
| ユーザー名 | 必須入力 | 「ユーザー名を入力してください」 |
| メールアドレス | 必須入力、メール形式 | 「正しいメールアドレスを入力してください」 |
| メールアドレス | 重複チェック | 「このメールアドレスは既に登録されています」 |
| パスワード | 8文字以上、英数字記号含む | 「パスワードは8文字以上で、英数字と記号を含めてください」 |
| パスワード確認 | パスワードと一致 | 「パスワードが一致しません」 |
---
# 3.2.4 画面仕様記載のガイドライン
各画面の個別仕様を記載する際は、以下のテンプレートを使用する:
# 画面仕様テンプレート
```markdown
# SCR-XXX: [画面名]
## 概要
[画面の目的と主要機能を簡潔に記述]
## 画面レイアウト
**[Figmaリンク]**: [画面デザイン](FigmaデザインのURLを挿入)
## 画面項目
| 項目ID | 項目名 | 入力種別 | 必須 | 最大文字数 | バリデーション | 備考 |
|-------|-------|---------|-----|----------|--------------|------|
| [記載] | [記載] | [記載] | [記載] | [記載] | [記載] | [記載] |
## 処理フロー
[Mermaidシーケンス図で記載]
## 画面遷移
- **[条件]**: [遷移先画面]へ遷移
## エラーハンドリング
| エラー種別 | 表示メッセージ | 対処方法 |
|-----------|--------------|---------|
| [記載] | [記載] | [記載] |
```
---
## 3.2.5 備考
- 画面デザインの詳細は全てFigmaで管理し、本仕様書にはリンクを記載する
- デザイン変更時はFigmaを更新し、本仕様書のリンク先を最新に保つ
- 画面追加時は画面一覧(3.2.2)にも追記する
--- 🔄 設計の進め方・プロセス
🏗️ プロセス1: 画面一覧と画面遷移図の作成
設計対象:
システムに必要な全画面を洗い出し、画面間の遷移関係を明確にする。
具体例:
- どのような画面が必要か(ログイン画面、ダッシュボード、一覧画面、詳細画面、登録・編集画面など)
- 各画面にどのようにアクセスするか(メニュー、ボタン、リンク)
- どの画面からどの画面に遷移するか
- 認証が必要な画面とそうでない画面の区別
設計原則:
- ユーザーの業務フローに沿った設計: ユーザーがタスクを完了するまでの流れを自然にサポートする画面構成とする
- 画面数の適正化: 過度に細分化せず、かといって1画面に機能を詰め込みすぎない適切な粒度を保つ
- 遷移のわかりやすさ: ユーザーが現在どこにいて、どこに行けるのかが明確にわかる導線設計とする
- エラー時の遷移: エラー発生時やキャンセル時の遷移先も明確に定義する
文書化の推奨表現:
- 画面一覧表の作成: 画面ID、画面名、概要、URL、アクセス権限を一覧表にまとめる
- 画面遷移図の作成: Mermaidやdraw.ioで画面間の遷移関係を視覚的に表現する
- 遷移条件の明記: ボタン押下、リンクタップ、条件分岐など、遷移のトリガーを記載する
🏗️ プロセス2: 画面ごとの項目定義とバリデーション設計
設計対象:
各画面に配置する入力項目、表示項目、ボタン、リンクを定義し、入力項目に対するバリデーションルールを決定する。
具体例:
- 入力項目(テキストボックス、ドロップダウン、ラジオボタン、チェックボックス、日付選択など)をどう配置するか
- 各項目の必須/任意、最大文字数、入力形式(メール、電話番号、数値など)
- バリデーションのタイミング(リアルタイム、フォーカスアウト時、送信時)
- 初期値、プレースホルダー、ヘルプテキストの設定
設計原則:
- 入力の最小化: ユーザーの入力負担を減らすため、必須項目は最小限にし、初期値やデフォルト値を活用する
- 即座なフィードバック: バリデーションエラーはできるだけ早く、わかりやすく表示する
- エラーメッセージの具体性: 「入力エラー」ではなく「メールアドレスの形式が正しくありません」など具体的に伝える
- アクセシビリティ: ラベルとフォーム要素の関連付け、キーボード操作、スクリーンリーダー対応を考慮する
文書化の推奨表現:
- 画面項目定義表の作成: 項目ID、項目名、入力種別、必須/任意、最大文字数、バリデーションルール、初期値を一覧化する
- バリデーション仕様表の作成: 各項目のバリデーション内容とエラーメッセージを対応付けた表を作成する
- デザインとの連携: Figmaなどのデザインツールと項目定義を紐付け、齟齬がないようにする
🏗️ プロセス3: 処理フローとAPI連携の設計
設計対象:
画面上での操作がどのような処理フローで実行され、どのAPIと連携するかを定義する。
具体例:
- ボタン押下時の処理順序(バリデーション → API呼び出し → 結果表示 → 画面遷移)
- API呼び出しのタイミングと方法(同期/非同期、リトライ処理)
- ローディング表示のタイミングと場所
- 成功時・失敗時の処理分岐
設計原則:
- ユーザーへの状態表示: 処理中はローディング表示、完了時は成功メッセージ、エラー時はエラーメッセージを明確に表示する
- 適切なエラーハンドリング: ネットワークエラー、タイムアウト、サーバーエラーなど、想定されるエラーケースを網羅する
- 楽観的UI更新: 可能な場合は、APIレスポンスを待たずにUIを更新し、体感速度を向上させる
- 冪等性の考慮: 二重送信を防ぐための制御(ボタンの無効化、トークンチェックなど)を実装する
文書化の推奨表現:
- シーケンス図の作成: Mermaidでユーザー、画面、API、データベース間の処理フローを図示する
- API呼び出し仕様の記載: 呼び出すAPI、リクエストパラメータ、レスポンス処理を明記する
- エラーハンドリング表の作成: エラー種別ごとの表示メッセージと対処方法を一覧化する
🚨 よくある失敗と予防策
🚧 実例収集後、追記予定
📚 参考資料・関連リンク
- 参考文献: 『About Face - インタラクションデザインの教科書』、『Webフォームデザイン - 入力フォームの設計とユーザビリティ』、『ユーザビリティエンジニアリング原論』
- 関連する他のガイド: 画面設計全体方針ガイド、画面一覧・画面遷移図ガイド、API設計ガイド、アクセシビリティガイドライン
- ツール・テンプレート: Figma、draw.io、Mermaid(シーケンス図・状態遷移図)
- デザインシステム・UI規約: 各プロジェクトで採用しているデザインシステム(Material Design、Ant Design等)のガイドラインを参照
テンプレートサイト: 📄テンプレート集