基本設計と詳細設計の違い|外部設計・内部設計との関係と決めること・成果物を例で解説

基本設計と詳細設計の違いを比較した図解。基本設計(外部設計)は画面や機能など利用者から見える部分、詳細設計(内部設計)は処理フローやプログラム構造など内部の作り方を決める工程で、成果物や対応するテストの違いも紹介。

この記事の結論

基本設計と詳細設計の違いは、基本設計が利用者から見える部分を決め、詳細設計がそれを実現するプログラムの内部の作り方を決める点にあります。

  • 基本設計は外部設計、詳細設計は内部設計とも呼ばれる
  • 基本設計の読み手は顧客、詳細設計の読み手はプログラマー
  • 基本設計は結合テスト、詳細設計は単体テストで確かめる

📖 読了時間:約10分

基本設計と詳細設計の違いは、基本設計が画面や機能など利用者から見える部分を決めるのに対し、詳細設計はそれを実現するためのプログラムの内部の作り方を決める点にあります。基本設計は「外部設計」、詳細設計は「内部設計」とも呼ばれます。

どちらも要件定義で決めた内容を形にしていく工程ですが、読み手と細かさが違います。基本設計書は顧客が確認できる言葉で書き、詳細設計書はプログラマーがそのままコードにできる細かさで書きます。

以下では、2つの違いの比較、それぞれで決めること、同じ機能での書き方の例、境界があいまいになる場面、設計の経験の伝え方の順に解説します。

こんな悩みはありませんか

  • 基本設計と詳細設計の違いがはっきり分からない
  • 外部設計・内部設計という言葉との関係が知りたい
  • 設計書に何をどこまで書けばよいか迷っている
  • 設計の経験をスキルシートにどう書けばよいか知りたい

この記事で分かること

  • 基本設計と詳細設計の違い(比較表)
  • 外部設計・内部設計との関係
  • それぞれの工程で決めることと成果物
  • 同じ機能での設計書の書き方の例
  • 設計の経験を経歴で伝えるコツ

この記事を読めば、2つの設計の違いと、それぞれで何を書けばよいかが分かります。まずは無料でスキルログに登録し、これまでに担当した設計の範囲を整理しておきましょう。

基本設計と詳細設計の違いを比較

目的、読み手、決めること、成果物、対応するテストの5つで比べると違いがはっきりします。

観点 基本設計(外部設計) 詳細設計(内部設計)
目的 要件を、利用者から見える形に具体化する 基本設計を、プログラムの作り方に落とし込む
主な読み手 顧客、開発チーム全体 プログラマー
決めること 画面、帳票、機能の一覧、データの項目、外部との連携 プログラムの構造、処理の手順、データベースの物理的な設計
主な成果物 基本設計書、画面設計書、帳票設計書 詳細設計書(モジュール設計書、処理フローなど)
対応するテスト 結合テスト 単体テスト

違いを一言でいうと

基本設計は「利用者にとって何がどう見えるか」、詳細設計は「それを内部でどう動かすか」を決める工程です。顧客の確認を受けるのは基本設計までで、詳細設計は開発側の内部の工程として進めるのが一般的です。

外部設計・内部設計との関係

会社によって、基本設計を外部設計、詳細設計を内部設計と呼びます。ほぼ同じ意味ですが、会社によっては「外部設計の一部を基本設計、残りを詳細設計に含める」など区切り方が違うこともあるため、現場ではその会社の定義を確かめましょう。なお、IPAの「共通フレーム2013」では、作業は「方式設計」「詳細設計」などの名前で整理されており、現場で使われる「基本設計」と区切り方が一致しない場合があります。

基本設計で決めること

画面、帳票、機能、データ、外部とのつなぎ方など、利用者や他のシステムから見える部分をすべて決めます。

基本設計は、要件定義で決めた「何を作るか」を受け取り、利用者が実際に触れる形に変える工程です。工程全体の中での位置づけはシステム開発の工程とは?流れと成果物の一覧で解説しています。

画面・帳票の設計

画面の一覧と遷移、各画面に置く項目、入力のルール、エラー時の表示、出力する帳票のレイアウトを決めます。顧客が完成の姿を想像できるよう、画面のイメージ図を添えるのが一般的です。

機能とデータの設計

機能の一覧と、それぞれの機能が何をするかを決めます。あわせて、システムが扱うデータの項目と、データどうしの関係を整理します。

外部とのつなぎ方の設計

他のシステムとどんなデータを、どのタイミングでやり取りするかを決めます。連携先の担当者との調整が必要になるため、早めに着手することが大切です。

詳細設計で決めること

プログラムの分け方、処理の手順、データベースの物理的な設計など、プログラマーがそのまま実装できるところまで決めます。

プログラムの構造

機能をどのような部品(モジュールやクラス)に分け、部品どうしをどうつなぐかを決めます。共通で使う部品を切り出しておくと、作る量と不具合を減らせます。

処理の手順

入力の確認、計算、データの読み書き、エラーの扱いなど、処理の順番と条件を決めます。条件の分かれ目を表にした「決定表」や、処理の流れを図にした「処理フロー」がよく使われます。

データベースの物理的な設計

テーブルの名前や項目の型、検索を速くするための索引など、データベースに実際に作る形を決めます。基本設計で整理したデータの項目を、実装できる形に落とし込む作業です。

