1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS BedrockでPlaygroundとAPI経由の結果が大きく異なった話

Posted at

はじめに

  • 外部設計書のレビューをAWSBedrockを用いて行っています。
  • 本記事では、 PlaygroundとAPIの利用方法の違いによって、モデルの出力結果に差が生じたので共有のためにも記事を書いています。

AWS Bedrockとは

AWS Bedrockは、AWSが提供する フルマネージドな生成AIサービス です。
インフラの構築やモデル運用を意識することなく、
生成AIモデルをすぐに利用できる点が特徴です。

AWS Bedrockの特徴

  • 複数の生成AIモデルを統一的なAPIで利用できる
  • モデルのホスティングやスケーリングが不要
  • AWSのIAMやVPCと連携したセキュアな利用が可能

AWS Bedrockの利用方法

AWS Bedrockには、主に 2つの利用方法 があります。

  • Playground

    • 管理コンソール上のGUIから利用
    • プロンプトやパラメータを手軽に試せる
  • API経由

    • AWS SDKやREST APIから利用
    • アプリケーションやバッチ処理に組み込み可能

以下では、Playground・API経由ともに2回ずつ結果を表示し、結果からわかる差分を掲載しています。


検証条件について

  • 使用したモデル名:Claude haiku 4.5 v1 (Global Anthropic Claude Haiku 4.5)
  • 設定したパラメータ
    • temperature:0.05
    • max_tokens:32000
  • プロンプト内容
ユーザプロンプト
	本プロンプトはテンプレートとして使用します。そのため、何度実行しても出力される項目・順序・構成は常に完全に同一である必要があります。
	あなたは業務システム開発における「外部設計書レビューの実施担当者」です。
	
	以下を厳守してください。
	・レビュー観点はユーザーが提示したもののみを使用する
	・観点の追加、削除、名称変更は禁止
	・観点の順序変更は禁止
	・一般的・業界標準などの観点は使用しない
	
	これは外部設計書である新しいドキュメントのレビューリクエストです。過去の会話履歴や以前にレビューしたドキュメント内容は一切参照せず、以下に提示される新しいドキュメントのみを対象としてレビューを実行してください。
	
	【コンテキストリセット指示】
	・以前の会話やドキュメント内容は完全に無視してください
	・このリクエストで提供されるドキュメント内容のみを分析対象としてください
	・過去のレビュー結果や分析内容を引用や参照しないでください
	・このドキュメント固有の内容のみに基づいて新しいレビューを実行してください
	
	以下は画面設計の外部設計書ドキュメントのレビュー観点です。この観点および一般的なITのレビュー観点の両方に沿って以下の内容をレビューしてください。
	
	# 画面設計 外部設計書レビュー観点
	
	---
	
	## ① 画面項目・レイアウトの妥当性
	
	### 1. 画面構成・配置
	- 1-1 画面ID・画面名が一意に定義されているか
	- 1-2 画面の目的・用途が明確に記載されているか
	- 1-3 項目の配置・並び順が業務フローに沿っているか
	- 1-4 項目のグルーピングが論理的か
	- 1-5 必須/任意項目が視覚的に判別できるか
	- 1-6 スクロール有無・範囲が明確か
	- 1-7 重要情報が初期表示領域に収まっているか
	- 1-8 モーダル/別画面表示の使い分けが適切か
	
	---
	
	### 2. 各UI部品の仕様記載(共通)
	- 2-1 項目ID(論理名・物理名)が定義されているか
	- 2-2 UI部品種別(テキスト、チェックボックス等)が明確か
	- 2-3 表示/非表示条件が定義されているか
	- 2-4 活性/非活性条件が定義されているか
	- 2-5 表示形式(全角/半角、日付形式等)が明確か
	- 2-6 単位表示(円、%等)の有無が定義されているか
	- 2-7 ツールチップ・補足説明の有無が整理されているか
	
	---
	
	### 3. テキストボックス・入力項目の詳細
	- 3-1 表示サイズ(見た目の桁数)が定義されているか
	- 3-2 最大文字数・最小文字数が定義されているか
	- 3-3 初期値(固定値/空白/引継ぎ)が明記されているか
	- 3-4 入力可能文字種が定義されているか
	- 3-5 IME制御(ON/OFF/英数)が必要に応じて定義されているか
	- 3-6 禁止文字・トリム有無が明確か
	
	---
	
	### 4. 表示文言・ラベル設計
	- 4-1 項目名・ラベルが業務用語として適切か
	- 4-2 画面間で用語・表記が統一されているか
	- 4-3 略語・専門用語に補足が必要か
	- 4-4 文字数超過時の表示方法が定義されているか
	- 4-5 多言語対応有無(将来含む)が考慮されているか
	
	---
	
	### 5. 一覧・表(グリッド)表示の仕様
	- 5-1 列名・表示順・表示幅が定義されているか
	- 5-2 ソート可否・初期ソート条件が明確か
	- 5-3 ページング有無・件数が定義されているか
	- 5-4 行選択時の挙動が定義されているか
	- 5-5 行強調表示・状態別表示ルールがあるか
	- 5-6 データなし時の表示文言が定義されているか
	
	---
	
	### 6. 表示制御・デフォルト表示
	- 6-1 初期表示状態が明確か
	- 6-2 検索条件未指定時の挙動が定義されているか
	- 6-3 表示件数上限・制限時の扱いが定義されているか
	- 6-4 前回条件保持などのユーザー設定保存有無
	
	---
	
	### 7. レスポンシブ・表示環境差異への対応(任意)
	- 7-1 画面サイズ・解像度差による表示崩れの考慮
	- 7-2 ブラウザ差異による影響の考慮
	- 7-3 拡大縮小時の可読性
	
	---
	
	## ② 入力制御・業務ルールの妥当性
	
	### 1. 入力チェック仕様
	- 1-1 必須チェック条件が明確か
	- 1-2 桁数・形式チェックが定義されているか
	- 1-3 相関チェックが整理されているか
	- 1-4 チェックタイミングが明確か
	- 1-5 チェック順序が整理されているか
	- 1-6 警告とエラーの区別があるか
	
	---
	
	### 2. エラーメッセージ設計
	- 2-1 エラー条件とメッセージが対応付けられているか
	- 2-2 利用者に理解しやすい文言か
	- 2-3 表示位置が定義されているか
	- 2-4 複数エラー時の表示ルールが明確か
	- 2-5 エラーコード・問い合わせ用情報があるか
	
	---
	
	### 3. 業務ルール・制約条件
	- 3-1 業務上の入力制約が明示されているか
	- 3-2 権限・ロールによる制御が整理されているか
	- 3-3 状態遷移による制御が定義されているか
	- 3-4 例外業務・特例処理が明記されているか
	- 3-5 法令・社内規程に基づく制約が考慮されているか
	
	---
	
	### 4. マスタ・外部データ依存項目
	- 4-1 参照マスタ・データ取得元が明確か
	- 4-2 表示順・表示内容が定義されているか
	- 4-3 無効データ・未存在時の扱いが定義されているか
	- 4-4 マスタ変更時の反映タイミングが明確か
	- 4-5 参照条件が明記されているか(完全一致、部分一致、前方一致など)
	
	---
	
	### 5. 自動補完・自動計算項目
	- 5-1 自動設定・計算条件が明確か
	- 5-2 手入力可否が定義されているか
	- 5-3 再計算トリガーが明確か
	- 5-4 丸め処理・計算精度が定義されているか
	
	---
	
	### 6. データ整合性・排他制御
	- 6-1 排他制御方式が定義されているか
	- 6-2 更新競合時の挙動・メッセージが明確か
	- 6-3 排他発生後の再編集可否が定義されているか
	
	---
	
	### 7. 監査・証跡(オーディット)観点(任意)
	- 7-1 変更前後の値の保持要否
	- 7-2 操作ログ取得対象の整理
	- 7-3 監査要件との整合性
	
	---
	
	## ③ 操作性・遷移・非機能観点の妥当性
	
	### 1. ボタン・操作仕様
	- 1-1 各ボタンの役割・処理内容が明確か
	- 1-2 二重送信防止が考慮されているか
	- 1-3 確認ダイアログ有無・文言が定義されているか
	- 1-4 権限による表示/非表示制御があるか
	- 1-5 危険操作の配置・強調が適切か
	
	---
	
	### 2. 画面遷移・連携
	- 2-1 遷移元・遷移先が整理されているか
	- 2-2 遷移時の引継ぎ項目が明確か
	- 2-3 戻る操作時の状態保持が定義されているか
	- 2-4 URL直接アクセス時の挙動が定義されているか
	- 2-5 セッション切れ時の遷移が考慮されているか
	
	---
	
	### 3. 非機能・共通観点
	- 3-1 想定レスポンス時間が考慮されているか
	- 3-2 ローディング表示等のユーザー通知があるか
	- 3-3 利用ブラウザ・端末条件が明記されているか
	- 3-4 ログ出力対象操作が整理されているか
	
	---
	
	### 4. キーボード操作・フォーカス制御
	- 4-1 初期フォーカス位置が定義されているか
	- 4-2 Tab順が業務フローに沿っているか
	- 4-3 Enterキー動作が定義されているか
	- 4-4 ショートカットキー有無が整理されているか
	
	---
	
	### 5. 再利用・共通化観点
	- 5-1 共通部品が他画面と統一されているか
	- 5-2 既存画面との差分が明確か
	- 5-3 将来的な拡張性が考慮されているか
	
	---
	
	### 6. 運用・保守観点
	- 6-1 誤操作・誤登録時のリカバリ手段があるか
	- 6-2 運用調査に必要な情報が取得可能か
	- 6-3 問い合わせ対応に必要な画面識別情報があるか
	
	---
	
	### 7. 例外・異常系UX/セキュリティ観点(任意)
	- 7-1 通信エラー・タイムアウト時の画面挙動
	- 7-2 入力内容保持・再試行可否
	- 7-3 画面単位の認可制御
	- 7-4 URL直叩き・不正操作時の制御
	
	レビュー時の重要な留意事項:
	・該当箇所は、元のドキュメントから実際の文章を正確に引用してください。短い引用ではなく、問題が明確にわかる十分な長さの文章を引用してください。
	・該当箇所には、可能な限り位置情報(章番号、節番号、段落番号、行番号など)を含めてください。
	・改善案は設計書レベルの修正案に留め、実装コードの提案は行わないでください。
	・必要に応じて、設計書に追記すべき記載例(文章例)は記載しても構いません。
	・観点毎に見出しを区切り、指摘事項を観点毎に記載してください。
	・文章はです・ます調で記載してください。
	・提示した観点以外でレビューを行わないでください。
	・一つの小項目の観点につき、指摘件数は0件から最大20件までとする。この際、無理に最大件数まで指摘を行う必要はない。
	・出力は提示した観点の順序を厳守してください。
	・指摘が存在しない観点は出力しないでください。
	
	該当箇所の記載方法の例:
	✅ 良い例: 
	#### 【5. 一覧・表(グリッド)表示の仕様】
	
	**指摘5:5-6 データなし時の表示文言が定義されているか**
	
	設計書記載内容:53行目 4.2 一覧制御
	```
	4.2 一覧制御
	- 初期表示:更新日時 降順
	- ページング:20件/ページ
	- データ0件時:「該当するデータはありません」表示
	```
	
	指摘内容:
	データ0件時の表示文言は定義されていますが、表示位置(一覧グリッド領域中央など)が不明確です。また、「該当するデータはありません」のメッセージがアラート形式なのか、グリッド内テキスト表示なのかが不明確です。
	
	
	❌ 悪い例: 「表示の仕様」「データ0件表示定義」
	
	【必須】出力フォーマット:
	Markdown形式を利用してください。
	
	【重要】Markdown形式ルール:
	・見出しは「##」から開始する
	・「#(H1)」は使用しない
	・見出しレベルの飛び級は禁止
	・見出し、箇条書き、表、コードブロックの記法のみを使用して記述する
	・絵文字、HTMLタグ、インラインHTMLは使用しない
	・太字(**)は用語定義・重要語のみ使用する
	・斜体(*)は使用してはならない
	
	【重要】該当箇所の引用について:
	・該当箇所には必ず位置情報(章番号、節番号、段落番号、項目番号など)を含めてください
	・元のドキュメントから実際の文章を正確にコピーして引用してください
	・問題が明確にわかるよう、十分な長さの文章を引用してください
	・指摘は
	「指摘番号:レビュー観点
	設計書記載内容:引用箇所の情報
	引用文」
	の形式で記載してください

