制作会社選びで迷っている方へ
費用相場・制作期間・進め方など、
まずは無料で方向性を一緒に整理いたします。
質問だけでも大歓迎です。
\ 強引な営業は一切ありませんのでご安心ください /


費用相場・制作期間・進め方など、
まずは無料で方向性を一緒に整理いたします。
質問だけでも大歓迎です。
\ 強引な営業は一切ありませんのでご安心ください /
「詳細設計って何?」
「基本設計とどう違うの?」
「設計書には何を書くの?」
システム開発について調べていると、こうした疑問を持つ人は多いです。
詳細設計は、実装に入る前に「どう作るか」を具体化する工程です。
ここがあいまいなままだと、開発者ごとに解釈がずれやすくなり、手戻りや品質低下につながることがあります。
この記事では、詳細設計の意味や役割を整理しながら、基本設計との違い、決める内容、成果物、よくある課題までわかりやすく解説します。


詳細設計とは、基本設計で決めた内容を、実装できるレベルまで具体化する工程です。
たとえば会員登録機能を作る場合、基本設計では「名前・メールアドレス・パスワードを入力して登録する」といった全体像を決めます。
一方、詳細設計では、次のような内容まで詰めていきます。
つまり詳細設計は、作れる状態まで仕様を落とし込む工程です。
詳細設計は、ウォーターフォール型の開発において中流工程に位置します。
上流工程で「何を作るか」を決め、詳細設計で「どう作るか」を具体化し、そのあとに実装やテストへ進みます。
開発全体の流れを簡単に表すと、次の通りです。
要件定義 → 基本設計 → 詳細設計 → 実装 → テスト → 運用・保守
このように詳細設計は、上流工程の内容を開発現場へつなぐ橋渡しの工程だといえます。
詳細設計の役割は、開発者が迷わず実装できるようにすることです。
仕様があいまいなまま実装に入ると、担当者ごとに判断が分かれやすくなります。
その結果、レビューで差し戻しが増えたり、あとから修正が必要になったりします。
詳細設計を丁寧に行うことで、次のようなメリットがあります。

基本設計では、利用者から見た仕様を決めます。たとえば、次のような内容です。
つまり、基本設計は何を作るかを整理する工程です。
詳細設計では、開発者から見た内部仕様を決めます。たとえば、次のような内容です。
違いをシンプルにまとめると、次の通りです。
また、見方を変えるとこうも言えます。
この違いを押さえておくと、設計工程全体が理解しやすくなります。

詳細設計では、画面について次のような内容を整理します。
見た目だけでなく、画面の動きまで決めるのがポイントです。
入力チェックでは、主に次のような条件を定義します。
ここがあいまいだと、実装やテストで認識がずれやすくなります。
処理フローでは、機能がどの順番で動くのかを整理します。たとえば登録処理なら、次のような流れです。
処理の順番が見えていると、実装しやすくなります。
詳細設計では、データの保存方法も決めます。主に整理するのは、次のような内容です。
データの整合性に関わるため、かなり重要な部分です。
正常系だけでなく、異常系も設計する必要があります。たとえば、次のようなケースです。
実務では、正常系よりも異常系の抜け漏れが問題になりやすいです。
そのため、エラー時の動きまで明確にしておくことが大切です。

画面詳細設計書には、画面ごとの仕様をまとめます。主な記載内容は次の通りです。
処理仕様書には、処理の流れや分岐条件などをまとめます。主に使われるのは、次のような場面です。
処理順序が複雑な機能では特に重要です。
データベース関連では、次のような資料を作ることがあります。
ここでは、
などを整理します。
外部システムと連携する場合は、API仕様書も必要です。そのほかにも、次のような資料を作ることがあります。
大事なのは資料名よりも、実装・レビュー・テストに必要な情報が揃っていることです。

詳細設計なのに、基本設計を少し言い換えただけで終わってしまうことがあります。
これでは、実装に必要な情報が足りません。
詳細設計は、「詳しく見える資料」ではなく「作れる資料」である必要があります。
担当者ごとに、設計の細かさが違うこともよくあります。
こうなると、チーム全体の品質が安定しません。
テンプレートやレビュー基準をそろえることが大切です。
正常系だけを設計して、エラー処理が後回しになるケースも多いです。
しかし、実際に問題が起きやすいのはこうした異常系です。
そのため、失敗時の動きまで含めて設計しておく必要があります。
実装中に仕様変更があっても、設計書が古いまま放置されることがあります。
この状態だと、
といった問題が起こりやすくなります。
設計書は、作って終わりではなく更新して使うものです。
詳細設計とは、基本設計で決めた内容を、実装できるレベルまで具体化する工程です。
ポイントをまとめると、次の通りです。
一言でいうなら、詳細設計は
開発者が迷わず作れるようにするための設計
です。