📖 読了目安 約13分
この記事の目次

基本設計書の読み方

基本設計書は、システムの外部仕様を定義したドキュメントです。「何を作るか」「ユーザーにどう見えるか」を記述します。

基本設計書とは

別名

基本設計書は、現場によって以下のような呼び方をされることがあります。

  • 外部設計書
  • 基本設計
  • BD(Basic Design)

名前が違っても中身は同じ

プロジェクトによって呼び方が異なりますが、内容は基本的に同じです。

役割

flowchart LR
    A[要件定義書] -->|何を作るか| B[基本設計書]
    B -->|どう作るか| C[詳細設計書]
    C --> D[実装]

基本設計書は、要件定義書と詳細設計書の間に位置し、以下を定義します。

  • システムの全体像(アーキテクチャ)
  • ユーザーから見える部分の設計
  • システムが何ができるか

視点の違い

観点 基本設計書 詳細設計書
別名 外部設計書 内部設計書
視点 ユーザー視点(外部) 開発者視点(内部)
内容 何を作るか どう作るか
対象者 お客様、SE、PM 開発者、PG
詳細度 概念的・俯瞰的 具体的・詳細

なぜ分けるのか?

基本設計書はお客様との合意形成に使うことが多いため、技術的な詳細よりも「何ができるか」を明確にします。詳細設計書は開発者が実装するための具体的な情報を記載します。


基本設計書の構成要素

よくある構成

基本設計書は、以下のような構成で作られることが多いです。

項目 内容 確認ポイント
システム構成図 システム全体のアーキテクチャ サーバー構成、ネットワーク構成
機能一覧 システムが持つ機能の一覧 機能の範囲、優先度
画面一覧 すべての画面のリスト 画面数、画面の種類
画面遷移図 画面間の遷移関係 どこからどこへ行けるか
帳票一覧 出力する帳票・レポート 帳票の種類、出力タイミング
データ設計(論理) データの構造(概念レベル) エンティティ、関係性
インターフェース設計 外部システムとの連携 API、ファイル連携
非機能要件 性能、セキュリティなど 応答時間、同時接続数

【実践】基本設計書サンプルと読み方

ここからは、実際の基本設計書に近いサンプルを使って、具体的な読み方を解説します。

サンプル1:システム構成図

システム構成図は、システム全体のアーキテクチャを図示します。

flowchart TB
    subgraph ユーザー
        U1[PCブラウザ]
        U2[スマートフォン]
    end

    subgraph フロントエンド
        F1[Webサーバー<br>Nginx]
        F2[CDN<br>CloudFront]
    end

    subgraph バックエンド
        A1[APサーバー①<br>Spring Boot]
        A2[APサーバー②<br>Spring Boot]
        LB[ロードバランサー<br>ALB]
    end

    subgraph データ層
        DB[(データベース<br>PostgreSQL)]
        CACHE[(キャッシュ<br>Redis)]
    end

    subgraph 外部連携
        EXT1[決済サービス]
        EXT2[メール配信]
    end

    U1 --> F2
    U2 --> F2
    F2 --> F1
    F1 --> LB
    LB --> A1
    LB --> A2
    A1 --> DB
    A2 --> DB
    A1 --> CACHE
    A2 --> CACHE
    A1 --> EXT1
    A1 --> EXT2

この図から読み取るべきこと

確認項目 読み取る内容 この例での内容
構成要素 どんなサーバーがあるか Webサーバー、APサーバー、DB、キャッシュ
冗長化 複数台構成か APサーバーは2台構成(負荷分散)
外部連携 どこと連携するか 決済サービス、メール配信
使用技術 何を使っているか Nginx、Spring Boot、PostgreSQL、Redis

1年目エンジニアとして確認すること

  • 自分が担当する範囲はどこか?(APサーバー?フロント?)
  • 開発環境はこの構成と同じか?違いがあるか?

サンプル2:機能一覧

機能一覧は、システムが持つ機能を一覧化します。

機能ID 機能名 機能概要 優先度 備考
F001 会員登録 新規ユーザーがアカウントを作成する メール認証あり
F002 ログイン メールアドレスとパスワードでログイン -
F003 パスワードリセット パスワードを忘れた場合に再設定 メール送信
F004 商品一覧 商品を一覧表示・検索する ページング、絞り込み
F005 商品詳細 商品の詳細情報を表示する -
F006 カート 商品をカートに追加・削除する セッション管理
F007 注文 カートの商品を注文する 決済連携
F008 注文履歴 過去の注文を一覧表示する -
F009 お気に入り 商品をお気に入りに登録する 2期開発

この一覧から読み取るべきこと

flowchart TD
    A[機能一覧] --> B{何を確認する?}
    B --> C[システムの全体像]
    B --> D[自分の担当機能]
    B --> E[機能間の関連]
    B --> F[優先度・スコープ]

    C --> G[全部でどのくらいの規模か]
    D --> H[どの機能を実装するか]
    E --> I[依存関係はあるか]
    F --> J[今期やる/やらないは何か]

優先度と備考を必ずチェック

  • 「2期開発」などの備考がある機能は、今回のスコープ外かもしれません
  • 優先度「低」の機能は後回しになる可能性があります

サンプル3:画面一覧

画面一覧は、システムの全画面を一覧化します。

画面ID 画面名 画面概要 認証 備考
SCR-001 トップページ サイトのトップ画面 不要 -
SCR-002 会員登録 新規会員登録フォーム 不要 -
SCR-003 ログイン ログインフォーム 不要 -
SCR-004 会員情報 登録情報の表示・編集 必要 -
SCR-005 商品一覧 商品の検索・一覧 不要 ページング
SCR-006 商品詳細 商品の詳細表示 不要 -
SCR-007 カート カート内容の表示 必要 -
SCR-008 注文確認 注文内容の確認 必要 -
SCR-009 注文完了 注文完了メッセージ 必要 -
SCR-010 注文履歴 過去の注文一覧 必要 ページング

