Home
Get Started
実践ガイド
外部仕様設計
バッチ処理仕様設計
UAC 仕様設計
データ仕様設計
インフラ設計
移行計画
テスト方針・計画
開発プロセス・規約
基本設計 前提条件・制約事項
基本設計における前提条件と制約事項を明確化し、設計判断の根拠を関係者間で共有することで、後工程のトラブルや手戻りを防ぎます。
🎯 概要
- 目的: 設計を進める上での前提条件と制約事項を明確にし、設計判断の根拠や条件を関係者間で共有することで、後工程でのトラブルや手戻りを防ぐ
- スコープ: システム開発・運用における技術的前提、ビジネス上の前提、予算・納期・法規制などの制約事項をカバーする。要件定義で定義された前提条件との整合性を確認し、設計レベルでの具体的な前提・制約を追加する
- 推奨する実施タイミング: 基本設計の初期段階で実施し、設計の進行に応じて追加・更新する
- 関連するステークホルダー: プロジェクトマネージャー、システムアーキテクト、開発チーム、運用チーム、発注者
📥 重要な前提知識・インプット
- 前提知識: プロジェクト管理の基礎知識、システム開発ライフサイクル、契約形態の理解、法規制・コンプライアンスの基礎
- インプット: 要件定義書(特に非機能要件)、契約書、プロジェクト計画書、既存システムの運用情報、関連法規制の情報
📄 成果物の定義
- ドキュメントテンプレート: 📄
[テンプレ]基本設計 設計前提・制約事項
- 必須要素: 前提条件一覧、制約事項一覧、前提・制約が設計に与える影響の記述
✅ 品質基準・レビュー観点
✅ 品質チェックリスト:
| チェック項目 | チェック内容 |
|---|---|
| 網羅性 | 技術・ビジネス・法規制の観点で漏れがない |
| 具体性 | 数値や固有名詞で具体的に記述されている |
| 影響範囲の明確化 | 各前提・制約が設計に与える影響が記載されている |
| 変更時の対応方針 | 前提が崩れた場合の対応方針が示されている |
👁️🗨️ レビュー観点:
- 要件定義との整合性: 要件定義で定義された前提条件と矛盾がないか
- 実現可能性への影響: 制約事項が厳しすぎて実現不可能になっていないか
- リスクの明確化: 前提が崩れた場合のリスクが適切に認識されているか
- ステークホルダーの合意: 特に重要な制約について関係者の合意が取れているか
🧪成果物のサンプル
## 設計前提・制約事項
### 前提条件
本設計は以下の前提条件に基づいて行われている。これらの前提が変更された場合、設計の見直しが必要となる可能性がある。
#### 技術的前提
- **利用ユーザー数**: 最大同時接続ユーザー数は[数値]名、1日あたりのトランザクション数は[数値]件を想定する。
- **設計への影響**: この前提に基づき、Webサーバー[台数]台構成、DBサーバー[構成]を採用する。
- **変更時の対応**: ユーザー数が想定を超える場合は、スケールアウトによる対応を検討する。
- **連携システム**: [既存システム名]とのデータ連携は、[連携方式](例: REST API、バージョン[X.X])で行われるものとする。
- **設計への影響**: インターフェース設計は[既存システム名]のAPI仕様に準拠する。
- **根拠**: [既存システムの仕様書]参照。
- **開発環境**: 開発言語は[言語名(バージョン)]、フレームワークは[フレームワーク名(バージョン)]を使用する。
- **設計への影響**: フレームワークの機能・制約に基づいてアーキテクチャを設計する。
- **運用体制**: システム運用は[運用担当部署]が担当し、[監視ツール名]を利用して24時間365日の監視を行う。
- **設計への影響**: 監視ツールとの連携機能、アラート通知機能を実装する。
#### ビジネス上の前提
- **業務フロー**: [業務名]の業務フローは[要件定義書の該当箇所]に定義された通りとする。
- **設計への影響**: 画面遷移、データフロー設計は業務フローに準拠する。
- **データ保管期間**: データは[期間]保管するものとする。
- **設計への影響**: ストレージ容量の見積もり、アーカイブ機能の設計に反映する。
### 制約事項
本設計および開発は以下の制約事項に従って行われる。
#### 予算・コストの制約
- **予算**: プロジェクト総予算は[金額]円以内とする(内訳: 開発費[金額]円、インフラ費[金額]円)。
- **設計への影響**: クラウドサービスの利用範囲、ライセンス購入数を予算内に収める。
- **違反時の影響**: 予算超過の場合は機能削減または段階リリースを検討する必要がある。
#### スケジュール・納期の制約
- **納期**: システム稼働開始日は[YYYY年MM月DD日]とする。
- **設計への影響**: 開発期間を考慮し、複雑な機能は次フェーズに先送りする。
- **違反時の影響**: 契約違反となり、ペナルティが発生する可能性がある。
#### 技術的制約
- **必須利用技術**: [特定のベンダー名]の[製品名](バージョン[バージョン番号])の利用を必須とする。
- **根拠**: [契約書]または[社内標準]により規定。
- **設計への影響**: データベース設計、API設計は当該製品の仕様・制約に準拠する。
- **利用禁止技術**: オープンソースソフトウェアのうち、[ライセンス種別]のものは使用禁止とする。
- **根拠**: [社内規定]により規定。
- **設計への影響**: ライブラリ選定時にライセンスを確認する。
- **セキュリティポリシー**: [組織名]のセキュリティポリシー(文書番号[XXX])に準拠する。
- **設計への影響**: 認証方式、暗号化方式、アクセス制御の設計に反映する。
#### 法規制・コンプライアンスの制約
- **個人情報保護法**: 個人情報保護法に準拠し、個人情報の適切な取り扱いを行う。
- **設計への影響**:
- データ暗号化(保管時・通信時)を実施
- アクセスログの記録・保管
- 利用者同意取得機能の実装
- 個人情報削除機能の実装
- **違反時の影響**: 法令違反により、罰則や企業の信用失墜のリスクがある。
- **[業界固有の法規制名]**: [法規制の概要と遵守事項]
- **設計への影響**: [具体的な設計への影響]
#### 組織・体制の制約
- **開発体制**: 開発メンバーは[人数]名、開発期間は[期間]とする。
- **設計への影響**: 開発規模・複雑度を体制に見合った範囲に調整する。
- **承認プロセス**: 設計変更は[承認者名・役職]の承認を必要とする。
- **設計への影響**: 変更管理プロセスを遵守し、スケジュールに承認期間を織り込む。
### 前提・制約の影響マトリクス
| 前提・制約 | 影響する設計要素 | 対応方針 |
|----------|--------------|---------|
| 最大同時接続[数値]名 | システムアーキテクチャ、性能設計 | [台数]台構成、ロードバランサー導入 |
| [製品名]必須利用 | データベース設計、API設計 | 当該製品の機能・制約に準拠 |
| 納期[日付] | 開発スコープ | 段階リリース、優先順位付け |
| 個人情報保護法 | セキュリティ設計 | 暗号化、ログ記録、同意取得機能 |
### 前提変更時のリスクと対応
| 前提条件 | 変更リスク | 影響度 | 対応方針 |
|---------|----------|--------|---------|
| 最大同時接続[数値]名 | ユーザー数が想定を大幅に超える | 高 | スケールアウト、性能チューニング |
| [既存システム名]のAPI仕様 | API仕様が変更される | 中 | インターフェース層の変更、テスト再実施 |
| 運用担当部署による監視 | 運用体制が変更される | 中 | 監視仕様の見直し、運用手順書の更新 |
---
### 参照文書
本設計書を作成する上で参照した主要な文書は以下の通りです。
| 文書名 | 版数 | 作成日 | 参照先(パス/URL) |
| :----------------------------------- | :--- | :----------- | :----------------------------------- |
| [システム名] 企画書兼要件定義書 | 1.0 | 2025/11/15 | `docs/requirements/req_doc_v1.0.pdf` |
| [外部システム名] API仕様書 | 2.1 | 2025/10/01 | `http://external.com/api_spec_v2.1` |
| [社内標準] セキュリティガイドライン | 3.0 | 2024/04/01 | `docs/standards/security_guide_v3.0` |
| ... | ... | ... | ... |
--- 🔄 設計の進め方・プロセス
🏗️ プロセス1: 前提条件の洗い出し
設計対象:
設計を進める上で前提としている条件を明確にし、関係者間で共有する。
具体例:
- 技術的前提: 利用ユーザー数、トランザクション量、データ量、システムの稼働時間、連携する既存システムの仕様
- ビジネス上の前提: 業務フロー、組織体制、運用体制、サポート体制
- 環境的前提: 開発環境、テスト環境、本番環境の構成、ネットワーク環境
- スキル・リソースの前提: 開発メンバーのスキルセット、利用可能な開発ツール、外部ベンダーの協力体制
設計原則:
- 具体性の確保: 「多数のユーザー」ではなく「最大同時接続1,000名」のように数値で具体的に記述する
- 検証可能性: 前提が正しいかどうかを後から検証できる形で記述する
- 変更時の影響明示: 前提が変更された場合に設計のどの部分に影響するかを明記する
- 要件定義との整合: 要件定義で定義された前提条件を継承し、設計レベルで追加・具体化する
文書化の推奨表現:
- カテゴリ別の整理: 技術、ビジネス、環境などのカテゴリごとに前提条件を整理する
- 影響範囲の記述: 各前提条件がどの設計要素に影響するかを記載する
- 根拠の明示: 前提条件の根拠(契約書、ヒアリング結果、既存システムの実績値など)を示す
🏗️ プロセス2: 制約事項の整理
設計対象:
設計・開発を進める上で守らなければならない制約を明確にし、設計判断に反映する。
具体例:
- 予算・コストの制約: プロジェクト総予算、ライセンス費用の上限、インフラコストの上限
- スケジュール・納期の制約: システム稼働開始日、マイルストーン、各工程の期間
- 技術的制約: 必須利用技術、利用禁止技術、既存システムとの互換性要件、セキュリティポリシー
- 法規制・コンプライアンスの制約: 個人情報保護法、業界固有の法規制、社内規定、監査要件
- 組織・体制の制約: 開発体制、承認プロセス、意思決定権限
設計原則:
- 遵守の必須性: 守らなければプロジェクトが成立しない制約を明確にする
- 優先度の明示: 制約間にトレードオフがある場合、どちらを優先するかを明記する
- 代替案の検討: 制約が厳しすぎる場合、緩和の可能性や代替案を検討・記録する
- 責任の明確化: 誰がその制約を設定し、誰が遵守をチェックするかを明確にする
文書化の推奨表現:
- 制約の種類別整理: 予算、納期、技術、法規制などのカテゴリで整理する
- 具体的な数値・固有名詞: 「短納期」ではなく「2025年3月末まで」、「特定のベンダー」ではなく「○○社の××製品」と記載する
- 違反時の影響: 制約を守れなかった場合の影響(契約違反、法令違反、追加コストなど)を記述する
🏗️ プロセス3: 設計への影響の分析と対応
設計対象:
洗い出した前提条件・制約事項が設計にどのような影響を与えるかを分析し、設計方針に反映する。
具体例:
- 前提「最大同時接続1,000名」→ 影響「Webサーバーは2台構成でロードバランサーが必要」
- 制約「○○社のDBMS必須」→ 影響「データベース設計は○○社の機能・制約に準拠」
- 制約「納期6ヶ月」→ 影響「開発規模を考慮し、段階リリースを検討」
- 制約「個人情報保護法遵守」→ 影響「データ暗号化、アクセスログ記録、同意取得機能が必須」
設計原則:
- 影響の可視化: 前提・制約が設計のどの部分(アーキテクチャ、性能、セキュリティなど)に影響するかを明示する
- トレードオフの明確化: 複数の制約が競合する場合、どのようにバランスを取るかを記録する
- リスクの特定: 前提が崩れた場合のリスクと対応方針を検討する
- 設計判断への反映: 前提・制約に基づいて行った設計判断を記録し、後から理由が追えるようにする
文書化の推奨表現:
- 影響マトリクス: 前提・制約と設計要素の対応関係を表形式で整理する
- 対応方針の記述: 各前提・制約に対してどのような設計で対応するかを記載する
- リスクと対策: 前提が変更された場合のリスクと対応策を記述する
🚨 よくある失敗と予防策
🚧 実例収集後、追記予定
📚 参考資料・関連リンク
- 参考文献: 『プロジェクトマネジメント標準 PMBOK』、『要求仕様の探検学』
- 関連する他のガイド: 非機能要件定義ガイド、リスク管理ガイド、プロジェクト計画ガイド
- 関連法規制: 個人情報保護法、電子帳簿保存法、業界固有の法規制
テンプレートサイト: 📄テンプレート集