Home
要件定義を計画する
実践ガイド
文書情報
プロジェクト概要
🚧 レビュー・承認(※追記予定)
業務要件
機能要件
非機能要件
🚧 インプット(※追記予定)
🚧トレーサビリティ(※追記予定)
🚧 SoR 向け(※追記予定)
🚧 SoE 向け(※追記予定)
🚨 削除予定
「標準規格」である以上、具体例を出すと、それが基準になることが避けられないと判断したため、ページ全体削除予定。
「標準規格」である以上、具体例を出すと、それが基準になることが避けられないと判断したため、ページ全体削除予定。
このページについて
- サンエム標準における「外部仕様」と「内部仕様」の範囲を規定し、それを理解してもらうための具体例や解説を記載しています。
- 用語の定義および工程定義については、 ⚖️
2.2 工程の定義 を参照してください。
定義と範囲
用語の定義
⚖️2.2 工程の定義 では、以下のように定義されています。
外部仕様
システムの利用者や他システムとのインターフェースに関する仕様であり、顧客やユーザーとの合意対象となる設計項目
内部仕様
システム内部の構造や処理方法に関する仕様であり、主に開発者が実装のために扱う設計項目。
判断基準
- 顧客やユーザーとの合意形成が必要な仕様は外部仕様とする。
- 実装の詳細や技術的最適化に関する仕様は内部仕様とする。
- 曖昧な項目については、プロジェクトリーダーや設計担当者に相談し、合意の上で決定する。
範囲の具体例
外部仕様
- システム機能の全体概要
- ユーザー画面のレイアウト、アクションロジック(バリデーションチェック、DB入出力仕様
- 入出力データの仕様(フォーマット、項目、バリデーション)
- 他システムとのインターフェース仕様(API仕様、通信プロトコル)
- 論理データベース設計(ER図、テーブル定義:主キー・外部キー、型、桁数)
- セキュリティ方針(認証・認可の範囲)
- ログの種類と目的、保存期間(監査ログ、操作ログ。保存期間は1年で、経過後は物理削除など)
- 例外処理の方針(どのような例外を検出し、ユーザーに通知するか)
内部仕様
- 詳細なモジュール構成と役割分担
- アルゴリズム詳細(処理手順、計算ロジック)
- 物理データベース設計(インデックス設計、パーティショニング)
- パフォーマンス最適化方針(キャッシュ戦略、チューニング手法)
- ログのフォーマット、保管方法、ローテーション設定
- 例外処理の実装方法(リトライ処理、エラーハンドリングコード)
- セキュリティ実装詳細(暗号化方式、鍵管理)
- トランザクション管理の詳細設計
基本設計工程・詳細設計工程との関係
原則は、システム全体の枠組みや方針、外部仕様は基本設計で定義し、実装に関わる詳細、内部仕様は詳細設計にゆだねる。
設計項目の区別の具体例
| 設計項目 | 外部仕様(基本設計) | 内部仕様(詳細設計) |
|---|---|---|
| 画面設計 | 画面の構成、項目、遷移フロー、コンポーネント設計 | 画面の操作時の内部処理 |
| データベース設計 | 論理データモデル(テーブル、データ項目、型、桁数、キー定義、キー関係) | 物理データモデル(インデックス、パーティショニング) |
| ビジネスロジック | 主要な処理フローやアルゴリズムの概要 | 詳細な処理手順、コードレベルのロジック |
| セキュリティ | 認証・認可の範囲と方針、アクセス制御の範囲、暗号化の対象範囲などの実装の制約になる意思決定=要件に直接結びつくもの | 暗号化方式、鍵管理方式、詳細な権限設定 |
| ログ設計 | ログの種類と目的(監査ログ、操作ログなど) | ログのフォーマット、保存方法、ローテーション設定 |
| 例外処理 | 例外の種類とユーザー通知方針 | 例外処理の実装方法、リトライ処理の実装方法 |
区別が曖昧になりやすい設計項目
論理データベース設計
- 基本設計の範囲に含まれる。
- データベースの論理構造(テーブル設計、リレーション設計、主キー・外部キー)を定義し、システム全体のデータ構造を明確にする。外部仕様と内部仕様の橋渡しとなる。
- 一方で、物理データベース設計(インデックスやパーティショニングなどの物理的最適化)は詳細設計に含まれる。
キャッシュ戦略
- 詳細設計の範囲に含まれる。
- キャッシュの種類、配置場所、更新・整合性の制御はシステム内部のパフォーマンス最適化や実装に関わるため。
ログ設計
- ログに記録する情報の種類(ユーザー操作ログ、システムエラーログなど)やログの目的(監査、トラブルシューティングなど)は基本設計で定義する。
- ログの具体的なフォーマット、記録方法、保存場所、ローテーションポリシーなどの詳細は詳細設計に含まれる。
例外処理設計
- 例外の種類や対応方針(どのような例外を検出し、どのようにユーザーに知らせるか)は基本設計で定義する。
- 例外処理の具体的な実装方法やエラーハンドリングのコード詳細は詳細設計で扱う。
セキュリティ設計
- 認証・認可の方針やユーザー権限の範囲は基本設計で定義する。
- 暗号化方式、鍵管理、セキュリティ対策の実装詳細は詳細設計に含まれる。
バッチ処理・ジョブ管理
- バッチ処理の役割やスケジュール概要は基本設計に含まれる。
- 処理のアルゴリズム、ジョブの実装、リトライ戦略は詳細設計に含まれる。
インターフェース仕様(他システムとの連携)
- データの送受信フォーマット、通信プロトコル、APIの外部仕様は基本設計で定義する。
- データ変換ロジックやエラーハンドリングの詳細は詳細設計に含まれる。
パフォーマンス要件・チューニング方針
- パフォーマンス目標や許容範囲は基本設計で決める。
- チューニング方法やキャッシュ配置は詳細設計に含まれる。
エラーメッセージ設計
- ユーザーに表示するエラーメッセージの内容や文言は基本設計で決める。
- エラーログの記録方法や通知方法は詳細設計に含まれる。
トランザクション管理
- トランザクションの範囲や整合性要件は基本設計で決める。
- 実装やロック戦略は詳細設計に含まれる。
次のページ → 📄2.3.2 基本設計書とは?