外部設計と内部設計の違い
外部設計と内部設計は、どちらもシステムを実装するために必要な設計工程ですが、設計する対象や重視する視点が異なります。主な違いは以下のとおりです。
| 比較項目 | 外部設計 | 内部設計 |
|---|---|---|
| 主な目的 | ユーザーから見える仕様を決める | 外部設計を実現する内部処理を決める |
| 主な設計対象 | 画面・帳票・操作方法・外部インターフェースなど | 機能分割・データ処理・データベース・入出力処理など |
| 重視する視点 | ユーザー・クライアント | 開発者 |
| 主な成果物 | 画面設計書・帳票設計書・外部インターフェース仕様書など | 機能仕様書・データフロー図・データベース物理設計書など |
| 主な次工程 | 内部設計 | 実装・プログラミング |
外部設計では「ユーザーがどのようにシステムを利用するか」を具体化し、内部設計では「その仕様をシステム内部でどのように実現するか」を具体化します。両者を適切につなげることで、要件定義で決めた内容を実装へ落とし込めます。
システム開発における外部設計・内部設計の位置づけ
外部設計と内部設計は、要件定義で整理した内容を実際のシステムとして実現するための工程です。一般的なシステム開発では、以下のような流れで進めます。
- ●要件定義:必要な機能や性能、業務要件などを整理する
- ●外部設計:画面や操作方法などユーザーから見える仕様を決める
- ●内部設計:外部設計を実現するための内部処理や構造を設計する
- ●実装:設計内容にもとづいてプログラミングを行う
- ●テスト:設計どおりにシステムが動作するか確認する
要件定義で「何を実現するか」を決め、外部設計・内部設計を通じて「どのように実現するか」を具体化していきます。
外部設計とは
外部設計とは、要件定義で整理した内容をもとに、画面や操作方法、帳票などユーザーから見えるシステム仕様を設計する工程です。外部設計は基本設計や概要設計と呼ばれる場合もあります。
ユーザーが直接利用する部分を扱うため、必要な機能を満たすだけでなく、操作性やわかりやすさも重要です。クライアントと認識をあわせながら、システムの具体的な仕様を固めていきます。
- ■方式設計
- システム全体の構成やハードウェア・ソフトウェアの実装方針、プラットフォームなどの実行環境を決定します。開発言語やシステム構成などの方針も検討します。
- ■機能設計
- システムに必要な機能を整理し、画面レイアウトや操作方法、帳票、データの入出力などを設計します。ユーザーインターフェースを具体化する工程です。
- ■その他の設計
- セキュリティや運用方法など、システム運用に必要な内容を検討します。プロジェクトによっては、開発スケジュールやコストなども調整します。
外部設計で作成する主な成果物
外部設計では、クライアントと開発者が完成イメージを共有できるよう、設計内容を文書化します。代表的な成果物は以下のとおりです。
- ●外部設計書
- ●画面設計書
- ●帳票設計書
- ●外部インターフェース仕様書
- ●機能一覧・機能仕様書
- ●データベースの論理設計書
- ●セキュリティ設計書
作成する成果物や名称は、企業やプロジェクトの開発手法によって異なります。
内部設計とは
内部設計とは、外部設計で決めた仕様を実装するために、ユーザーから見えないシステム内部の構造や処理方法を設計する工程です。
機能をどのような単位に分割するか、データをどのように処理するかなどを決め、プログラミングへ移れる状態まで仕様を具体化します。内部設計を詳細設計と呼ぶ場合もあれば、内部設計のあとに詳細設計を設ける場合もあります。
内部設計で行う主な作業
内部設計は、主に「機能分割」「物理データ設計」「入出力の詳細設計」に分けて考えられます。
- ■機能分割
- システムを複数の機能やモジュールに分け、それぞれで実装する処理や機能間のデータの流れを設計します。実装や保守を行いやすい構造にすることが重要です。
- ■物理データ設計
- データベースのテーブルやファイルなど、システム内部でデータを保存・処理する仕組みを設計します。
- ■入出力の詳細設計
- 外部設計で決めた画面やインターフェースを実現するため、初期値や入力チェック、表示メッセージ、エラー処理などを具体化します。
内部設計で作成する主な成果物
内部設計では、開発者が実装内容を正確に把握できるように仕様を文書化します。代表的な成果物は以下のとおりです。
- ●内部設計書
- ●機能仕様書
- ●モジュール設計書
- ●データフロー図
- ●データベース物理設計書
- ●入出力仕様書
- ●エラー処理仕様書
外部設計の内容と矛盾しないように設計し、実装担当者が迷わずプログラミングを進められる状態にすることが重要です。
外部設計と内部設計の違いを詳しく比較
外部設計と内部設計には、設計対象だけでなく、関わる人や成果物にも違いがあります。それぞれについて詳しく見ていきましょう。
| 比較項目 | 外部設計 | 内部設計 |
|---|---|---|
| 設計対象 | 画面・帳票・操作方法など、ユーザーから見える部分 | 機能分割・データ処理など、システム内部の部分 |
| 主に関わる人 | クライアント・ユーザー・開発担当者 | 開発担当者・実装担当者 |
| 主な成果物 | 画面設計書・帳票設計書・外部インターフェース仕様書など | 機能仕様書・データフロー図・データベース物理設計書など |
設計対象の違い
外部設計では、画面や帳票、操作方法など、主にユーザーから見える部分を設計します。一方、内部設計で扱うのは、機能の分割方法やデータ処理、データベースの物理構造など、ユーザーから見えない部分です。
つまり、外部設計が「システムをどのように利用するか」を決めるのに対し、内部設計では「その仕様をどのような仕組みで実現するか」を決めます。
関わる人の違い
外部設計ではユーザーが利用する部分を決めるため、クライアントの要望や意見を確認しながら進める必要があります。画面レイアウトや操作方法などについて認識をあわせ、要件を具体的な仕様へ落とし込みます。
内部設計では、実装や保守を担当する開発者の視点がより重要です。外部設計で決めた仕様を実現するために、開発メンバーが処理方法や内部構造などを具体化します。
成果物の違い
外部設計では、画面設計書や帳票設計書など、完成するシステムの見た目や動作をクライアントと共有するための成果物を作成します。
対して内部設計では、機能仕様書やデータベース物理設計書、データフロー図など、主に開発者が実装に利用する成果物を作成します。成果物の名称や範囲はプロジェクトによって異なりますが、想定する利用者が異なる点も両者の大きな違いです。
外部設計・内部設計と基本設計・詳細設計の違い
システム開発では、外部設計・内部設計のほかに「基本設計」「詳細設計」という言葉も使われます。一般的には、外部設計を基本設計、内部設計を詳細設計と同じ意味で扱うケースがあります。
ただし、工程の名称や対象範囲に統一された定義があるわけではなく、企業やプロジェクトによって異なります。例えば、外部設計と基本設計を同じ工程とする場合もあれば、内部設計のあとに詳細設計を別工程として設ける場合もあります。
名称だけで判断せず、それぞれの工程で「何を決めるのか」「どの成果物を作成するのか」をプロジェクト開始時に明確にしておくことが重要です。
外部設計・内部設計を進める際のポイント
設計内容の抜け漏れや後工程での手戻りを防ぐためには、外部設計と内部設計を個別に進めるだけでなく、要件定義や実装工程とのつながりも意識しましょう。
要件定義との整合性を確認する
外部設計は、要件定義で整理した機能や業務要件を具体化する工程です。設計を進めるなかで当初の要件とずれてしまうと、完成したシステムがクライアントの要望を満たさない可能性があります。設計内容と要件定義書を随時照らしあわせましょう。
外部設計と内部設計の内容を連携させる
内部設計は、外部設計で決めた仕様を実現するために行います。画面や機能の変更が発生した際は、関連する内部設計にも反映し、設計書間の不整合を防ぐことが重要です。
設計書の記載方法を統一する
設計書の形式や用語が担当者ごとに異なると、認識違いや実装ミスにつながります。テンプレートや記載ルールを定め、誰が見ても理解しやすい設計書を作成しましょう。
仕様変更を設計書へ反映する
開発中に仕様を変更した場合は、プログラムだけでなく設計書も更新します。設計書を最新の状態に保つことで、テストや保守、将来の改修時にも正しい仕様を確認できます。
外部設計や内部設計を含む開発工程を効率化したい場合は、開発ツールの活用も有効です。以下の記事では、おすすめの開発ツールや選び方を紹介しているので、あわせて参考にしてください。
設計・開発業務を効率化したい場合は、開発ツールの活用も選択肢です。「自社にあう開発ツールがわからない」という方は、無料診断を活用して候補を絞り込んでみてください。
外部設計・内部設計に関するよくある質問
外部設計と内部設計について、よくある疑問を紹介します。
- Q1:外部設計と基本設計は同じですか?
- 同じ意味で使われる場合があります。ただし、企業やプロジェクトによって工程の名称や対象範囲が異なるため、プロジェクトごとの定義を確認しましょう。
- Q2:内部設計と詳細設計は同じですか?
- 内部設計を詳細設計と呼ぶケースがあります。一方、内部設計のあとに詳細設計を別工程として設ける場合もあります。
- Q3:外部設計と内部設計はどちらが先ですか?
- 一般的には外部設計が先です。要件定義をもとに外部設計を行い、その仕様を実現するための内部設計へ進みます。
- Q4:外部設計では何を決めますか?
- 画面や帳票、操作方法、外部インターフェースなど、主にユーザーから見えるシステム仕様を決めます。
- Q5:内部設計では何を決めますか?
- 機能の分割方法やデータ処理、データベースの物理構造、入出力処理など、実装に必要なシステム内部の仕様を決めます。
まとめ
外部設計では、要件定義をもとに画面や操作方法などユーザーから見えるシステム仕様を決めます。内部設計では、その仕様を実現するために機能やデータ処理、システム内部の構造などを具体化します。
外部設計と内部設計を適切につなげることで、認識違いや実装段階での手戻りを抑え、スムーズなシステム開発につながります。
また、設計書の作成・管理やプログラミング、テストなどの開発業務を効率化したい場合は、開発ツールの活用もおすすめです。自社の開発環境や課題にあった製品を比較し、導入を検討してみましょう。


