基本設計書とは?
基本設計書とは、要件定義で整理した内容を具体的なシステム設計へ落とし込むための設計文書です。システムの全体構成や画面、機能、データベース、外部システムとの連携方法などを定義し、開発チーム全体の共通認識を形成する役割を担います。システム開発では、要件定義が「何を作るか」を整理する工程であるのに対し、基本設計は「どのようなシステムとして実現するか」を設計する工程です。基本設計書の品質は、その後の詳細設計、プログラミング、テスト、保守運用に大きな影響を与えるため、開発プロジェクトにおける重要な成果物の一つとされています。基本設計書を作成する主な目的は、次のとおりです。
- システム全体の構造を明確にすること
- 発注者と受注者の認識を一致させること
- 詳細設計や開発工程の基準資料とすること
- 設計漏れや仕様の認識違いを防止すること
- 保守・運用時の参考資料として活用すること
特に受託開発では、基本設計書が契約内容や要件との整合性を確認する重要な資料となるため、体系的かつ網羅的に作成することが求められます。
基本設計書が必要となるケース
基本設計書は、ほぼすべてのシステム開発案件で作成されますが、特に次のようなケースでは欠かせません。
- 業務システムを新規開発する場合 →販売管理、在庫管理、勤怠管理など業務全体を設計する必要があります。
- 既存システムをリニューアルする場合 →現行システムとの差分を整理し、新しい仕様を設計します。
- Webサービスを開発する場合 →画面遷移やAPI連携、ユーザー権限などを明確に定義します。
- スマートフォンアプリを開発する場合 →画面設計やバックエンドとの通信仕様を整理します。
- クラウドサービスを導入する場合 →外部サービスとの連携やインフラ構成を設計します。
- 複数の開発会社や開発メンバーが関わる場合 →設計内容を統一し、品質を維持します。
プロジェクトの規模が大きくなるほど、基本設計書の重要性は高くなります。
基本設計書に記載すべき主な内容
一般的な基本設計書には、次のような項目を盛り込みます。
- システム概要
- システム全体構成
- 機能一覧
- 画面設計
- 画面遷移
- 帳票設計
- データ設計
- データベース概要
- 外部インターフェース設計
- 権限設計
- 非機能要件
- セキュリティ設計
- エラー処理方針
- ログ設計
- 変更履歴
これらを整理することで、開発担当者だけでなく、テスト担当者や保守担当者もシステム全体を把握しやすくなります。
基本設計書の各項目と実務ポイント
1. システム概要
システムの目的、利用者、対象業務、運用環境などを整理します。この章では、システム全体を初めて見る人でも概要を理解できるよう、専門用語を必要以上に使用せず、簡潔かつ分かりやすく記載することが重要です。
2. システム構成
システム全体を構成するサーバー、ネットワーク、クラウドサービス、データベースなどを整理します。実務では構成図を用いて視覚的に表現することが一般的です。クラウド環境では、AWS、Azure、Google Cloudなど利用するサービスも記載しておくと保守性が向上します。
3. 機能設計
利用者が使用する機能を一覧化し、それぞれの役割や処理概要を整理します。
例えば、
- ログイン機能
- ユーザー管理
- 検索機能
- 登録・更新・削除
- CSV出力
- 通知機能
などを整理します。機能ごとに入力、処理、出力を明確にすることで、詳細設計への引き継ぎがスムーズになります。
4. 画面設計
画面設計では、各画面について
- 画面ID
- 画面名称
- 画面目的
- 入力項目
- 表示項目
- 入力チェック
- ボタン動作
- 画面遷移
などを定義します。画面モックアップやワイヤーフレームを添付することで、発注者との認識違いを防ぐことができます。
5. データ設計
データベースに保存する情報の概要を整理します。
一般的には、
- テーブル一覧
- 項目一覧
- データ型
- 桁数
- 主キー
- 外部キー
- NULL可否
などを定義します。詳細なテーブル定義書は詳細設計工程で作成されることが多いものの、基本設計では全体構成を把握できるレベルまで整理します。
6. 外部インターフェース設計
他システムとのデータ連携方法を定義します。
例えば、
- REST API
- SOAP
- CSV連携
- ファイル連携
- バッチ処理
などがあります。通信方式、認証方法、送受信タイミング、エラー処理まで整理しておくことが重要です。
7. 権限設計
利用者ごとの操作範囲を整理します。
例えば、
- システム管理者
- 管理者
- 一般利用者
- 閲覧専用利用者
などの権限区分を定義し、それぞれが利用可能な機能を明確にします。権限漏れは情報漏えいにつながるため、慎重な設計が必要です。
8. 非機能要件
機能以外の品質要件について整理します。
代表例として、
- 性能
- 可用性
- 保守性
- 拡張性
- セキュリティ
- バックアップ
- 監視
- 障害復旧
などがあります。近年ではクラウド環境の利用が増えているため、スケーラビリティや可用性の要件も重要になっています。
基本設計書を作成する際の注意点
- 要件定義との整合性を確認する 要件定義で決定した内容と矛盾がないよう確認しましょう。
- 詳細設計レベルまで記載しすぎない 基本設計ではシステム全体像を整理し、細かなプログラム仕様は詳細設計で扱います。
- 誰が見ても理解できる表現を使用する 担当者だけが理解できる表現ではなく、第三者でも理解できる内容を心掛けます。
- 図表を活用する 構成図や画面遷移図などを使用すると理解しやすくなります。
- 変更履歴を管理する 仕様変更が発生した場合に備え、版数や変更内容を管理しましょう。
- レビューを実施する 設計担当者だけでなく、発注者や開発担当者によるレビューを実施することで品質向上につながります。
要件定義書・基本設計書・詳細設計書の違い
| 文書 | 目的 | 作成タイミング |
|---|---|---|
| 要件定義書 | 何を作るかを決定する | プロジェクト初期 |
| 基本設計書 | どのようなシステムを作るかを整理する | 要件定義完了後 |
| 詳細設計書 | どのように実装するかを定義する | 基本設計完了後 |
これら3つの設計書は、それぞれ役割が異なり、段階的にシステム開発を進めるための重要な成果物です。
まとめ
基本設計書は、システム開発において要件定義と詳細設計をつなぐ重要な設計文書です。システム構成、機能、画面、データ、外部連携、権限、非機能要件などを体系的に整理することで、開発メンバー全員が共通認識を持ちながら開発を進めることができます。また、設計内容を明文化することで、仕様の認識違いや手戻りを防止し、開発品質の向上や保守運用の効率化にもつながります。受託開発・社内開発を問わず、実務に即した基本設計書を整備することは、円滑なシステム開発を実現するための重要なポイントといえるでしょう。