内部設計とは?ITパスポートで押さえる外部設計との違い

内部設計とは、外部設計で決めた「利用者に何を提供するか」を、プログラムやデータベースが実際に動く形へ具体化する設計です。ITパスポートでは、画面の見た目や業務の要求を決める外部設計と、処理手順・データ構造・モジュールの役割を詰める内部設計を区別します。内部設計とは何かを問われたら、利用者向けの仕様ではなく、開発者が実装とテストに使う詳細な設計と捉えるのが結論です。

目次

内部設計の定義と仕組み

システム開発では、要求を整理した後、まず外部設計で画面、帳票、機能、他システムとの連携などを決めます。内部設計では、その内容を受けて、どの処理をどの順序で実行するか、データをどの項目で保持するか、機能をどの部品に分けるかを具体化します。

例えば申込受付の機能なら、入力された郵便番号を確認する順番、重複した申込みを判定する条件、受付結果を保存する表の項目、異常時に返すメッセージまでを整理します。実装者ごとの解釈のずれを減らし、後の単体テストで確認する対象を明確にする役割があります。

外部設計との違いを比較する

観点 外部設計 内部設計
主な視点 利用者や業務から見た機能・画面・帳票 開発者から見た処理・データ・プログラム構造
決める例 申込画面で入力する項目、出力する受付票 入力チェックの順序、データ保存先、処理の呼び出し関係
次につながる作業 内部設計の前提を与える プログラミングと単体テストの基準になる

両者は対立するものではありません。外部設計が「何を使えるようにするか」を定め、内部設計が「それをどう実現するか」を定めます。細かな画面項目が出てきても、利用者の操作や業務ルールを示す説明なら外部設計寄りです。処理順序やデータ項目の持ち方なら内部設計寄りです。

試験での見分け方

問題文にプログラムの処理手順、モジュールの分割、データベースの項目、エラー処理、内部のインタフェースが出たら内部設計を選ぶ手掛かりです。一方、利用者が入力する内容、帳票のレイアウト、業務担当者が使う機能、画面遷移の目的が中心なら外部設計を疑います。「詳細」という語だけで判断せず、誰のための仕様か、実装方法まで踏み込んでいるかを見ます。

仕事での具体例

自治体向けの予約システムを開発する場面では、外部設計で予約日時や人数を入力する画面を決めます。その後の内部設計では、同じ時間帯の空き枠をどの条件で減らすか、予約取消しで枠を戻す処理、同時に申込みが来たときの重複をどう防ぐかを設計します。開発担当者はこの設計を基に実装し、テスト担当者は満席時や取消し時の期待結果を確認します。

日常生活での具体例

映画館の座席予約を利用する人は、上映回と座席を選んで予約完了画面を見るだけです。しかし裏側では、選択中の座席を一時的に確保する時間、決済に失敗した場合に座席を戻す処理、同じ座席を二重に販売しない判定が必要です。利用者には見えない動き方を細かく決めるという点で、内部設計の考え方を身近にイメージできます。

確認問題

問題1

申込機能について、入力値の形式を検査する順序と、申込データを保存する項目を決める作業はどれですか。

  1. 要件定義
  2. 外部設計
  3. 内部設計
  4. 運用テスト

答え:3。処理の順序と保存項目は、実装に近い内部の動きを決める内容です。

問題2

外部設計との違いとして適切な説明はどれですか。

  1. 内部設計は利用者の業務要求だけを決める
  2. 内部設計は実現するための処理やデータを具体化する
  3. 外部設計は必ずプログラムの命令を記述する
  4. 外部設計と内部設計は同じ成果物である

答え:2。外部設計で決めた機能を、内部設計で処理・データ・部品へ落とし込みます。

次に読む関連記事

目次