---

Playgroundでの実行結果(2回分)

  • 出力結果
1回目
Model: # 外部設計書レビュー結果

## ① 画面項目・レイアウトの妥当性

### 2. 各UI部品の仕様記載(共通)

**指摘1:2-3 表示/非表示条件が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
検索条件エリアの各項目について、表示/非表示条件が定義されていません。例えば、ユーザーの権限レベルや画面の状態によって、特定の検索条件項目を非表示にする必要があるかどうかが不明確です。また、一覧表示の各列についても、ユーザーの権限に応じた表示制御の有無が明記されていません。

**指摘2:2-4 活性/非活性条件が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」および第8章「ボタン・操作仕様」

```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
「編集」ボタンについて「行選択必須」と記載されていますが、行が未選択の場合にボタンが非活性になるのか、クリック時にエラーメッセージを表示するのかが不明確です。また、第7章の業務ルール「無効ユーザーは編集不可(参照のみ)」に基づいて、無効状態のユーザーが選択された場合の「編集」ボタンの活性/非活性条件が明記されていません。

**指摘3:2-7 ツールチップ・補足説明の有無が整理されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
検索条件の各項目に対するツールチップや補足説明の有無が整理されていません。特に「ユーザーID」の「前後空白トリム」や「ユーザー名」の「部分一致検索」といった仕様について、ユーザーに対する説明表示が必要かどうかが不明確です。

### 3. テキストボックス・入力項目の詳細

**指摘4:3-1 表示サイズ(見た目の桁数)が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
```

指摘内容:
「桁数」列に「最大20」「最大50」と記載されていますが、これは入力可能な最大文字数を示しており、テキストボックスの見た目の表示サイズ(例:20文字分の幅、50文字分の幅)が定義されていません。画面レイアウトの設計に必要な表示サイズ(ピクセル単位またはem単位)の記載が必要です。

**指摘5:3-5 IME制御(ON/OFF/英数)が必要に応じて定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
```

指摘内容:
「ユーザーID」は「半角英数」の表示形式が指定されていますが、IME制御(入力時にIMEを自動的にOFFにするなど)が定義されていません。ユーザーの入力効率向上とエラー防止のため、IME制御の要否を明記する必要があります。

### 4. 表示文言・ラベル設計

**指摘6:4-4 文字数超過時の表示方法が定義されているか**

設計書記載内容:第4章「一覧表示仕様」の4.1「一覧項目」

```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 1 | ユーザーID | user_id | 120px | 可 | クリックで詳細遷移 |
| 2 | ユーザー名 | user_name | 200px | 可 | - |
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
| 4 | 状態 | status | 100px | 可 | 有効/無効 |
| 5 | 更新日時 | updated_at | 180px | 可 | yyyy/MM/dd HH:mm |
```

指摘内容:
一覧表示の各列に表示幅が定義されていますが、ユーザー名など文字数が多い項目が表示幅を超えた場合の表示方法(省略記号「…」による切り詰め、ツールチップ表示、折り返しなど)が定義されていません。

### 5. 一覧・表(グリッド)表示の仕様

**指摘7:5-5 行強調表示・状態別表示ルールがあるか**

設計書記載内容:第4章「一覧表示仕様」の4.2「一覧制御」

```
4.2 一覧制御
- 初期表示:更新日時 降順
- ページング:20件/ページ
- データ0件時:「該当するデータはありません」表示
- 行選択時:行背景色変更
```

指摘内容:
行選択時に「行背景色変更」と記載されていますが、具体的な色指定やスタイル定義が不明確です。また、第7章の業務ルール「無効ユーザーは編集不可(参照のみ)」に基づいて、無効状態のユーザー行を視覚的に区別する表示ルール(例:グレーアウト、斜体表示など)が定義されていません。

### 6. 表示制御・デフォルト表示

**指摘8:6-2 検索条件未指定時の挙動が定義されているか**

設計書記載内容:第4章「一覧表示仕様」の4.2「一覧制御」

```
4.2 一覧制御
- 初期表示:更新日時 降順
- ページング:20件/ページ
- データ0件時:「該当するデータはありません」表示
- 行選択時:行背景色変更
```

指摘内容:
初期表示時に検索条件が未指定の場合、全ユーザーを表示するのか、何も表示しないのかが不明確です。「初期表示:更新日時 降順」と記載されていますが、この時点で一覧にデータが表示されるのか、ユーザーが検索ボタンをクリックするまで一覧が空の状態なのかが定義されていません。

**指摘9:6-4 前回条件保持などのユーザー設定保存有無**

設計書記載内容:全章を通じて該当記載なし

指摘内容:
ユーザーが前回入力した検索条件を次回アクセス時に保持するかどうか、またはソート順序やページング設定を保存するかどうかが定義されていません。運用効率の観点から、これらの設定保存の要否を明記する必要があります。

---

## ② 入力制御・業務ルールの妥当性

### 1. 入力チェック仕様

**指摘10:1-3 相関チェックが整理されているか**

設計書記載内容:第5章「入力チェック仕様」

```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
| 2 | ユーザーID | 英数字のみ | 入力時 | エラー |
| 3 | ユーザー名 | 最大文字数超過 | 入力時 | エラー |
| 4 | 状態 | 不正値 | 登録時 | エラー |
```

指摘内容:
入力チェック仕様に単項目チェックのみが記載されており、複数項目間の相関チェック(例:特定の権限が選択された場合に特定の状態のみ許可するなど)が定義されていません。業務ルール上、項目間の依存関係がある場合は相関チェック仕様を追加する必要があります。

**指摘11:1-6 警告とエラーの区別があるか**

設計書記載内容:第5章「入力チェック仕様」

```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
| 2 | ユーザーID | 英数字のみ | 入力時 | エラー |
| 3 | ユーザー名 | 最大文字数超過 | 入力時 | エラー |
| 4 | 状態 | 不正値 | 登録時 | エラー |
```

指摘内容:
すべてのチェック結果が「エラー」として分類されており、警告(ユーザーに注意を促すが処理を続行できる)と区別されていません。例えば、既に存在するユーザーIDに類似した名前を入力した場合など、警告レベルのチェックが必要な場合は、その区別を明記する必要があります。

### 2. エラーメッセージ設計

**指摘12:2-4 複数エラー時の表示ルールが明確か**

設計書記載内容:第6章「エラーメッセージ設計」

```
| エラーコード | 条件 | メッセージ | 表示位置 |
|---|---|---|---|
| E001 | ユーザーID未入力 | ユーザーIDを入力してください | 項目下部 |
| E002 | 形式不正 | 入力形式が正しくありません | 画面上部 |
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
複数のエラーが同時に発生した場合の表示ルールが定義されていません。例えば、ユーザーIDが未入力かつ形式不正の場合、E001とE002の両方を表示するのか、優先順位に基づいて一つのみ表示するのかが不明確です。複数エラー時の表示順序や表示方法を明記する必要があります。

### 3. 業務ルール・制約条件

**指摘13:3-2 権限・ロールによる制御が整理されているか**

設計書記載内容:第7章「業務ルール・制約」

```
- 管理者ロールのみ本画面を利用可能
- 無効ユーザーは編集不可(参照のみ)
- ユーザーIDはシステム内で一意
```

指摘内容:
「管理者ロールのみ本画面を利用可能」と記載されていますが、管理者ロール内に複数のレベルがある場合の制御(例:全ユーザーの編集が可能な管理者と、特定部門のユーザーのみ編集可能な管理者など)が定義されていません。また、各操作(検索、新規登録、編集、削除など)に対する権限制御の詳細が不明確です。

**指摘14:3-3 状態遷移による制御が定義されているか**

設計書記載内容:第7章「業務ルール・制約」

```
- 無効ユーザーは編集不可(参照のみ)
```

指摘内容:
無効ユーザーの状態から有効ユーザーへの状態遷移が可能かどうか、また可能な場合はどの権限で実行可能かが定義されていません。状態遷移の可否と権限要件を明記する必要があります。

### 4. マスタ・外部データ依存項目

**指摘15:4-1 参照マスタ・データ取得元が明確か**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

および第4章「一覧表示仕様」の4.1「一覧項目」

```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
```

指摘内容:
「状態」ドロップダウンと「権限」列について「マスタ参照」「ロール名表示」と記載されていますが、参照するマスタテーブルの名称やデータベース上の実体が明確に定義されていません。マスタテーブル名、参照キー、表示項目を明記する必要があります。

**指摘16:4-2 表示順・表示内容が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
「状態」ドロップダウンの初期値が「全て」と記載されていますが、ドロップダウンに表示される選択肢の順序(例:有効、無効の順序)や、「全て」という選択肢が実際に表示されるのかが不明確です。マスタデータの表示順序と表示内容を明記する必要があります。

**指摘17:4-3 無効データ・未存在時の扱いが定義されているか**

設計書記載内容:第4章「一覧表示仕様」の4.1「一覧項目」

```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
```

指摘内容:
一覧表示で「権限」を「ロール名表示」すると記載されていますが、参照先のロールマスタが削除されたり無効化された場合の表示方法が定義されていません。例えば、ロール名が存在しない場合にロールIDを表示するのか、エラー表示するのかが不明確です。

### 6. データ整合性・排他制御

**指摘18:6-2 更新競合時の挙動・メッセージが明確か**

設計書記載内容:第6章「エラーメッセージ設計」

```
| エラーコード | 条件 | メッセージ | 表示位置 |
|---|---|---|---|
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラー発生時のメッセージは定義されていますが、エラー発生後のユーザーの操作フロー(例:入力内容を保持したまま編集画面に戻すのか、一覧画面に戻すのか)が定義されていません。また、最新データの確認方法や再編集の手順が不明確です。

**指摘19:6-3 排他発生後の再編集可否が定義されているか**

設計書記載内容:第6章「エラーメッセージ設計」

```
| エラーコード | 条件 | メッセージ | 表示位置 |
|---|---|---|---|
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラー発生後、ユーザーが最新データを確認した上で再度編集を試みることが可能かどうかが定義されていません。排他制御の方式(楽観的ロック、悲観的ロックなど)と再編集の可否を明記する必要があります。

---

## ③ 操作性・遷移・非機能観点の妥当性

### 1. ボタン・操作仕様

**指摘20:1-2 二重送信防止が考慮されているか**

設計書記載内容:第8章「ボタン・操作仕様」

