詳細設計とは、基本設計で決めた仕様を実現するために、プログラムの内部の作り方を具体的に決める設計工程のことです。「内部設計」「プログラム設計」とも呼ばれ、この設計書をもとに開発者が実際のコードを書きます。
現実世界でいえば、家づくりの「施工図」のようなものです。間取り図(基本設計)で「ここにキッチン」と決まったら、施工図では「配管はこの径でこの経路、電気配線はここを通す」と、職人が迷わず作業できるレベルまで具体化します。読み手は施主ではなく、現場の職人(開発者)です。
詳細設計で決めること
- モジュール分割
機能をどんな部品(クラス・関数)に分けて作るかを決めます。 - 処理ロジック
各部品の中の処理の流れ(判定・繰り返し・計算方法)を、フローチャートや擬似コードで示します。 - データの詳細
変数やテーブル項目の型・桁数、エラー時の扱いなどを細かく定めます。
詳細設計フェーズの主な成果物
詳細設計工程では、決めた内容を開発者向けの文書として残します。実装や単体テストの拠り所になる資料です。
| 成果物 | 記載する内容 |
|---|---|
| 詳細設計書 | モジュールの構造や処理内容をまとめた文書。実装時に参照する。 |
| モジュール構成図 | 機能をどんな部品(クラス・関数)に分割するか、その構成。 |
| 処理フローチャート(IPO図) | 各モジュール内部の処理の流れ、判定や繰り返しの手順。 |
| 内部データ定義書 | 変数やテーブル項目の型・桁数、エラー時の扱いなど。 |
| 単体テスト仕様書 | 詳細設計の内容をもとにした、モジュール単位のテスト項目。 |
特に単体テスト仕様書は詳細設計の記述がそのままテストケースの根拠になるため、設計とセットで作られることが多い成果物です。
基本設計との違い
| 観点 | 基本設計 | 詳細設計 |
|---|---|---|
| 決める内容 | 利用者から見える仕様(画面・帳票など) | プログラム内部の作り方 |
| 読み手 | 発注者・利用者 | 開発者 |
| 対応するテスト | 結合テスト | 単体テスト |
詳細設計とテストの関係
詳細設計書は、単体テストの確認基準になります。「この関数は、この入力に対してこの結果を返す」という設計の記述が、そのままテストケースの根拠になるのです(V字モデルの対応関係)。なお、近年のアジャイル開発では、重厚な詳細設計書を作らず、コードやテストコード自体に設計を語らせるスタイルも増えていますが、「作る前に内部の構造を考える」という詳細設計の本質は変わりません。

コメント