同じ機能で見る基本設計と詳細設計の違い

在庫検索の機能を例にすると、書く内容の細かさと視点の違いがよく分かります。

観点 基本設計書の記載例 詳細設計書の記載例
検索条件 商品名・商品コード・倉庫で検索できる 商品名は部分一致、商品コードは完全一致。条件は AND で結合する
結果の表示 一覧に商品名・在庫数・倉庫を表示。1ページ50件 在庫テーブルと商品テーブルを商品コードで結合して取得し、50件ずつ取り出す
エラー時 条件が未入力ならメッセージを表示 入力チェック部品を呼び出し、エラーコードE001を返す
性能 検索結果を3秒以内に表示 商品名と倉庫の組み合わせに索引を作成する

詳細設計は「迷わず書ける」が目安

詳細設計書は、別のプログラマーが読んでも同じコードを書ける細かさが目安です。逆に、基本設計書は顧客が読んで「これで業務ができる」と判断できることが目安になります。

担当した設計の範囲を、こうした具体的な成果物と一緒に記録しておくと、経歴を伝えるときの説得力が増します。スキルログなら案件ごとに担当工程を入力できるので、基本設計か詳細設計かまで残せます。

基本設計と詳細設計の違いがあいまいになる場面

小さな開発やアジャイル開発では、2つの設計を分けずに進めることもあります。

  • 小規模な開発:設計者とプログラマーが同じ人で、設計書を1つにまとめる
  • アジャイル開発:短い期間ごとに、必要な範囲だけ設計して作る
  • パッケージの導入:画面や機能の大半が既にあり、設定と追加部分だけ設計する

文書を省いても、決めることは同じ

設計書を分けない場合でも、見える部分と内部の作り方を決める作業そのものはなくなりません。アジャイル開発での進め方の違いはアジャイルとウォーターフォールの違いで解説しています。

設計の経験を経歴で伝えるコツ

基本設計か詳細設計か、どの機能を、どの成果物で、どんな役割で担当したかを書くと伝わります。

「設計を担当」とだけ書くと、基本設計なのか詳細設計なのか、どれくらいの範囲なのかが読み手に伝わりません。次のように具体的に書きましょう。

  • 工程:基本設計か詳細設計か、または両方か
  • 範囲:担当した機能や画面の数
  • 成果物:作成した設計書の種類
  • 役割:一人で担当したか、レビューやまとめ役を担ったか

プロジェクトの経歴の書き方はスキルシートのプロジェクト経歴の書き方で詳しく紹介しています。ただ、ExcelやWordで経歴を書き足していくと、案件ごとに書く項目がばらつき、担当した工程の範囲や役割があいまいになりがちです。スキルログで記録すると、次の点で楽になります。

  • 項目がそろう:案件ごとに期間・役割・プロジェクト規模・チーム規模・業種・担当工程・成果を同じ項目で入力するので、書き漏れがなく、案件どうしを比べやすい
  • 体裁を整える手間がない:入力した内容はPDF出力で体裁の整ったスキルシートになり、新しい案件を足したらそのまま出し直せる
  • 伸びたスキルが見える:スキルごとにS・A・Bなどの自己評価と経験年数を並べて確認でき、次に伸ばすところが分かる

登録した経歴をもとに、自分の経験で狙える求人や案件、年収や単価の目安を、転職・案件相談で一緒に確かめることもできます。

まとめ

基本設計と詳細設計の違いは、外から見える姿を決めるか、内部の作り方を決めるかです。

基本設計(外部設計)は、画面や機能、データなど利用者から見える部分を決め、顧客の確認を受けます。詳細設計(内部設計)は、プログラムの構造や処理の手順を、プログラマーがそのまま実装できる細かさで決めます。

基本設計は結合テスト、詳細設計は単体テストで確かめる関係にあります。テストの違いは単体テストと結合テストの違いで、設計の前の工程は要件定義とは?進め方・成果物・例で解説しています。

よくある質問

基本設計と詳細設計についてよく寄せられる質問をまとめました。

基本設計書は誰が書きますか?

主にシステムエンジニアが書きます。顧客と話しながら画面や機能を決めるため、要件定義から続けて同じ担当者が書くことが多いです。

詳細設計はプログラマーが書くこともありますか?

あります。特に小さなチームでは、実装を担当するプログラマー自身が詳細設計を書き、レビューを受けてから実装に進むことがよくあります。

詳細設計は省略できますか?

規模や体制によっては、簡略化することがあります。ただし、別の人が保守するときに処理の意図が分からなくなるため、重要な処理だけでも設計を残しておくのが安全です。

方式設計とは何ですか?

システム全体の構成を決める設計です。サーバーやネットワークの構成、使う技術、ソフトウェアの大まかな分け方などを決め、基本設計の前後で行います。

基本設計と詳細設計はどちらが難しいですか?

難しさの種類が違います。基本設計は顧客との調整と業務の理解、詳細設計は技術的な正確さが求められます。基本設計の経験のほうが、上流工程の経験として評価されやすい傾向にあります。

ここまでの内容を踏まえて、まずはスキルログに無料で登録し、これまでに担当した設計の案件を、工程と成果物まで入力してみましょう。

スキルログ

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です