```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
各ボタンの処理内容は記載されていますが、ボタンクリック後の二重送信防止(例:ボタンの無効化、ローディング中の操作禁止)が考慮されているかが不明確です。特に「新規登録」ボタンなど、データベースへの書き込みを伴う操作について、二重送信防止の仕様を明記する必要があります。

**指摘21:1-4 権限による表示/非表示制御があるか**

設計書記載内容:第8章「ボタン・操作仕様」

```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
```

指摘内容:
「新規登録」ボタンに「権限制御あり」と記載されていますが、具体的にどの権限が必要か、権限がない場合にボタンを非表示にするのか無効化するのかが不明確です。権限制御の詳細(必要な権限、非表示時の代替表示など)を明記する必要があります。

### 2. 画面遷移・連携

**指摘22:2-3 戻る操作時の状態保持が定義されているか**

設計書記載内容:第9章「画面遷移」

```
| 遷移元 | 操作 | 遷移先 | 引継ぎ情報 |
|---|---|---|---|
| 本画面 | 新規登録 | ユーザー登録画面 | なし |
| 本画面 | ユーザーIDクリック | ユーザー編集画面 | ユーザーID |
```

指摘内容:
ユーザー登録画面またはユーザー編集画面から本画面に戻る際に、前回の検索条件やスクロール位置が保持されるかどうかが定義されていません。ユーザーの操作効率向上のため、戻る操作時の状態保持要件を明記する必要があります。

### 3. 非機能・共通観点

**指摘23:3-2 ローディング表示等のユーザー通知があるか**

設計書記載内容:第10章「非機能・共通仕様」

```
- 想定レスポンス:3秒以内
- 対応ブラウザ:Chrome(最新版)、Edge(最新版)
- ローディング中はスピナー表示
- 操作ログ:検索・登録・更新
```

指摘内容:
「ローディング中はスピナー表示」と記載されていますが、スピナーの表示位置、表示タイミング(何秒以上の処理時間でスピナーを表示するのか)、スピナーのデザイン仕様が不明確です。ユーザー通知の詳細を明記する必要があります。

**指摘24:3-4 ログ出力対象操作が整理されているか**

設計書記載内容:第10章「非機能・共通仕様」

```
- 操作ログ:検索・登録・更新
```

指摘内容:
操作ログの対象として「検索・登録・更新」と記載されていますが、削除操作がログ対象に含まれるかどうかが不明確です。また、各操作ログに記録すべき情報(ユーザーID、操作日時、操作内容、変更前後の値など)が定義されていません。ログ出力仕様を詳細に明記する必要があります。

### 4. キーボード操作・フォーカス制御

**指摘25:4-2 Tab順が業務フローに沿っているか**

設計書記載内容:第11章「キーボード・フォーカス制御」

```
- 初期フォーカス:ユーザーID(検索条件)
- Tab順:上から下、左から右
- Enterキー:検索実行
```

指摘内容:
Tab順が「上から下、左から右」と記載されていますが、検索条件エリアの複数項目(ユーザーID、ユーザー名、状態)を経由した後、検索ボタンへのTab移動順序が明確に定義されていません。具体的なTab順序(例:SC-01 → SC-02 → SC-03 → 検索ボタン → 新規登録ボタン)を明記する必要があります。

**指摘26:4-4 ショートカットキー有無が整理されているか**

設計書記載内容:第11章「キーボード・フォーカス制御」

```
- 初期フォーカス:ユーザーID(検索条件)
- Tab順:上から下、左から右
- Enterキー:検索実行
```

指摘内容:
Enterキーで検索実行することは記載されていますが、その他のショートカットキー(例:Ctrl+Nで新規登録、Escで検索条件クリアなど)の有無が定義されていません。ショートカットキー仕様を整理する必要があります。

### 6. 運用・保守観点

**指摘27:6-1 誤操作・誤登録時のリカバリ手段があるか**

設計書記載内容:全章を通じて該当記載なし

指摘内容:
ユーザーが誤って新規登録ボタンをクリックした場合や、検索条件を誤入力した場合のリカバリ手段(例:確認ダイアログ、キャンセルボタン、戻るボタン)が定義されていません。誤操作時のリカバリ手段を明記する必要があります。

### 7. 例外・異常系UX/セキュリティ観点

**指摘28:7-1 通信エラー・タイムアウト時の画面挙動**

設計書記載内容:第12章「セキュリティ・例外対応」

```
- URL直接アクセス時:権限エラー画面表示
- セッション切れ時:ログイン画面へ遷移
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー時の対応として「エラーダイアログ表示、再試行可能」と記載されていますが、タイムアウト時間の定義や、複数回の再試行失敗時の処理が不明確です。また、通信エラーの種類(接続タイムアウト、読み込みタイムアウト、サーバーエラーなど)に応じた異なる対応が必要かどうかが定義されていません。

**指摘29:7-2 入力内容保持・再試行可否**

設計書記載内容:第12章「セキュリティ・例外対応」

```
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー発生時に、ユーザーが入力した検索条件が保持されるかどうかが定義されていません。再試行時にユーザーが再度検索条件を入力する必要があるのか、それとも前回の入力内容が保持されているのかを明記する必要があります。

**指摘30:7-4 URL直叩き・不正操作時の制御**

設計書記載内容:第12章「セキュリティ・例外対応」

```
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
URL直接アクセス時に「権限エラー画面表示」と記載されていますが、権限がない場合と権限がある場合の両方について、具体的な画面遷移フロー(例:権限がない場合はエラー画面表示後、ホーム画面へ遷移するなど)が定義されていません。また、不正なパラメータを含むURLでのアクセス時の対応も明記する必要があります。
2回目
Model: # 外部設計書レビュー結果

## ① 画面項目・レイアウトの妥当性

### 2. 各UI部品の仕様記載(共通)

**指摘1:2-3 表示/非表示条件が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
検索条件エリアの各項目について、表示/非表示条件が定義されていません。例えば、ユーザーの権限レベルや画面の状態によって、特定の検索条件項目を非表示にする必要があるかどうかが不明確です。また、一覧表示の各列についても、ユーザーの権限に応じた表示制御の有無が明記されていません。

**指摘2:2-4 活性/非活性条件が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」および第8章「ボタン・操作仕様」

```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
「編集」ボタンについて「行選択必須」と記載されていますが、行が未選択の場合にボタンが非活性になるのか、クリック時にエラーメッセージを表示するのかが不明確です。また、第7章の業務ルール「無効ユーザーは編集不可(参照のみ)」に基づいて、無効状態のユーザー行に対して「編集」ボタンが非活性になるべきかどうかが明記されていません。

**指摘3:2-7 ツールチップ・補足説明の有無が整理されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
```

指摘内容:
検索条件エリアの各項目に対して、ツールチップや補足説明が必要かどうかが整理されていません。特に「ユーザーID」の検索が前後空白トリムされることや、「ユーザー名」が部分一致検索であることについて、ユーザーへの説明方法が定義されていません。

### 3. テキストボックス・入力項目の詳細

**指摘4:3-1 表示サイズ(見た目の桁数)が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
```

指摘内容:
テキストボックスの最大文字数は定義されていますが、画面上での表示サイズ(見た目の桁数、例:20文字分の幅など)が定義されていません。これにより、実装時に入力フィールドのサイズが不確定になる可能性があります。

**指摘5:3-5 IME制御(ON/OFF/英数)が必要に応じて定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
```

指摘内容:
「ユーザーID」は半角英数のみの入力が必須ですが、IME制御(入力メソッドエディタの自動OFF設定など)が定義されていません。ユーザーが日本語入力モードで誤入力することを防ぐための制御が明記されていません。

### 4. 表示文言・ラベル設計

**指摘6:4-4 文字数超過時の表示方法が定義されているか**

設計書記載内容:第4章「一覧表示仕様」の4.1「一覧項目」

```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 2 | ユーザー名 | user_name | 200px | 可 | - |
```

指摘内容:
一覧表示の「ユーザー名」列は200pxの表示幅が定義されていますが、実際のユーザー名が最大50文字(全角)の場合、表示幅を超える可能性があります。文字数超過時に省略記号(…)を表示するのか、ツールチップで全文を表示するのかが不明確です。

### 5. 一覧・表(グリッド)表示の仕様

**指摘7:5-5 行強調表示・状態別表示ルールがあるか**

設計書記載内容:第4章「一覧表示仕様」の4.2「一覧制御」

```
4.2 一覧制御
- 初期表示:更新日時 降順
- ページング:20件/ページ
- データ0件時:「該当するデータはありません」表示
- 行選択時:行背景色変更
```

