要件定義 / 基本設計 / 詳細設計
基本:共通仕様 / 機能一覧 / テーブル一覧 / 画面一覧 / 画面遷移
詳細:テーブル定義書 / 画面定義書 / イベント仕様書
本書は索引と共通ルールを定める。各イベントの仕様はモジュール別のファイルに分割している。
| ファイル | 対象イベント | 件数 | 状況 |
|---|---|---|---|
| Orders.md | EV-ORD-101 〜 EV-ORD-504(受注管理) |
31 | 作成済 |
| - | EV-CUS-*(顧客管理) |
- | 未作成 |
| - | EV-PRD-*(商品管理) |
- | 未作成 |
| - | EV-SUP-*(仕入先管理) |
- | 未作成 |
| - | EV-EMP-*(担当者管理) |
- | 未作成 |
| - | EV-SHP-*(配送管理) |
- | 未作成 |
| - | EV-SLS-* / EV-INV-* / EV-PRF-*(分析系) |
- | 未作成 |
イベント 1 件につき 1 節を設け、次の 9 項目をこの順序で必ず記述する。該当がない場合は「なし」と記す。
| 項目 | 内容 |
|---|---|
| イベント概要 | 何をするイベントかを 1 文で示す |
| トリガー条件 | どの操作・状態で発火するか(ボタン ID・項目 ID・画面表示) |
| 事前条件 | PRE-* を参照し、個別の事前条件のみ追記する |
| 入力 | 遷移パラメータ、画面項目 ID、画面が保持している値 |
| 出力 | 更新される画面項目 ID、遷移先画面 ID、メッセージ |
| 処理内容 | 番号付きの手順。DB アクセスは対象テーブル・結合・抽出条件・並び順・件数まで記す |
| 検証内容 | VAL-* を参照し、個別の検証とエラーメッセージを追記する |
| エラーハンドリング | ERR-* を参照し、個別の扱いを追記する |
| 依存関係 | 関連する機能 ID・テーブル・他イベント・業務ルール ID |
EV-<モジュールコード>-<画面連番><イベント連番> の 3 桁。
| 例 | 意味 |
|---|---|
EV-ORD-101 |
受注管理の 1 番目の画面(SC-ORD-01)の 1 番目のイベント |
EV-ORD-308 |
受注管理の 3 番目の画面(SC-ORD-03)の 8 番目のイベント |
1 画面あたりのイベントが 9 件を超える場合は 4 桁へ拡張する(EV-<MOD>-<画面連番>nn)。
| # | 約束 |
|---|---|
| 1 | 特定のフレームワークのライフサイクル名・API 名を用いない。「画面の初期表示」「入力が確定したとき」のように記述する |
| 2 | 複数のイベントが共有する処理は、ファイル冒頭の「共通の処理」に切り出して名称で参照する |
| 3 | 更新系イベントは、トランザクション境界・楽観排他の判定・ロールバック時の扱いを必ず記す |
| 4 | 楽観排他の判定は「主キーと RowVersion の一致を条件に更新し、更新件数が 0 件なら競合」の形で統一する。ERR-CONFLICT と ERR-NOTFOUND の分岐まで記す |
| 4-2 | 更新系イベントには SET 句の RowVersion = RowVersion + 1 を必ず明記する。 加算はアプリの責務であり、記述漏れは競合検知を無言で無効化する(共通仕様 9.1 の定型文) |
| 5 | 分岐(モード・状態・NULL の有無)はすべて記述し、実装者の判断に委ねない |
| 6 | 画面のみで完結する処理(再計算・行追加)は「DB アクセスは行わない」と明記する |
| 7 | エラーメッセージは本文中に鉤括弧で実文を記す |
| 8 | 検索結果 0 件はエラーとせず、空表示と案内メッセージで扱う |