この一覧から読み取るべきこと

確認項目 読み取る内容
画面数 全体で何画面あるか(10画面)
認証の有無 ログインが必要な画面はどれか
共通パターン 一覧+詳細のパターンがあるか

サンプル4:画面遷移図

画面遷移図は、画面間の遷移を図示します。

flowchart TD
    TOP[トップページ<br>SCR-001]
    REG[会員登録<br>SCR-002]
    LOGIN[ログイン<br>SCR-003]
    MYPAGE[会員情報<br>SCR-004]
    LIST[商品一覧<br>SCR-005]
    DETAIL[商品詳細<br>SCR-006]
    CART[カート<br>SCR-007]
    CONFIRM[注文確認<br>SCR-008]
    COMPLETE[注文完了<br>SCR-009]
    HISTORY[注文履歴<br>SCR-010]

    TOP --> REG
    TOP --> LOGIN
    TOP --> LIST
    LOGIN --> TOP
    LOGIN --> MYPAGE
    REG --> LOGIN
    LIST --> DETAIL
    DETAIL --> CART
    CART --> CONFIRM
    CONFIRM --> COMPLETE
    MYPAGE --> HISTORY

    style CART fill:#ffcccc
    style CONFIRM fill:#ffcccc
    style COMPLETE fill:#ffcccc

この図から読み取るべきこと

  • 入口:どこからでもアクセスできる画面(トップ、商品一覧など)
  • 流れ:ユーザーの主要な導線(商品一覧→詳細→カート→注文)
  • 認証が必要な遷移:ログイン後しかアクセスできない画面

実装時に確認すること

  • ログインしていない状態でカート画面にアクセスしたらどうなる?
  • ブラウザの戻るボタンで戻れるか?戻れない画面はあるか?

サンプル5:ER図(概念レベル)

基本設計書のER図は、詳細なカラム定義ではなく、エンティティ間の関係を示します。

erDiagram
    USER ||--o{ ORDER : places
    USER ||--o{ FAVORITE : has
    ORDER ||--|{ ORDER_DETAIL : contains
    ORDER_DETAIL }|--|| PRODUCT : refers
    FAVORITE }|--|| PRODUCT : refers
    PRODUCT }|--|| CATEGORY : belongs_to

    USER {
        ユーザーID PK
        メールアドレス
        氏名
    }
    ORDER {
        注文ID PK
        ユーザーID FK
        注文日時
        合計金額
    }
    PRODUCT {
        商品ID PK
        商品名
        価格
    }

この図から読み取るべきこと

確認項目 読み取る内容
主要エンティティ どんなデータを扱うか(ユーザー、注文、商品)
関係性 1対多、多対多の関係
カーディナリティ ユーザーは複数の注文を持つ(1:N)

基本設計のER図 vs 詳細設計のテーブル定義

  • 基本設計のER図:概念レベル(何と何が関係するか)
  • 詳細設計のテーブル定義:物理レベル(具体的なカラム名、型、制約)

基本設計書を読む流れ

flowchart TD
    A[1. システム構成図で全体を把握] --> B[2. 機能一覧で範囲を確認]
    B --> C[3. 画面一覧・遷移図で画面構成を理解]
    C --> D[4. ER図でデータ構造を把握]
    D --> E[5. 自分の担当範囲を特定]
    E --> F[6. 関連する詳細設計書を読む]

読む順番のポイント

  1. 全体から詳細へ:まずシステム構成図で全体像を掴む
  2. 機能の範囲を把握:機能一覧で「何ができるシステムか」を理解
  3. 画面構成を理解:ユーザーの操作フローを把握
  4. データ構造を把握:どんなデータを扱うか理解
  5. 担当範囲を明確に:自分が実装する部分を特定

読むときのチェックリスト

読む前に確認すること

  • [ ] バージョン:最新の設計書か確認したか
  • [ ] 自分の担当範囲:どの機能/画面を担当するか明確か
  • [ ] 前提知識:専門用語や略語を理解しているか

読んだ後に確認すること

  • [ ] システムの全体像を説明できるか
  • [ ] 主要な機能を列挙できるか
  • [ ] 画面の流れを説明できるか
  • [ ] データの関係を理解したか
  • [ ] 不明点をリストアップしたか

よくある疑問

Q: 基本設計書がない場合は?

A: 要件定義書や既存のコードから読み取る必要があります。

  • 小規模プロジェクトでは省略されることがある
  • 既存システムの改修では、コードがドキュメント代わりになることも
  • 不明点は先輩に確認しましょう
Q: 基本設計書と詳細設計書、どちらを先に読む?

A: 基本設計書を先に読みます。

全体像を把握してから、詳細に入ります。いきなり詳細設計書を読んでも、「なぜこうなっているか」が分かりません。

Q: 設計書が古い場合は?

A: 現状のコードと照らし合わせ、差分を確認します。

設計書が最新でないことはよくあります。差分があれば先輩に確認し、どちらが正しいか判断を仰ぎましょう。


1年目エンジニアとしての関わり方

場面 やること
プロジェクト参加時 基本設計書で全体像を把握する
タスク着手前 自分の担当範囲を確認する
不明点があるとき 設計書の該当箇所を示して質問する
レビュー時 設計書通りに実装したか確認される

質問するときのコツ

「基本設計書の機能一覧F003について質問があります。パスワードリセットのメール送信タイミングは...」のように、ドキュメントの具体的な箇所を示して質問すると、スムーズに回答がもらえます。


関連ドキュメント