ウェブエンジニア問題集

基本設計と詳細設計 — 2つの設計フェーズの違いと役割

「設計」と一口に言っても、実務では基本設計詳細設計という2つのフェーズに分かれます。 この2つの境界が曖昧だと、基本設計で細かいことを議論しすぎたり、詳細設計でアーキテクチャの根本を覆したり、非効率な進め方になります。

この章では、それぞれのフェーズで決めること・成果物・粒度の違いを整理します。

学習者学習者

「基本設計」と「詳細設計」って何が違うの?どっちのフェーズで何を決めるの?

基本設計(外部設計)で決めること

基本設計は「システム全体の構造と外部から見た振る舞い」を決めるフェーズです。

項目内容
システム構成サーバー構成、外部サービス連携、ネットワーク構成
画面一覧・画面遷移どんな画面があり、どう遷移するか
データモデル主要なエンティティとリレーション(ER図)
API一覧エンドポイント・メソッド・主要パラメータ
認証・認可方式セッション/JWT/OAuth、ロール体系
非機能要件への対応方針性能目標、可用性、セキュリティ方針

基本設計のアウトプットは「このシステムは全体としてこういう構造で、こう動く」という合意を取るためのものです。

詳細設計(内部設計)で決めること

詳細設計は「実装者がコードを書ける粒度まで落とし込む」フェーズです。

項目内容
テーブル定義カラム名・型・制約・インデックス
API詳細仕様リクエスト/レスポンスのフィールド定義、バリデーションルール
処理フロー主要ロジックのシーケンス図・フローチャート
エラーハンドリングエラーコード体系、異常系の振る舞い
画面項目定義入力フォームの項目・制約・初期値

基本設計と詳細設計の境界は会社やチームによって異なりますが、**「プログラマーがこのドキュメントだけ見てコードを書けるか」**が詳細設計の粒度の目安です。

2つのフェーズの関係

残りのセクションは現在執筆中です。

  • 基本設計と詳細設計の成果物一覧
  • アジャイルでの設計フェーズの扱い方
  • 「設計書を書く時間がない」問題への向き合い方

ちゃんと使うためのポイント

  • 基本設計は「全体の構造と方針」、詳細設計は「実装できる粒度の仕様」
  • 基本設計を飛ばして詳細設計に入ると、根本的な構造の問題に後から気づく
  • 詳細設計は「コードを書く人が迷わない程度」が適切な粒度

次の章では、詳細設計の中核となる詳細設計書の書き方を具体的に見ていきます。