外部設計をもとに内部の構造やデータ処理を決める設計工程。
内部設計とは、外部設計で決めた外側の仕様を実現するために、プログラムの構造・モジュール分割・内部のデータ処理といった「内側の作り」を決める設計工程です。利用者には見えない、開発者向けの設計と考えると分かりやすいです。
ここで出てくるモジュール(=プログラムを機能ごとに分けた部品のこと)に分割したり、データをどんな順番で処理するかを決めたりします。要件定義→外部設計の次に行う工程です。
身近な例で考えると、家づくりの「構造図・配線図づくり」に似ています。間取り(外部設計)が決まった後、柱の位置・電気配線・水道管といった住む人には見えない内部の作りを図面にする──これが内部設計です。上の図解で、外部設計の成果をもとに内部の構造を決める流れを確認しましょう。
内部設計の工程では、プログラムの内部の作りを示した設計書を作成します。代表的な成果物は次のとおりです。
・プログラム設計書:各プログラムの処理内容や入出力を定義
・モジュール構造図:プログラムをどんな部品(モジュール)に分け、どう呼び出すかを示す図
・物理データ設計書:データを実際にどう格納・処理するかを定義
・内部インタフェース仕様:モジュール同士でやり取りするデータの取り決め
これらに共通するのは、すべて「利用者には見えない内部の作り」を扱っている点です。これらの設計書をもとに、次のプログラミング工程で実際のコードを書いていきます。
内部設計と外部設計は「視点」と「順番」が違います。外部設計は利用者から見た「何を」を先に決め、内部設計は開発者から見た「どう作るか」を後で決めます。
| 項目 | 外部設計 | 内部設計 |
|---|---|---|
| 視点 | 利用者から見た外側 | 開発者から見た内側 |
| 決めること | 画面・帳票・操作の流れ | モジュール分割・データ処理 |
| 主な成果物 | 画面設計書・帳票設計書 | プログラム設計書・モジュール構造図 |
| 順番 | 内部設計より前 | 外部設計より後 |
料理にたとえると、外部設計は「メニュー表づくり」(お客に見える料理名や値段を決める)、内部設計は「レシピと厨房の段取りづくり」(調理手順や材料の準備を決める)に当たります。先に外部設計、次に内部設計という順番が大切で、内部設計は外部設計で決めた仕様を実現する役割を持ちます。