詳細設計(しょうさいせっけい)

詳細設計とは、基本設計で決めた仕様を実現するために、プログラムの内部の作り方を具体的に決める設計工程のことです。「内部設計」「プログラム設計」とも呼ばれ、この設計書をもとに開発者が実際のコードを書きます。

現実世界でいえば、家づくりの「施工図」のようなものです。間取り図(基本設計)で「ここにキッチン」と決まったら、施工図では「配管はこの径でこの経路、電気配線はここを通す」と、職人が迷わず作業できるレベルまで具体化します。読み手は施主ではなく、現場の職人(開発者)です。

詳細設計で決めること

  • モジュール分割
    機能をどんな部品(クラス・関数)に分けて作るかを決めます。
  • 処理ロジック
    各部品の中の処理の流れ(判定・繰り返し・計算方法)を、フローチャートや擬似コードで示します。
  • データの詳細
    変数やテーブル項目の型・桁数、エラー時の扱いなどを細かく定めます。

詳細設計フェーズの主な成果物

詳細設計工程では、決めた内容を開発者向けの文書として残します。実装や単体テストの拠り所になる資料です。

成果物 記載する内容
詳細設計書 モジュールの構造や処理内容をまとめた文書。実装時に参照する。
モジュール構成図 機能をどんな部品(クラス・関数)に分割するか、その構成。
処理フローチャート(IPO図) 各モジュール内部の処理の流れ、判定や繰り返しの手順。
内部データ定義書 変数やテーブル項目の型・桁数、エラー時の扱いなど。
単体テスト仕様書 詳細設計の内容をもとにした、モジュール単位のテスト項目。

特に単体テスト仕様書は詳細設計の記述がそのままテストケースの根拠になるため、設計とセットで作られることが多い成果物です。

基本設計との違い

観点 基本設計 詳細設計
決める内容 利用者から見える仕様(画面・帳票など) プログラム内部の作り方
読み手 発注者・利用者 開発者
対応するテスト 結合テスト 単体テスト

詳細設計とテストの関係

詳細設計書は、単体テストの確認基準になります。「この関数は、この入力に対してこの結果を返す」という設計の記述が、そのままテストケースの根拠になるのです(V字モデルの対応関係)。なお、近年のアジャイル開発では、重厚な詳細設計書を作らず、コードやテストコード自体に設計を語らせるスタイルも増えていますが、「作る前に内部の構造を考える」という詳細設計の本質は変わりません。

あわせて知っておきたい用語

  • 基本設計
    詳細設計の前提となる、利用者から見える仕様を決める工程です。
  • 単体テスト
    詳細設計の内容を確認基準とするテスト工程です。
  • ソースコード
    詳細設計をもとに書かれる、プログラムの実体です。
  • フローチャート
    処理の流れを図で表したもの。詳細設計の定番の表現方法です。

コメント

タイトルとURLをコピーしました