内部設計について
内部設計とは
内部設計(External Design)とは
内部設計とは、外部設計の要件を詳細化し、製造・プログラミング実装を行うための具体的な仕様を設計することです。
ここでは、エンドユーザーに見えない機能内部の設計やコンポーネント間の連携などを、実現方法や処理効率を考慮しながら、システム開発者の立場で定義していきます。
なお、内部設計の結果は、多くの場合にクライアントの了解を得る必要は無く、システム開発の担当者からの合意のみを取ります。
内部設計の呼び方や英語表記について
内部設計は、「詳細設計」、「機能設計」、「プログラム設計」とも呼ばれ、企業組織の文化や開発方法論によって呼ばれ方はまちまちです。
なお、IPA(情報処理推進機構)では情報処理試験において、内部設計という用語を用いています。
英語圏では、内部設計のことを「Detailed Design」や「DD」と呼ぶことが多いようです。

内部設計の設計対象
内部設計では、「機能分割」、「物理データ設計」、「入出力設計」という3つのフェーズに分けることが一般的です。
機能分割(モジュール分割)
機能分割とは、機能をモジュールごとに分割し、各モジュールの機能を明確化することです。
プログラミングやシステムの再利用性やメンテナンス性を効率化し、品質を向上させる効果があります。
また、機能分割の一部として、機能間でデータが処理される際の流れ(データフロー)についても設計します。
処理されるデータの流れを明確化することによって、設計の正しさを検証したり、不具合の有無を確認することができます。
物理データ設計・物理設計
物理データ設計とは、論理設計(外部設計における論理データ設計)に基づいて、システム内部データの物理構成を設計することです。
具体的な設計内容としては、以下のことが挙げられます。
・データベースやデータファイルの物理構造を視覚化する。
・ユーザーの性能要件(処理速度や記憶領域の効率化)を満たすための物理構成を検討する。
・データベースの配置場所やハードウェア、ミドルウェアなどの資源を選定する。
入出力設計
入出力設計とは、システムが入出力するデータの種類や構造、その処理方法などを設計する工程です。
ここでは、外部設計で決めたインターフェースを具体的に実装するための設計を実施します。
具体的な設計内容としては、以下のことが挙げられます。
・インターフェースをプログラミングでどのように実装・表現するのかを詳細に設計する。
・データの初期値・デフォルト値を定義する。
・入力データのチェック方法、エラー処理、表示するメッセージなどを設計する。
内部設計の成果物
内部設計書(詳細設計書)
内部設計の成果物は、内部設計書(詳細設計書)と呼ばれる文書群になります。
内部設計書は、システム開発関係者やプログラマーが確認するシステムの詳細部分を定義した文書になります。
静的な資料(構造を表現)
- クラス図
- モジュール構造図
- データベース物理設計書
動的な資料(流れを表現)
- データフロー図
- アクティビティ図
- シーケンス図
- IPO(Input, Process, Output:処理機能記述)