基本設計(外部設計)と詳細設計(内部設計)の違いを3分で解説

IT-Skills

本ページでは、基本設計と詳細設計の違いを実例を交えながら解説します。

用語

基本設計は、現場によって「外部設計」、詳細設計は「内部設計」とも呼ばれますが、本ページでは「基本設計」「詳細設計」の用語で統一します。

基本設計と外部設計は同じです、現場によって呼び方が異なるだけです。
「基本設計=外部設計」「詳細設計=内部設計」

基本的には、呼び方が変わるだけなので深く考えなくてOK。前提として基本設計と詳細設計の区別は「現場によって多種多様である」ことをご理解いただければと思います。

blank

システムエンジニアやプログラマーなどシステム開発に携わる方であれば絶対に知っておきたい重要事項です。是非最後までご覧ください。

スポンサーリンク
スポンサーリンク

基本設計と詳細設計の違い

結論から言うと、基本設計は「要件定義の結果(WHAT)を「HOW」に落とし込む」作業、詳細設計は、「「HOW」をプログラマー向けに詳細化する」することを目的とします。

基本設計と詳細設計の違い
  • 基本設計
    ⇒要件定義の結果(WHAT)を「HOW」に落とし込む
  • 詳細設計
    ⇒「HOW」をプログラマー向けに詳細化する

エンジニアになり立ての方がよく勘違いしがちなのがこちら。

誤った理解
  • 基本設計 ⇒ 大雑把な設計
  • 詳細設計 ⇒ 細かい設計

これは深く考えれば、近からずも遠からずな解釈かもしれませんが、この曖昧な定義では基本設計の詳細設計の違いが明確にはなります。(どこまで基本設計?どこから詳細設計?

基本設計・詳細設計にそれぞれの役割があるからこそ、両者が別物として存在するわけであり、それぞれの作業の目的は違うのです。

詳細設計に必要な情報、プログラミングに必要な情報とは何でしょうか?

参考:Vモデル(V字モデル)

Vモデルとは、システム開発プロジェクトにおける開発工程とテスト工程の対応関係を表した1つのモデルです。下記の図は、Vモデルを一般的なイメージで表したものです。

Vモデル

Vモデルでは、V字の左側に「開発ステップ」を。右側に「テスト(検証)ステップ」を並べて表現します。色別に区分した開発ステップが、それぞれのテストと対応します。

ここで、ポイントとなるのが「前の工程のOUTPUT」が「次の工程のINPUT」になるということです。すなわち、「要件定義」の結果を基に「基本設計」が行われ、「基本設計」の結果を基に「詳細設計」が行われ、「詳細設計」をもとに「プログラミング」が行われていきます。

このことから、基本設計は「詳細設計ができるように」、詳細設計は「プログラミングができるように」するためのものであるとも表現できます。

基本設計:「WHAT」から「HOW」を導く

歯車, クロック, プロセス, プロセス最適化, 最適化, 仕事の手順

基本設計は、要件定義の結果(WHAT)を「HOW」に落とし込むプロセスです。

要件定義の結果「社員全員の安否確認システム」を作ることになった、というような場合。基本設計では、その「安否確認システム」をシステム的にどう実現するか(HOW)を決定していきます。

「安否確認システム」の基本設計イメージ
  • 社員全員にアンケート付きのメール送信を行う
  • アンケートは1人1回しか回答できないようにする
  • メール開封状況・アンケート回答状況を一覧で確認できるようにする
  • 未回答者だけにメールを再送できるようにする

冒頭で補足した通り、基本設計は「外部設計」とも呼びます。つまり、システムを外から見たときのふるまいを明らかにするのが基本設計のゴールです。

また、基本設計はエンドユーザにとっては「機能の説明書」のような役割を果たします。したがって、基本設計書はエンドユーザ向けの分かりやすい表現が求められます。

詳細設計:「HOW」をプログラマー向けに詳細化する

プログラマ, プログラミング, コード, 仕事, コンピュータ, インターネット

詳細設計では、基本設計で明確化された「HOW」をさらにプログラマー向けに詳細化します。

「安否確認システム」の詳細設計イメージ
  • 社員全員にアンケート付きのメール送信を行う
    ⇒〇〇の■■を利用し、メール送信を行う。
  • アンケートは1人1回しか回答できないようにする
    ⇒回答ステータスが「完了」の場合は回答不可とする。
  • アンケート回答状況を一覧で確認できるようにする
    ⇒アンケート回答状況テーブルから〇〇の条件でSELECTする。
  • 未回答者だけにメールを再送できるようにする
    ⇒・・・・

プログラマー自身が、基本設計をもとに詳細設計を作成しつつプログラミングすることも可能ではあります。一方で、大規模なシステム開発の場合1個の機能に対して複数のプログラマーが存在することもしばしば。

そのようなときに、プログラマーが指標とする設計書が「詳細設計書」なのです。

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