指摘内容:
行選択時に「行背景色変更」と記載されていますが、具体的な色(例:#E8F4F8など)が定義されていません。また、第7章の業務ルール「無効ユーザーは編集不可(参照のみ)」に基づいて、無効状態のユーザー行を視覚的に区別する表示ルール(例:グレーアウト、斜体表示など)が定義されていません。

### 6. 表示制御・デフォルト表示

**指摘8:6-2 検索条件未指定時の挙動が定義されているか**

設計書記載内容:第4章「一覧表示仕様」の4.2「一覧制御」

```
4.2 一覧制御
- 初期表示:更新日時 降順
- ページング:20件/ページ
```

指摘内容:
初期表示時に「更新日時 降順」でソートされることは記載されていますが、検索条件が全て未指定の場合に全ユーザーを表示するのか、それとも検索条件の入力を促すのかが不明確です。特に、管理者が多数のユーザーを管理する場合、初期表示で全件取得することがパフォーマンスに影響する可能性があります。

**指摘9:6-4 前回条件保持などのユーザー設定保存有無**

設計書記載内容:全章を通じて該当記載なし

指摘内容:
ユーザーが検索条件を入力して検索を実行した後、別の画面から本画面に戻ってきた場合、前回の検索条件を保持するかどうかが定義されていません。また、ページング時の位置情報(例:2ページ目を表示していた場合)を保持するかどうかも不明確です。

## ② 入力制御・業務ルールの妥当性

### 1. 入力チェック仕様

**指摘10:1-3 相関チェックが整理されているか**

設計書記載内容:第5章「入力チェック仕様」

```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
| 2 | ユーザーID | 英数字のみ | 入力時 | エラー |
| 3 | ユーザー名 | 最大文字数超過 | 入力時 | エラー |
| 4 | 状態 | 不正値 | 登録時 | エラー |
```

指摘内容:
本画面は「検索・一覧表示・新規登録・編集を行う画面」と記載されていますが、入力チェック仕様は「登録時」のチェックのみが記載されています。検索条件の入力時に相関チェック(例:「ユーザーID」と「ユーザー名」の両方が指定された場合の扱い)が必要かどうかが不明確です。

**指摘11:1-6 警告とエラーの区別があるか**

設計書記載内容:第5章「入力チェック仕様」

```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
| 2 | ユーザーID | 英数字のみ | 入力時 | エラー |
| 3 | ユーザー名 | 最大文字数超過 | 入力時 | エラー |
| 4 | 状態 | 不正値 | 登録時 | エラー |
```

指摘内容:
全てのチェック結果が「エラー」として分類されていますが、警告レベルのチェック(例:推奨値の範囲外だが処理は続行可能な場合)が必要かどうかが検討されていません。

### 2. エラーメッセージ設計

**指摘12:2-4 複数エラー時の表示ルールが明確か**

設計書記載内容:第6章「エラーメッセージ設計」

```
| エラーコード | 条件 | メッセージ | 表示位置 |
|---|---|---|---|
| E001 | ユーザーID未入力 | ユーザーIDを入力してください | 項目下部 |
| E002 | 形式不正 | 入力形式が正しくありません | 画面上部 |
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
複数のエラーが同時に発生した場合(例:ユーザーIDが未入力かつ形式不正)の表示ルールが定義されていません。全てのエラーを同時表示するのか、優先度順に表示するのかが不明確です。

### 3. 業務ルール・制約条件

**指摘13:3-2 権限・ロールによる制御が整理されているか**

設計書記載内容:第7章「業務ルール・制約」

```
- 管理者ロールのみ本画面を利用可能
- 無効ユーザーは編集不可(参照のみ)
- ユーザーIDはシステム内で一意
```

指摘内容:
「管理者ロールのみ本画面を利用可能」と記載されていますが、管理者ロール内に複数のレベル(例:システム管理者、ユーザー管理者)がある場合、各レベルで実行可能な操作(新規登録、編集、削除など)が異なるかどうかが不明確です。

**指摘14:3-4 例外業務・特例処理が明記されているか**

設計書記載内容:第7章「業務ルール・制約」

```
- 管理者ロールのみ本画面を利用可能
- 無効ユーザーは編集不可(参照のみ)
- ユーザーIDはシステム内で一意
```

指摘内容:
無効ユーザーについて「編集不可(参照のみ)」と記載されていますが、無効ユーザーを再度有効化する場合の処理フローが不明確です。また、削除済みユーザーの扱い(表示するのか、非表示にするのか)が定義されていません。

### 4. マスタ・外部データ依存項目

**指摘15:4-1 参照マスタ・データ取得元が明確か**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

および第4章「一覧表示仕様」の4.1「一覧項目」

```
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
```

指摘内容:
「状態」ドロップダウンと一覧表示の「権限」列について「マスタ参照」「ロール名表示」と記載されていますが、参照するマスタテーブル名やデータ取得元が明記されていません。例えば、「状態」マスタのテーブル名、「権限」マスタのテーブル名が不明確です。

**指摘16:4-2 表示順・表示内容が定義されているか**

設計書記載内容:第3章「画面項目定義(検索条件エリア)」

```
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
「状態」ドロップダウンの初期値が「全て」と記載されていますが、ドロップダウンに表示される選択肢の順序(例:有効、無効、保留中など)が定義されていません。

**指摘17:4-3 無効データ・未存在時の扱いが定義されているか**

設計書記載内容:第4章「一覧表示仕様」の4.1「一覧項目」

```
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
```

指摘内容:
一覧表示の「権限」列について、参照するロールマスタが削除された場合や、ユーザーに割り当てられたロールが存在しない場合の表示方法が定義されていません。

### 5. 自動補完・自動計算項目

**指摘18:5-1 自動設定・計算条件が明確か**

設計書記載内容:第4章「一覧表示仕様」の4.1「一覧項目」

```
| 5 | 更新日時 | updated_at | 180px | 可 | yyyy/MM/dd HH:mm |
```

指摘内容:
一覧表示の「更新日時」について、ユーザーが新規登録時に手入力するのか、システムが自動設定するのかが不明確です。また、編集時に「更新日時」が自動更新されるかどうかも定義されていません。

### 6. データ整合性・排他制御

**指摘19:6-1 排他制御方式が定義されているか**

設計書記載内容:第6章「エラーメッセージ設計」

```
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラーが発生することは記載されていますが、排他制御の方式(楽観的ロック、悲観的ロック、タイムスタンプ比較など)が定義されていません。また、排他制御に使用するカラム(例:バージョン番号、更新日時)が明記されていません。

**指摘20:6-3 排他発生後の再編集可否が定義されているか**

設計書記載内容:第6章「エラーメッセージ設計」

```
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラーが発生した場合、ユーザーが最新データを再取得して再度編集できるかどうかが定義されていません。また、排他エラー発生後に入力内容が保持されるかどうかも不明確です。

## ③ 操作性・遷移・非機能観点の妥当性

### 1. ボタン・操作仕様

**指摘21:1-2 二重送信防止が考慮されているか**

設計書記載内容:第8章「ボタン・操作仕様」

```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
各ボタンについて、二重送信防止(例:ボタンクリック後の無効化、送信中の表示)が考慮されているかどうかが定義されていません。特に「検索」ボタンについて、連続クリックされた場合の挙動が不明確です。

**指摘22:1-4 権限による表示/非表示制御があるか**

設計書記載内容:第8章「ボタン・操作仕様」

```
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
```

指摘内容:
「新規登録」ボタンについて「権限制御あり」と記載されていますが、具体的にどの権限レベルで表示/非表示になるのかが定義されていません。また、「編集」ボタンについても権限制御が必要かどうかが不明確です。

### 2. 画面遷移・連携

**指摘23:2-3 戻る操作時の状態保持が定義されているか**

設計書記載内容:第9章「画面遷移」

```
| 遷移元 | 操作 | 遷移先 | 引継ぎ情報 |
|---|---|---|---|
| 本画面 | 新規登録 | ユーザー登録画面 | なし |
| 本画面 | ユーザーIDクリック | ユーザー編集画面 | ユーザーID |
```

指摘内容:
ユーザー登録画面またはユーザー編集画面から本画面に戻る場合、検索条件やページング位置などの状態が保持されるかどうかが定義されていません。

**指摘24:2-4 URL直接アクセス時の挙動が定義されているか**

設計書記載内容:第12章「セキュリティ・例外対応」

```
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
URL直接アクセス時に「権限エラー画面表示」と記載されていますが、権限がない場合と権限がある場合の区別が不明確です。また、権限エラー画面から遷移する先(ログイン画面、ホーム画面など)が定義されていません。

### 3. 非機能・共通観点

**指摘25:3-2 ローディング表示等のユーザー通知があるか**

設計書記載内容:第10章「非機能・共通仕様」

```
- 想定レスポンス:3秒以内
- 対応ブラウザ:Chrome(最新版)、Edge(最新版)
- ローディング中はスピナー表示
- 操作ログ:検索・登録・更新
```

指摘内容:
「ローディング中はスピナー表示」と記載されていますが、スピナーの表示位置(画面中央、ボタン上など)やスピナーの表示タイミング(何秒以上の処理時間で表示するのか)が定義されていません。

**指摘26:3-4 ログ出力対象操作が整理されているか**

設計書記載内容:第10章「非機能・共通仕様」

```
- 操作ログ:検索・登録・更新
```

指摘内容:
操作ログの対象が「検索・登録・更新」と記載されていますが、各操作でログに記録する項目(例:検索条件、検索結果件数、登録内容、更新前後の値など)が定義されていません。また、削除操作がログ対象に含まれるかどうかも不明確です。

### 4. キーボード操作・フォーカス制御

**指摘27:4-2 Tab順が業務フローに沿っているか**

設計書記載内容:第11章「キーボード・フォーカス制御」

```
- 初期フォーカス:ユーザーID(検索条件)
- Tab順:上から下、左から右
- Enterキー:検索実行
```

指摘内容:
Tab順が「上から下、左から右」と記載されていますが、具体的なTab順序(例:ユーザーID → ユーザー名 → 状態 → 検索ボタン → 新規登録ボタン)が明記されていません。また、一覧表示領域内でのTab順(行選択、編集ボタンなど)が定義されていません。

### 6. 運用・保守観点

**指摘28:6-1 誤操作・誤登録時のリカバリ手段があるか**

設計書記載内容:全章を通じて該当記載なし

指摘内容:
ユーザーが誤って検索条件を入力した場合や、誤ってユーザーを選択した場合のリカバリ手段(例:検索条件のクリアボタン、選択解除機能)が定義されていません。

**指摘29:6-2 運用調査に必要な情報が取得可能か**

設計書記載内容:第13章「運用・保守観点」

```
- 画面右下に画面ID表示
- エラー発生時はエラーコードを表示
- 問い合わせ時は画面ID・時刻を使用
```

指摘内容:
運用調査に必要な情報として「画面ID・時刻」が記載されていますが、エラー発生時のタイムスタンプ形式(例:yyyy/MM/dd HH:mm:ss)が定義されていません。また、ユーザーが実行した検索条件や操作内容を確認するための情報(例:セッションID、ユーザーID)が記載されていません。

### 7. 例外・異常系UX/セキュリティ観点

**指摘30:7-2 入力内容保持・再試行可否**

設計書記載内容:第12章「セキュリティ・例外対応」

```
- URL直接アクセス時:権限エラー画面表示
- セッション切れ時:ログイン画面へ遷移
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー時に「再試行可能」と記載されていますが、再試行時に検索条件や入力内容が保持されるかどうかが定義されていません。また、セッション切れ時にログイン画面へ遷移する場合、ログイン後に本画面に戻るかどうかも不明確です。

  • 出力の特徴
    • レビュー指摘件数は30件程度
    • レビュー指摘の言い回しが類似している
    • レビューの観点の引用の誤差は5つ以内
    • レビュー指摘コメントもプロンプトで使用した通り
    • プロンプトで掲載した観点のみ使用

API経由での実行結果

  • 出力結果
1回目
# 画面設計 外部設計書レビュー結果

## ① 画面項目・レイアウトの妥当性

### 1. 画面構成・配置

**指摘1:1-3 項目の配置・並び順が業務フローに沿っているか**

設計書記載内容:第2.1節「画面構成」
```
- 上部:画面タイトル/パンくずリスト
- 中部:検索条件エリア
- 下部:ユーザー一覧(グリッド)
- 右下:操作ボタン(新規登録)
```

指摘内容:
検索条件エリアの項目配置順序が不明確です。第3節の項目定義表では「ユーザーID」「ユーザー名」「状態」の順で記載されていますが、業務フロー上の検索優先度や、ユーザーが最初に入力する項目がどれかが明記されていません。また、「新規登録」ボタンが「右下」に配置されていますが、検索実行ボタンの位置が不明確です。

**指摘2:1-6 スクロール有無・範囲が明確か**

設計書記載内容:第2.2節「レイアウト妥当性」
```
- 一覧は縦スクロールあり(ページング対応)
```

指摘内容:
縦スクロールがあることは記載されていますが、検索条件エリアが固定されるのか、スクロール対象に含まれるのかが不明確です。また、横スクロールの有無についても記載がありません。

**指摘3:1-7 重要情報が初期表示領域に収まっているか**

設計書記載内容:第2.2節「レイアウト妥当性」
```
- 初期表示で検索条件・一覧の主要項目が確認可能
```

指摘内容:
「主要項目が確認可能」という記載は曖昧です。初期表示時に一覧の何件目までが見える想定なのか、また検索条件エリアの全項目が見える想定なのかが明確ではありません。画面解像度(例:1920×1080)を前提とした具体的な表示範囲を定義すべきです。

---

### 2. 各UI部品の仕様記載(共通)

**指摘4:2-3 表示/非表示条件が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」の表
```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
```

指摘内容:
検索条件エリアの3項目(ユーザーID、ユーザー名、状態)について、表示/非表示条件が定義されていません。例えば、ユーザーの権限レベルによって表示項目が異なるのか、特定の状況下で項目が非表示になるのかが不明確です。

**指摘5:2-4 活性/非活性条件が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」

指摘内容:
検索条件エリアの項目について、活性/非活性条件が全く定義されていません。例えば、「状態」ドロップダウンが常に活性なのか、特定条件下で非活性になるのかが不明確です。

**指摘6:2-6 単位表示(円、%等)の有無が定義されているか**

設計書記載内容:第4.1節「一覧項目」の表
```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 5 | 更新日時 | updated_at | 180px | 可 | yyyy/MM/dd HH:mm |
```

指摘内容:
更新日時の表示形式は定義されていますが、その他の項目(ユーザーID、ユーザー名、権限、状態)について、単位表示や特殊な表示形式の有無が明確ではありません。例えば、「権限」がロール名表示と記載されていますが、具体的な表示形式(例:「管理者」「一般ユーザー」など)が不明確です。

---

### 3. テキストボックス・入力項目の詳細

**指摘7:3-2 最大文字数・最小文字数が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」の表
```
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 |
```

指摘内容:
最大文字数は定義されていますが、最小文字数が定義されていません。特にユーザーIDについて、最小何文字以上必要なのかが不明確です。

**指摘8:3-4 入力可能文字種が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」の表
```
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
```

指摘内容:
ユーザーIDは「半角英数」と定義されていますが、ハイフンやアンダースコアなどの記号が許可されるのかが不明確です。ユーザー名は「全角」と定義されていますが、全角カタカナ、全角ひらがな、全角漢字のいずれが許可されるのか、また記号は許可されるのかが不明確です。

**指摘9:3-5 IME制御(ON/OFF/英数)が必要に応じて定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」

指摘内容:
IME制御が全く定義されていません。ユーザーIDは半角英数のため、IMEをOFFに制御すべきですが、その旨が記載されていません。ユーザー名は全角のため、IMEをONに制御すべきですが、その旨が記載されていません。

---

### 4. 表示文言・ラベル設計

**指摘10:4-2 画面間で用語・表記が統一されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」と第4.1節「一覧項目」
```
検索条件エリア:
| SC-01 | ユーザーID | user_id |
| SC-02 | ユーザー名 | user_name |
| SC-03 | 状態 | status |

一覧項目:
| 1 | ユーザーID | user_id |
| 2 | ユーザー名 | user_name |
| 4 | 状態 | status |
```

指摘内容:
検索条件エリアと一覧表示で同じ項目名が使用されているため、この点は統一されています。ただし、第7節「業務ルール・制約」で「無効ユーザーは編集不可」と記載されているのに対し、第4.1節の一覧項目では「状態」が「有効/無効」と表記されています。この表記が他の画面でも統一されているのかが不明確です。

---

### 5. 一覧・表(グリッド)表示の仕様

**指摘11:5-1 列名・表示順・表示幅が定義されているか**

設計書記載内容:第4.1節「一覧項目」
```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 1 | ユーザーID | user_id | 120px | 可 |
| 2 | ユーザー名 | user_name | 200px | 可 |
| 3 | 権限 | role | 120px | 不可 |
| 4 | 状態 | status | 100px | 可 |
| 5 | 更新日時 | updated_at | 180px | 可 |
```

指摘内容:
列名、表示順、表示幅が定義されています。ただし、表示幅の合計が720pxであり、一般的なブラウザ幅(1920px)に対して十分な余裕があるのか、また横スクロールが発生するのかが不明確です。

**指摘12:5-2 ソート可否・初期ソート条件が明確か**

設計書記載内容:第4.2節「一覧制御」
```
- 初期表示:更新日時 降順
```

指摘内容:
初期ソート条件は定義されていますが、ユーザーがソート条件を変更した後、画面を再度開いた場合に前回のソート条件が保持されるのか、それとも初期ソート条件にリセットされるのかが不明確です。

**指摘13:5-3 ページング有無・件数が定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- ページング:20件/ページ
```

指摘内容:
ページング件数は定義されていますが、ページング操作方法(前へ、次へ、ページ番号直接入力など)が不明確です。また、全件数表示の有無(例:「1~20件/全150件」)が定義されていません。

**指摘14:5-4 行選択時の挙動が定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- 行選択時:行背景色変更
```

指摘内容:
行選択時に背景色が変更されることは記載されていますが、その背景色が何色なのか、また複数行選択が可能なのか、単一行選択のみなのかが不明確です。

**指摘15:5-5 行強調表示・状態別表示ルールがあるか**

設計書記載内容:第4.1節「一覧項目」の備考
```
| 4 | 状態 | status | 100px | 可 | 有効/無効 |
```

指摘内容:
状態が「有効/無効」と表示されることは記載されていますが、無効ユーザーの行が視覚的にどのように強調表示されるのか(例:グレーアウト、斜体、背景色変更など)が定義されていません。

**指摘16:5-6 データなし時の表示文言が定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- データ0件時:「該当するデータはありません」表示
```

指摘内容:
データ0件時の表示文言は定義されていますが、表示位置(一覧グリッド領域中央など)が不明確です。また、「該当するデータはありません」のメッセージがアラート形式なのか、グリッド内テキスト表示なのかが不明確です。

---

### 6. 表示制御・デフォルト表示

**指摘17:6-2 検索条件未指定時の挙動が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 |
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て |
```

指摘内容:
全ての検索条件項目が「任意」と定義されており、検索条件を何も指定しない場合の挙動が不明確です。全ユーザーを表示するのか、それとも検索条件を指定するまで一覧を表示しないのかが定義されていません。

**指摘18:6-3 表示件数上限・制限時の扱いが定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- ページング:20件/ページ
```

指摘内容:
ページング件数は定義されていますが、システムに登録されているユーザー数が非常に多い場合(例:10,000件以上)の表示制限が定義されていません。検索結果が1,000件を超える場合に警告を表示するなどの制限があるのかが不明確です。

**指摘19:6-4 前回条件保持などのユーザー設定保存有無**

設計書記載内容:全体を通じて記載なし

指摘内容:
ユーザーが前回検索した条件(ユーザーID、ユーザー名、状態)が保持されるのか、それとも毎回初期状態にリセットされるのかが定義されていません。

---

## ② 入力制御・業務ルールの妥当性

### 1. 入力チェック仕様

**指摘20:1-1 必須チェック条件が明確か**

設計書記載内容:第5節「入力チェック仕様」
```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
```

指摘内容:
ユーザーIDが「登録時」に必須入力とされていますが、本画面は「検索・一覧表示・新規登録・編集を行う画面」と記載されています。検索時にユーザーIDが必須なのか、新規登録時に必須なのか、編集時に必須なのかが不明確です。また、ユーザー名や状態が必須なのか任意なのかが定義されていません。

**指摘21:1-3 相関チェックが整理されているか**

設計書記載内容:第5節「入力チェック仕様」

指摘内容:
相関チェックが全く定義されていません。例えば、ユーザーIDとユーザー名の両方が指定された場合の検索ロジック(AND検索なのかOR検索なのか)が不明確です。

**指摘22:1-4 チェックタイミングが明確か**

設計書記載内容:第5節「入力チェック仕様」
```
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
| 2 | ユーザーID | 英数字のみ | 入力時 | エラー |
| 3 | ユーザー名 | 最大文字数超過 | 入力時 | エラー |
| 4 | 状態 | 不正値 | 登録時 | エラー |
```

指摘内容:
チェックタイミングが「入力時」と「登録時」に分かれていますが、「入力時」の具体的なタイミング(フィールドを離れた時点なのか、1文字入力するたびなのか)が不明確です。

**指摘23:1-5 チェック順序が整理されているか**

設計書記載内容:第5節「入力チェック仕様」

指摘内容:
チェック順序が定義されていません。複数のチェックエラーが発生した場合、どの順序でチェックを実行し、どのエラーを優先的に表示するのかが不明確です。

---

### 2. エラーメッセージ設計

**指摘24:2-1 エラー条件とメッセージが対応付けられているか**

設計書記載内容:第6節「エラーメッセージ設計」
```
| エラーコード | 条件 | メッセージ | 表示位置 |
|---|---|---|---|
| E001 | ユーザーID未入力 | ユーザーIDを入力してください | 項目下部 |
| E002 | 形式不正 | 入力形式が正しくありません | 画面上部 |
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
エラーコードとメッセージが対応付けられていますが、第5節の入力チェック仕様に記載されている全てのチェック項目に対応するエラーメッセージが定義されていません。例えば、「ユーザー名の最大文字数超過」「状態の不正値」に対応するエラーメッセージが不明確です。

**指摘25:2-2 利用者に理解しやすい文言か**

設計書記載内容:第6節「エラーメッセージ設計」
```
| E002 | 形式不正 | 入力形式が正しくありません | 画面上部 |
```

指摘内容:
「入力形式が正しくありません」というメッセージは曖昧です。ユーザーが何を修正すべきかが不明確です。例えば「ユーザーIDは半角英数字のみ入力可能です」など、より具体的な文言が必要です。

**指摘26:2-4 複数エラー時の表示ルールが明確か**

設計書記載内容:第6節「エラーメッセージ設計」

指摘内容:
複数のエラーが同時に発生した場合の表示ルールが定義されていません。例えば、ユーザーIDが未入力かつ形式不正の場合、E001とE002のどちらを表示するのか、それとも両方表示するのかが不明確です。

---

### 3. 業務ルール・制約条件

**指摘27:3-1 業務上の入力制約が明示されているか**

設計書記載内容:第7節「業務ルール・制約」
```
- 管理者ロールのみ本画面を利用可能
- 無効ユーザーは編集不可(参照のみ)
- ユーザーIDはシステム内で一意
```

指摘内容:
業務上の制約が記載されていますが、「無効ユーザーは編集不可」という制約が画面上でどのように実装されるのかが不明確です。例えば、無効ユーザーの行の「編集」ボタンが非表示になるのか、クリック不可になるのかが定義されていません。

**指摘28:3-2 権限・ロールによる制御が整理されているか**

設計書記載内容:第7節「業務ルール・制約」
```
- 管理者ロールのみ本画面を利用可能
```

指摘内容:
管理者ロールのみが本画面を利用可能と記載されていますが、管理者ロール内に複数のレベルがある場合の制御が定義されていません。また、第8節「ボタン・操作仕様」で「新規登録」ボタンに「権限制御あり」と記載されていますが、具体的にどの権限が必要なのかが不明確です。

---

### 4. マスタ・外部データ依存項目

**指摘29:4-1 参照マスタ・データ取得元が明確か**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
「状態」がマスタ参照と記載されていますが、どのマスタテーブルを参照するのか、そのテーブル名が不明確です。

**指摘30:4-2 表示順・表示内容が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
「状態」ドロップダウンの表示順が定義されていません。また、初期値が「全て」と記載されていますが、ドロップダウンに「全て」というオプションが表示されるのか、それとも検索条件未指定時の動作を示しているのかが不明確です。

**指摘31:4-3 無効データ・未存在時の扱いが定義されているか**

設計書記載内容:第4.1節「一覧項目」
```
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
```

指摘内容:
一覧表示で「権限」がロール名表示と記載されていますが、該当するロールマスタが削除された場合(無効データ)の表示方法が定義されていません。

**指摘32:4-4 マスタ変更時の反映タイミングが明確か**

設計書記載内容:全体を通じて記載なし

指摘内容:
状態マスタやロールマスタが変更された場合、本画面に反映されるタイミングが定義されていません。画面を再度開いた時点で反映されるのか、リアルタイムで反映されるのかが不明確です。

---

### 5. 自動補完・自動計算項目

**指摘33:5-1 自動設定・計算条件が明確か**

設計書記載内容:全体を通じて記載なし

指摘内容:
自動補完や自動計算項目が定義されていません。例えば、ユーザーIDを入力した際にユーザー名が自動補完されるのか、あるいは新規登録時に登録日時が自動設定されるのかが不明確です。

---

### 6. データ整合性・排他制御

**指摘34:6-1 排他制御方式が定義されているか**

設計書記載内容:第6節「エラーメッセージ設計」
```
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラーが発生することは記載されていますが、排他制御方式(楽観的ロック、悲観的ロック、タイムスタンプ比較など)が定義されていません。

**指摘35:6-2 更新競合時の挙動・メッセージが明確か**

設計書記載内容:第6節「エラーメッセージ設計」
```
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラーメッセージは定義されていますが、エラー発生後にユーザーが取るべき操作(再度編集画面を開く、入力内容を再入力するなど)が不明確です。

**指摘36:6-3 排他発生後の再編集可否が定義されているか**

設計書記載内容:第6節「エラーメッセージ設計」

指摘内容:
排他エラー発生後に、ユーザーが再度編集を試みることが可能なのか、それとも編集画面を閉じて一覧に戻る必要があるのかが定義されていません。

---

## ③ 操作性・遷移・非機能観点の妥当性

### 1. ボタン・操作仕様

**指摘37:1-2 二重送信防止が考慮されているか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし |
| 新規登録 | 登録画面へ遷移 | なし |
| 編集 | 編集画面へ遷移 | なし |
```

指摘内容:
二重送信防止の仕様が全く定義されていません。例えば、「検索」ボタンをクリック後、ボタンが無効化されるのか、スピナーが表示されるのかが不明確です。

**指摘38:1-3 確認ダイアログ有無・文言が定義されているか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし |
| 新規登録 | 登録画面へ遷移 | なし |
| 編集 | 編集画面へ遷移 | なし |
```

指摘内容:
全てのボタンで確認ダイアログが「なし」と定義されていますが、本画面から遷移する際に入力中の検索条件が失われる可能性があります。その場合、確認ダイアログが必要ではないかが検討されていません。

**指摘39:1-4 権限による表示/非表示制御があるか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
```

指摘内容:
「新規登録」ボタンに「権限制御あり」と記載されていますが、具体的にどの権限が必要なのか、また権限がない場合にボタンが非表示になるのか、クリック不可になるのかが定義されていません。

**指摘40:1-5 危険操作の配置・強調が適切か**

設計書記載内容:第2.1節「画面構成」
```
- 右下:操作ボタン(新規登録)
```

指摘内容:
本画面に削除ボタンが存在するのかが不明確です。もし削除ボタンが存在する場合、その配置や強調表示(例:赤色、警告アイコン)が定義されていません。

---

### 2. 画面遷移・連携

**指摘41:2-1 遷移元・遷移先が整理されているか**

設計書記載内容:第9節「画面遷移」
```
| 遷移元 | 操作 | 遷移先 | 引継ぎ情報 |
|---|---|---|---|
| 本画面 | 新規登録 | ユーザー登録画面 | なし |
| 本画面 | ユーザーIDクリック | ユーザー編集画面 | ユーザーID |
```

指摘内容:
遷移元・遷移先が記載されていますが、ユーザー登録画面やユーザー編集画面から本画面への戻り遷移が定義されていません。

**指摘42:2-2 遷移時の引継ぎ項目が明確か**

設計書記載内容:第9節「画面遷移」
```
| 本画面 | ユーザーIDクリック | ユーザー編集画面 | ユーザーID |
```

指摘内容:
ユーザーIDのみが引継ぎ情報として記載されていますが、ユーザー編集画面で必要な他の情報(例:ユーザー名、権限、状態など)が引継ぎされるのかが不明確です。

**指摘43:2-3 戻る操作時の状態保持が定義されているか**

設計書記載内容:全体を通じて記載なし

指摘内容:
ユーザー登録画面やユーザー編集画面から本画面に戻る際に、前回の検索条件や一覧のスクロール位置が保持されるのかが定義されていません。

**指摘44:2-4 URL直接アクセス時の挙動が定義されているか**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
URL直接アクセス時に権限エラー画面が表示されることは記載されていますが、権限がない場合の具体的な画面遷移(例:ログイン画面へ遷移、エラーメッセージ表示など)が不明確です。

**指摘45:2-5 セッション切れ時の遷移が考慮されているか**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- セッション切れ時:ログイン画面へ遷移
```

指摘内容:
セッション切れ時にログイン画面へ遷移することは記載されていますが、セッション切れ検出のタイミング(画面表示時、操作時など)が不明確です。

---

### 3. 非機能・共通観点

**指摘46:3-1 想定レスポンス時間が考慮されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 想定レスポンス:3秒以内
```

指摘内容:
想定レスポンス時間は定義されていますが、検索結果が大量の場合(例:1,000件以上)のレスポンス時間がどうなるのかが不明確です。

**指摘47:3-2 ローディング表示等のユーザー通知があるか**

設計書記載内容:第10節「非機能・共通仕様」
```
- ローディング中はスピナー表示
```

指摘内容:
ローディング中にスピナーが表示されることは記載されていますが、スピナーの表示位置、表示テキスト(例:「検索中...」)が定義されていません。

**指摘48:3-3 利用ブラウザ・端末条件が明記されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 対応ブラウザ:Chrome(最新版)、Edge(最新版)
```

指摘内容:
対応ブラウザは定義されていますが、対応OSやブラウザのバージョン範囲(例:Chrome 90以上)が不明確です。また、モバイルブラウザ(Safari、Firefox)への対応有無が定義されていません。

**指摘49:3-4 ログ出力対象操作が整理されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 操作ログ:検索・登録・更新
```

指摘内容:
操作ログの対象が「検索・登録・更新」と記載されていますが、ログに記録される具体的な情報(例:ユーザーID、操作日時、検索条件、検索結果件数など)が定義されていません。

---

### 4. キーボード操作・フォーカス制御

**指摘50:4-1 初期フォーカス位置が定義されているか**

設計書記載内容:第11節「キーボード・フォーカス制御」
```
- 初期フォーカス:ユーザーID(検索条件)
```

指摘内容:
初期フォーカス位置は定義されていますが、画面を再度開いた場合(例:ユーザー登録画面から戻る場合)のフォーカス位置が定義されていません。

**指摘51:4-2 Tab順が業務フローに沿っているか**

設計書記載内容:第11節「キーボード・フォーカス制御」
```
- Tab順:上から下、左から右
```

指摘内容:
Tab順が「上から下、左から右」と記載されていますが、検索条件エリアから一覧エリアへのTab移動が可能なのか、それとも検索条件エリア内のみでTab移動するのかが不明確です。

**指摘52:4-3 Enterキー動作が定義されているか**

設計書記載内容:第11節「キーボード・フォーカス制御」
```
- Enterキー:検索実行
```

指摘内容:
Enterキーで検索が実行されることは記載されていますが、どのフィールドでEnterキーを押した場合に検索が実行されるのか(例:全フィールド、特定フィールドのみなど)が不明確です。

---

### 5. 再利用・共通化観点

**指摘53:5-1 共通部品が他画面と統一されているか**

設計書記載内容:全体を通じて記載なし

指摘内容:
本画面で使用される共通部品(例:検索ボタン、ページング部品、エラーメッセージ表示部品など)が他の画面と統一されているのかが定義されていません。

**指摘54:5-2 既存画面との差分が明確か**

設計書記載内容:全体を通じて記載なし

指摘内容:
本画面が新規開発なのか、既存画面の改修なのかが不明確です。既存画面がある場合、その差分が定義されていません。

---

### 6. 運用・保守観点

**指摘55:6-1 誤操作・誤登録時のリカバリ手段があるか**

設計書記載内容:全体を通じて記載なし

指摘内容:
誤操作・誤登録時のリカバリ手段(例:取り消し機能、復元機能など)が定義されていません。

**指摘56:6-2 運用調査に必要な情報が取得可能か**

設計書記載内容:第13節「運用・保守観点」
```
- 画面右下に画面ID表示
- エラー発生時はエラーコードを表示
- 問い合わせ時は画面ID・時刻を使用
```

指摘内容:
運用調査に必要な情報として画面ID、エラーコード、時刻が記載されていますが、ユーザーが実行した検索条件や検索結果件数などの情報が取得可能なのかが不明確です。

**指摘57:6-3 問い合わせ対応に必要な画面識別情報があるか**

設計書記載内容:第13節「運用・保守観点」
```
- 問い合わせ時は画面ID・時刻を使用
```

指摘内容:
問い合わせ対応に画面ID・時刻が使用されることは記載されていますが、複数のユーザーが同時にアクセスしている場合、特定のユーザーの操作を特定するための情報(例:セッションID、ユーザーID)が記載されていません。

---

### 7. 例外・異常系UX/セキュリティ観点

**指摘58:7-1 通信エラー・タイムアウト時の画面挙動**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー時にエラーダイアログが表示され、再試行が可能なことは記載されていますが、タイムアウト時の具体的な時間設定(例:30秒でタイムアウト)が定義されていません。

**指摘59:7-2 入力内容保持・再試行可否**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー発生時に、ユーザーが入力した検索条件が保持されるのかが不明確です。再試行時に検索条件を再度入力する必要があるのか、それとも自動的に保持されるのかが定義されていません。

**指摘60:7-3 画面単位の認可制御**

設計書記載内容:第7節「業務ルール・制約」
```
- 管理者ロールのみ本画面を利用可能
```

指摘内容:
管理者ロールのみが本画面を利用可能と記載されていますが、管理者ロール内に複数のレベルがある場合、各レベルで実行可能な操作(検索のみ、新規登録も可能、編集も可能など)が定義されていません。

**指摘61:7-4 URL直叩き・不正操作時の制御**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
URL直接アクセス時に権限エラー画面が表示されることは記載されていますが、不正な操作(例:権限のないユーザーが編集ボタンをクリックする、不正なパラメータを含むURLにアクセスするなど)時の制御が不明確です。
2回目
# 画面設計 外部設計書レビュー結果

## ① 画面項目・レイアウトの妥当性

### 1. 画面構成・配置

**指摘1:1-3 項目の配置・並び順が業務フローに沿っているか**

設計書記載内容:第2.1節「画面構成」
```
- 上部:画面タイトル/パンくずリスト
- 中部:検索条件エリア
- 下部:ユーザー一覧(グリッド)
- 右下:操作ボタン(新規登録)
```

指摘内容:
検索条件エリアの項目配置順序が明確に定義されていません。第3節の「画面項目定義(検索条件エリア)」では、ユーザーID、ユーザー名、状態の順序で記載されていますが、この順序が業務フロー上で最適であるかの根拠が不明確です。また、検索条件エリア内での項目の左右配置(1行に複数項目を配置するのか、1項目1行なのか)が定義されていません。

**指摘2:1-6 スクロール有無・範囲が明確か**

設計書記載内容:第2.2節「レイアウト妥当性」
```
- 一覧は縦スクロールあり(ページング対応)
```

指摘内容:
一覧の縦スクロール有無は記載されていますが、検索条件エリアのスクロール有無が不明確です。検索条件エリアが固定表示されるのか、スクロール対象に含まれるのかが定義されていません。また、ページング対応時に一覧の最大表示行数や、スクロール時の固定ヘッダーの有無も明記されていません。

**指摘3:1-8 モーダル/別画面表示の使い分けが適切か**

設計書記載内容:第9節「画面遷移」
```
| 遷移元 | 操作 | 遷移先 | 引継ぎ情報 |
|---|---|---|---|
| 本画面 | 新規登録 | ユーザー登録画面 | なし |
| 本画面 | ユーザーIDクリック | ユーザー編集画面 | ユーザーID |
```

指摘内容:
ユーザー登録画面および編集画面への遷移が別画面表示なのか、モーダルダイアログ表示なのかが定義されていません。一覧画面との関係性や、戻る操作時の状態保持を考慮すると、表示方式の選択根拠が必要です。

---

### 2. 各UI部品の仕様記載(共通)

**指摘4:2-3 表示/非表示条件が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
検索条件エリアの全項目が常に表示されるのか、条件付きで表示/非表示が切り替わるのかが定義されていません。また、一覧表示エリアの各列についても、ユーザーの権限やロールに応じた表示/非表示条件が明記されていません。

**指摘5:2-4 活性/非活性条件が定義されているか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
「新規登録」ボタンについて「権限制御あり」と記載されていますが、具体的にどのロール・権限で活性/非活性になるのかが不明確です。また、「編集」ボタンについて「行選択必須」と記載されていますが、行未選択時にボタンが非活性になるのか、クリック時にエラーメッセージを表示するのかが定義されていません。

---

### 3. テキストボックス・入力項目の詳細

**指摘6:3-1 表示サイズ(見た目の桁数)が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| 項目ID | 論理名 | 物理名 | UI部品 | 必須 | 表示形式 | 桁数 | 初期値 | 備考 |
|---|---|---|---|---|---|---|---|---|
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
```

指摘内容:
「桁数」列に「最大20」「最大50」と記載されていますが、これは最大入力文字数を示しているのか、画面上の表示幅(見た目の桁数)を示しているのかが不明確です。テキストボックスの見た目サイズ(例:20文字分の幅、50文字分の幅)を明確に定義する必要があります。

**指摘7:3-4 入力可能文字種が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
```

指摘内容:
ユーザーIDについては「半角英数」と記載されていますが、ユーザー名の入力可能文字種が不明確です。「全角」と記載されていますが、全角文字であれば何でも入力可能なのか、全角ひらがな・カタカナ・漢字のみなのか、記号は許可するのかが定義されていません。

**指摘8:3-5 IME制御(ON/OFF/英数)が必要に応じて定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」

指摘内容:
ユーザーIDの検索条件は「半角英数」であるため、IMEを英数モードに固定するか、IME OFFに制御する必要があります。しかし、設計書にはIME制御に関する記載がありません。また、ユーザー名の検索条件についても、IME制御の要否が定義されていません。

---

### 4. 表示文言・ラベル設計

**指摘9:4-2 画面間で用語・表記が統一されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」および第4.1節「一覧項目」
```
検索条件エリア:
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |

一覧表示:
| 2 | ユーザー名 | user_name | 200px | 可 | - |
```

指摘内容:
検索条件エリアと一覧表示の両方で「ユーザー名」という用語が使用されており、表記は統一されています。しかし、他の画面(ユーザー登録画面、ユーザー編集画面)との用語統一が確認できません。設計書に記載されていない他画面との用語統一状況を明確にする必要があります。

---

### 5. 一覧・表(グリッド)表示の仕様

**指摘10:5-1 列名・表示順・表示幅が定義されているか**

設計書記載内容:第4.1節「一覧項目」
```
| 列No | 項目名 | 物理名 | 表示幅 | ソート | 備考 |
|---|---|---|---|---|---|
| 1 | ユーザーID | user_id | 120px | 可 | クリックで詳細遷移 |
| 2 | ユーザー名 | user_name | 200px | 可 | - |
| 3 | 権限 | role | 120px | 不可 | ロール名表示 |
| 4 | 状態 | status | 100px | 可 | 有効/無効 |
| 5 | 更新日時 | updated_at | 180px | 可 | yyyy/MM/dd HH:mm |
```

指摘内容:
列名、表示順、表示幅は定義されていますが、一覧グリッド全体の幅が定義されていません。各列の表示幅の合計が画面幅を超える場合、水平スクロールが発生するのか、列幅が自動調整されるのかが不明確です。また、グリッド全体の最小幅や最大幅の制限があるのかも定義されていません。

**指摘11:5-2 ソート可否・初期ソート条件が明確か**

設計書記載内容:第4.2節「一覧制御」
```
- 初期表示:更新日時 降順
```

指摘内容:
初期ソート条件は「更新日時 降順」と定義されていますが、複数列でのソート(例:状態で昇順、その後更新日時で降順)が可能なのか、単一列ソートのみなのかが不明確です。また、ソート実行時に検索条件が保持されるのか、ページング位置がリセットされるのかも定義されていません。

**指摘12:5-3 ページング有無・件数が定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- ページング:20件/ページ
```

指摘内容:
1ページあたりの表示件数は「20件」と定義されていますが、表示件数を変更可能にするのか(例:10件、20件、50件から選択)、固定なのかが不明確です。また、全件数が表示されない場合、ページネーション(前へ、次へ、ページ番号入力など)の表示方式が定義されていません。

**指摘13:5-4 行選択時の挙動が定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- 行選択時:行背景色変更
```

指摘内容:
行選択時に「行背景色変更」と記載されていますが、具体的な背景色が定義されていません。また、複数行の同時選択が可能なのか、単一行選択のみなのかが不明確です。さらに、行選択後に「編集」ボタンをクリックして編集画面に遷移する場合、選択状態がどのように保持されるのかも定義されていません。

**指摘14:5-5 行強調表示・状態別表示ルールがあるか**

設計書記載内容:第4.1節「一覧項目」
```
| 4 | 状態 | status | 100px | 可 | 有効/無効 |
```

指摘内容:
一覧に「状態」列が存在し、「有効/無効」が表示されますが、無効ユーザーの行を視覚的に区別する表示ルール(例:グレーアウト、斜体表示、背景色変更)が定義されていません。第7節「業務ルール・制約」に「無効ユーザーは編集不可(参照のみ)」と記載されているため、無効ユーザーの行を視覚的に強調する必要があります。

**指摘15:5-6 データなし時の表示文言が定義されているか**

設計書記載内容:第4.2節「一覧制御」
```
- データ0件時:「該当するデータはありません」表示
```

指摘内容:
データ0件時の表示文言は定義されていますが、表示位置(一覧グリッド領域中央など)が不明確です。また、「該当するデータはありません」のメッセージがアラート形式なのか、グリッド内テキスト表示なのか、ダイアログ表示なのかが定義されていません。

---

### 6. 表示制御・デフォルト表示

**指摘16:6-2 検索条件未指定時の挙動が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-01 | ユーザーID | user_id | テキスト | 任意 | 半角英数 | 最大20 | 空白 | 前後空白トリム |
| SC-02 | ユーザー名 | user_name | テキスト | 任意 | 全角 | 最大50 | 空白 | 部分一致検索 |
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
検索条件の全項目が「任意」であり、初期値が「空白」または「全て」と定義されています。画面初期表示時に検索条件が未指定の場合、全ユーザーを表示するのか、検索ボタンをクリックするまで一覧を表示しないのかが不明確です。

**指摘17:6-3 表示件数上限・制限時の扱いが定義されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 想定レスポンス:3秒以内
```

指摘内容:
想定レスポンス時間は「3秒以内」と定義されていますが、検索結果が大量の場合(例:10,000件以上)の表示件数上限が定義されていません。ページング対応時に、最大何ページまで表示するのか、または最大何件まで取得するのかが明記されていません。

---

## ② 入力制御・業務ルールの妥当性

### 1. 入力チェック仕様

**指摘18:1-1 必須チェック条件が明確か**

設計書記載内容:第5節「入力チェック仕様」
```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
```

指摘内容:
ユーザーIDの必須チェックは「登録時」と定義されていますが、これは新規登録画面での登録時を指すのか、本画面(一覧・登録画面)での登録時を指すのかが不明確です。また、検索条件エリアのユーザーIDは「任意」と定義されているため、検索時には必須ではないことが確認できますが、登録画面との区別が明確に記載されていません。

**指摘19:1-3 相関チェックが整理されているか**

設計書記載内容:第5節「入力チェック仕様」

指摘内容:
入力チェック仕様に相関チェックが記載されていません。例えば、ユーザーIDとユーザー名の両方が入力された場合、または状態が「無効」に変更された場合など、複数項目間の相関チェックが必要な場合があります。相関チェックの有無と内容を明記する必要があります。

**指摘20:1-4 チェックタイミングが明確か**

設計書記載内容:第5節「入力チェック仕様」
```
| No | 対象項目 | チェック内容 | タイミング | 種別 |
|---|---|---|---|---|
| 1 | ユーザーID | 必須入力 | 登録時 | エラー |
| 2 | ユーザーID | 英数字のみ | 入力時 | エラー |
| 3 | ユーザー名 | 最大文字数超過 | 入力時 | エラー |
| 4 | 状態 | 不正値 | 登録時 | エラー |
```

指摘内容:
チェックタイミングが「入力時」と「登録時」に分かれていますが、「入力時」の具体的なタイミング(フィールド離脱時、リアルタイム入力中、キー入力ごと)が不明確です。また、「登録時」のチェックが実行される前に「入力時」のチェックが全て完了するのか、順序が定義されていません。

---

### 2. エラーメッセージ設計

**指摘21:2-1 エラー条件とメッセージが対応付けられているか**

設計書記載内容:第6節「エラーメッセージ設計」
```
| エラーコード | 条件 | メッセージ | 表示位置 |
|---|---|---|---|
| E001 | ユーザーID未入力 | ユーザーIDを入力してください | 項目下部 |
| E002 | 形式不正 | 入力形式が正しくありません | 画面上部 |
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
エラーコードとメッセージが対応付けられていますが、第5節「入力チェック仕様」に記載されている4つのチェック項目に対して、エラーメッセージが3つしか定義されていません。「ユーザー名の最大文字数超過」「状態の不正値」に対応するエラーメッセージが不足しています。

**指摘22:2-2 利用者に理解しやすい文言か**

設計書記載内容:第6節「エラーメッセージ設計」
```
| E002 | 形式不正 | 入力形式が正しくありません | 画面上部 |
```

指摘内容:
エラーメッセージ「入力形式が正しくありません」は、ユーザーにとって具体的な修正方法が不明確です。ユーザーIDの形式エラーの場合、「ユーザーIDは半角英数字で入力してください」など、より具体的で修正方法を示唆するメッセージが必要です。

**指摘23:2-4 複数エラー時の表示ルールが明確か**

設計書記載内容:第6節「エラーメッセージ設計」

指摘内容:
複数のエラーが同時に発生した場合(例:ユーザーID未入力かつ形式不正)の表示ルールが定義されていません。全てのエラーメッセージを表示するのか、最初のエラーのみ表示するのか、エラーの優先度に基づいて表示するのかが不明確です。

---

### 3. 業務ルール・制約条件

**指摘24:3-1 業務上の入力制約が明示されているか**

設計書記載内容:第7節「業務ルール・制約」
```
- 管理者ロールのみ本画面を利用可能
- 無効ユーザーは編集不可(参照のみ)
- ユーザーIDはシステム内で一意
```

指摘内容:
業務上の制約が記載されていますが、「無効ユーザーは編集不可(参照のみ)」という制約の具体的な実装方法が不明確です。無効ユーザーの行をクリックした場合、詳細画面を表示するのか、エラーメッセージを表示するのか、「編集」ボタンを非活性にするのかが定義されていません。

**指摘25:3-2 権限・ロールによる制御が整理されているか**

設計書記載内容:第1節「基本情報」および第7節「業務ルール・制約」
```
基本情報:
| 対象ユーザー | 管理者ロール |

業務ルール・制約:
- 管理者ロールのみ本画面を利用可能
```

指摘内容:
本画面は「管理者ロール」のみ利用可能と記載されていますが、管理者ロール内に複数のレベル(例:システム管理者、ユーザー管理者)がある場合の制御が定義されていません。また、各操作(検索、新規登録、編集、削除)ごとの権限制御が明記されていません。

---

### 4. マスタ・外部データ依存項目

**指摘26:4-1 参照マスタ・データ取得元が明確か**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
「状態」項目が「マスタ参照」と記載されていますが、参照するマスタの名称(例:ユーザー状態マスタ)が明記されていません。また、第4.1節「一覧項目」の「権限」列についても「ロール名表示」と記載されていますが、参照するマスタが明確に定義されていません。

**指摘27:4-2 表示順・表示内容が定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」
```
| SC-03 | 状態 | status | ドロップダウン | 任意 | - | - | 全て | マスタ参照 |
```

指摘内容:
ドロップダウンの初期値が「全て」と定義されていますが、ドロップダウンに表示される選択肢の順序(例:有効、無効、全て)が定義されていません。また、一覧表示の「権限」列に表示されるロール名の表示順序も定義されていません。

**指摘28:4-3 無効データ・未存在時の扱いが定義されているか**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」

指摘内容:
マスタ参照時に、参照するマスタデータが存在しない場合(例:ロールマスタに該当するロールが存在しない)の扱いが定義されていません。また、マスタデータが無効化された場合(例:ロールが廃止された)の表示方法も明記されていません。

**指摘29:4-4 マスタ変更時の反映タイミングが明確か**

設計書記載内容:第3節「画面項目定義(検索条件エリア)」

指摘内容:
マスタデータ(例:ユーザー状態マスタ、ロールマスタ)が変更された場合、本画面に反映されるタイミングが定義されていません。画面表示時に最新のマスタを取得するのか、キャッシュを使用するのか、定期的に更新するのかが不明確です。

---

### 5. 自動補完・自動計算項目

指摘なし

---

### 6. データ整合性・排他制御

**指摘30:6-1 排他制御方式が定義されているか**

設計書記載内容:第6節「エラーメッセージ設計」
```
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラーのメッセージが定義されていますが、排他制御の方式(楽観的ロック、悲観的ロック)が明記されていません。また、本画面(一覧・登録画面)での排他制御が必要なのか、編集画面での排他制御なのかが不明確です。

**指摘31:6-2 更新競合時の挙動・メッセージが明確か**

設計書記載内容:第6節「エラーメッセージ設計」
```
| E003 | 排他エラー | 他のユーザーにより更新されています | ダイアログ |
```

指摘内容:
排他エラー発生時に「他のユーザーにより更新されています」というメッセージが表示されますが、その後の処理フロー(ダイアログを閉じた後、一覧画面に戻るのか、編集画面に戻るのか、最新データを再取得するのか)が定義されていません。

---

## ③ 操作性・遷移・非機能観点の妥当性

### 1. ボタン・操作仕様

**指摘32:1-2 二重送信防止が考慮されているか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
二重送信防止に関する記載がありません。「検索」ボタンをクリック後、検索処理中に再度クリックされた場合の動作(ボタン無効化、クリック無視、複数リクエスト送信)が定義されていません。

**指摘33:1-3 確認ダイアログ有無・文言が定義されているか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| ボタン名 | 処理内容 | 確認ダイアログ | 備考 |
|---|---|---|---|
| 検索 | 一覧再表示 | なし | Enterキー対応 |
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
| 編集 | 編集画面へ遷移 | なし | 行選択必須 |
```

指摘内容:
全てのボタンで「確認ダイアログなし」と定義されていますが、本画面では新規登録や編集画面への遷移時に、入力中の検索条件が失われることを確認するダイアログが必要な場合があります。ユーザーが誤って遷移することを防ぐため、確認ダイアログの要否を再検討する必要があります。

**指摘34:1-4 権限による表示/非表示制御があるか**

設計書記載内容:第8節「ボタン・操作仕様」
```
| 新規登録 | 登録画面へ遷移 | なし | 権限制御あり |
```

指摘内容:
「新規登録」ボタンに「権限制御あり」と記載されていますが、具体的にどのロール・権限で表示/非表示になるのか、または活性/非活性になるのかが定義されていません。また、「編集」ボタンについても権限制御が必要な場合があります。

---

### 2. 画面遷移・連携

**指摘35:2-2 遷移時の引継ぎ項目が明確か**

設計書記載内容:第9節「画面遷移」
```
| 遷移元 | 操作 | 遷移先 | 引継ぎ情報 |
|---|---|---|---|
| 本画面 | 新規登録 | ユーザー登録画面 | なし |
| 本画面 | ユーザーIDクリック | ユーザー編集画面 | ユーザーID |
```

指摘内容:
「ユーザーIDクリック」時に「ユーザーID」を引き継ぐと記載されていますが、引き継ぎ方法(URLパラメータ、セッション、リクエストボディ)が定義されていません。また、編集画面から本画面に戻る場合、検索条件やページング位置が保持されるのかも定義されていません。

**指摘36:2-3 戻る操作時の状態保持が定義されているか**

設計書記載内容:第9節「画面遷移」

指摘内容:
ユーザー登録画面またはユーザー編集画面から本画面に戻る場合、検索条件(ユーザーID、ユーザー名、状態)やページング位置(現在表示しているページ番号)が保持されるのか、初期状態にリセットされるのかが定義されていません。

**指摘37:2-4 URL直接アクセス時の挙動が定義されているか**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
URL直接アクセス時に「権限エラー画面表示」と記載されていますが、権限がない場合のみエラー表示するのか、セッションが切れている場合も同じ処理をするのかが不明確です。また、権限エラー画面から遷移する先(ログイン画面、ホーム画面など)が定義されていません。

**指摘38:2-5 セッション切れ時の遷移が考慮されているか**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- セッション切れ時:ログイン画面へ遷移
```

指摘内容:
セッション切れ時に「ログイン画面へ遷移」と記載されていますが、セッション切れを検出するタイミング(画面表示時、ボタンクリック時、定期的なチェック)が定義されていません。また、セッション切れ前に入力した検索条件やデータが失われることをユーザーに通知するメッセージが定義されていません。

---

### 3. 非機能・共通観点

**指摘39:3-1 想定レスポンス時間が考慮されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 想定レスポンス:3秒以内
```

指摘内容:
想定レスポンス時間が「3秒以内」と定義されていますが、この時間が検索ボタンクリック後から一覧表示完了までなのか、ページング操作後の表示完了までなのかが不明確です。また、大量データ検索時(例:全ユーザー検索で10,000件以上)のレスポンス時間の扱いも定義されていません。

**指摘40:3-2 ローディング表示等のユーザー通知があるか**

設計書記載内容:第10節「非機能・共通仕様」
```
- ローディング中はスピナー表示
```

指摘内容:
ローディング中に「スピナー表示」と記載されていますが、スピナーの表示位置(画面中央、一覧グリッド領域など)が定義されていません。また、ローディング中にユーザーが操作可能なのか(例:検索ボタンの再クリック、ページング操作)が定義されていません。

**指摘41:3-3 利用ブラウザ・端末条件が明記されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 対応ブラウザ:Chrome(最新版)、Edge(最新版)
```

指摘内容:
対応ブラウザが「Chrome(最新版)、Edge(最新版)」と定義されていますが、「最新版」の定義が不明確です。また、対応端末(PC、タブレット、スマートフォン)が定義されていません。さらに、Internet Explorerなどの非対応ブラウザでアクセスした場合の挙動も定義されていません。

**指摘42:3-4 ログ出力対象操作が整理されているか**

設計書記載内容:第10節「非機能・共通仕様」
```
- 操作ログ:検索・登録・更新
```

指摘内容:
操作ログの対象が「検索・登録・更新」と記載されていますが、本画面は「一覧・登録画面」であり、登録・更新がどこで実行されるのかが不明確です。また、ログに記録する項目(操作者、操作内容、操作時刻、検索条件など)が定義されていません。

---

### 4. キーボード操作・フォーカス制御

**指摘43:4-1 初期フォーカス位置が定義されているか**

設計書記載内容:第11節「キーボード・フォーカス制御」
```
- 初期フォーカス:ユーザーID(検索条件)
```

指摘内容:
初期フォーカスが「ユーザーID(検索条件)」と定義されていますが、画面初期表示時のみなのか、検索実行後に一覧が表示された場合も同じなのかが不明確です。また、一覧表示後に「編集」ボタンをクリックして編集画面に遷移し、戻ってきた場合のフォーカス位置も定義されていません。

**指摘44:4-2 Tab順が業務フローに沿っているか**

設計書記載内容:第11節「キーボード・フォーカス制御」
```
- Tab順:上から下、左から右
```

指摘内容:
Tab順が「上から下、左から右」と定義されていますが、検索条件エリアの項目配置が不明確なため、具体的なTab順が定義されていません。また、検索条件エリアから一覧グリッドへのTab移動、一覧グリッドからボタンへのTab移動の順序も定義されていません。

**指摘45:4-3 Enterキー動作が定義されているか**

設計書記載内容:第11節「キーボード・フォーカス制御」
```
- Enterキー:検索実行
```

指摘内容:
Enterキーで「検索実行」と定義されていますが、どのフィールドでEnterキーを押した場合に検索が実行されるのかが不明確です。また、一覧グリッド内でEnterキーを押した場合の動作(行選択、詳細表示など)も定義されていません。

---

### 5. 再利用・共通化観点

**指摘46:5-1 共通部品が他画面と統一されているか**

設計書記載内容:第2.1節「画面構成」
```
- 上部:画面タイトル/パンくずリスト
- 中部:検索条件エリア
- 下部:ユーザー一覧(グリッド)
- 右下:操作ボタン(新規登録)
```

指摘内容:
画面構成が記載されていますが、他の一覧画面(例:部門一覧画面、権限一覧画面)との共通部品の統一状況が確認できません。パンくずリスト、検索条件エリア、一覧グリッド、ボタンなどの共通部品の仕様が統一されているのかを明記する必要があります。

---

### 6. 運用・保守観点

**指摘47:6-1 誤操作・誤登録時のリカバリ手段があるか**

設計書記載内容:第12節「セキュリティ・例外対応」

指摘内容:
誤操作・誤登録時のリカバリ手段が定義されていません。例えば、誤って「新規登録」ボタンをクリックして登録画面に遷移した場合、キャンセルボタンで本画面に戻ることができるのか、その際に検索条件が保持されるのかが定義されていません。

**指摘48:6-2 運用調査に必要な情報が取得可能か**

設計書記載内容:第13節「運用・保守観点」
```
- 画面右下に画面ID表示
- エラー発生時はエラーコードを表示
- 問い合わせ時は画面ID・時刻を使用
```

指摘内容:
運用調査に必要な情報として「画面ID」「エラーコード」「時刻」が記載されていますが、ユーザーが実行した検索条件や操作内容を特定するための情報(例:検索条件の表示、操作ログの記録)が不足しています。

**指摘49:6-3 問い合わせ対応に必要な画面識別情報があるか**

設計書記載内容:第13節「運用・保守観点」
```
- 画面右下に画面ID表示
- エラー発生時はエラーコードを表示
- 問い合わせ時は画面ID・時刻を使用
```

指摘内容:
問い合わせ対応に必要な情報として「画面ID」「時刻」が記載されていますが、複数のユーザーが同時にアクセスしている場合、特定のユーザーの操作を特定するための情報(例:セッションID、ユーザーID)が不足しています。

---

### 7. 例外・異常系UX/セキュリティ観点

**指摘50:7-1 通信エラー・タイムアウト時の画面挙動**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー時に「エラーダイアログ表示、再試行可能」と記載されていますが、エラーダイアログの具体的な文言が定義されていません。また、タイムアウト時の扱いが定義されていません。さらに、再試行時に前回の検索条件が保持されるのかも不明確です。

**指摘51:7-2 入力内容保持・再試行可否**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- 通信エラー時:エラーダイアログ表示、再試行可能
```

指摘内容:
通信エラー発生時に、ユーザーが入力した検索条件が保持されるのか、リセットされるのかが定義されていません。再試行時に同じ検索条件で再度検索を実行するのか、ユーザーが条件を修正してから再試行するのかが不明確です。

**指摘52:7-3 画面単位の認可制御**

設計書記載内容:第7節「業務ルール・制約」および第12節「セキュリティ・例外対応」
```
業務ルール・制約:
- 管理者ロールのみ本画面を利用可能

セキュリティ・例外対応:
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
画面単位の認可制御が「管理者ロールのみ」と定義されていますが、管理者ロール内の細分化された権限(例:ユーザー参照のみ、ユーザー登録・編集可能)による制御が定義されていません。また、各操作(検索、新規登録、編集)ごとの認可制御も明記されていません。

**指摘53:7-4 URL直叩き・不正操作時の制御**

設計書記載内容:第12節「セキュリティ・例外対応」
```
- URL直接アクセス時:権限エラー画面表示
```

指摘内容:
URL直接アクセス時に「権限エラー画面表示」と記載されていますが、権限がない場合と権限がある場合の区別が不明確です。また、不正な検索条件(例:存在しないユーザーID)でURL直接アクセスした場合の挙動も定義されていません。
  • 出力の特徴
    • レビュー指摘件数は60件程度
    • レビューの言い回しに違いがある
    • レビューの観点の引用の誤差が大きい
    • レビュー指摘コメントもプロンプトで使用した通り
    • プロンプトで掲載した観点のみ使用

PlaygroundとAPIの結果差分

  • 差分ポイント
    • レビュー指摘件数が約2倍
    • Playgroundの方がレビュー結果が収束している

結果から考えられる要因

  • システムプロンプトの精度がまだまだ甘い可能性
  • Playgroundでは内部的に補正されている可能性
  • 指定しきれていないパラメータ等が存在している可能性

現時点での結論・注意点

  • Playgroundは「検証用」として便利だが、「本番用」ではAPI経由で行う際には注意が必要
  • API経由でプロンプトの改善を図る必要がある

今後の展望

  • 他のモデルにおいても同様のことが起きるか確認
  • モデルごとに推奨されているプロンプトの書き方を確認してプロンプトの改善を試みる
  • API経由で結果が収束させ、API経由でのレビュー結果精度の再確認

おわりに

  • Playgroundでプロンプトの最適化を行い、API経由で行ったら想定通りにいかなかった人の参考になれば幸いです。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?