内部設計の解説(ITパスポートシラバス用語)

目次

内部設計(Internal Design / 詳細設計)とは

内部設計(詳細設計)とは、外部設計で決まった「ユーザーから見える仕様(画面や操作手順)」を実現するために、システムの「内側の仕組み(プログラマーがコードを書くための詳細な仕様)」を設計する工程です。データの処理方法、データベースのテーブルの構造、プログラムを構成する部品(クラスやモジュール)の分け方など、システムの裏側の動きをエンジニア向けに定義します。ユーザーには直接見えない部分の設計です。

具体例

家計簿アプリで「金額を入力して保存ボタンを押した」際の内部設計の具体例です。

  • データ処理設計:入力された値が「正の整数」であるかチェックし、もし文字が混ざっていたらエラーを返すプログラムの処理ロジックを作ります。
  • データベース設計:家計簿データを保存するテーブル(テーブル名:`household_accounts`)に、`id`(連番)、`amount`(金額)、`category_id`(カテゴリ番号)、`created_at`(登録日時)の項目を定義します。

この内部設計書をベースに、プログラマーが実際にプログラミング言語を使ってコードを書き始めます。

もう少し詳しく

内部設計は、「詳細設計」とも呼ばれ、家づくりに例えると「水道の配管」や「電気の配線図」を作成する工程に当たります。家に住む人(ユーザー)は「蛇口をひねれば水が出る(外部設計)」ことだけを知っていればよく、壁の中でパイプがどうつながっているかを知る必要はありません。しかし、実際に家を建てる大工さん(プログラマー)にとっては、精緻な配管図がなければ作業を進めることができません。
内部設計では、外部設計で定義されたシステム全体の機能を、実際にプログラミング可能な小さな単位(モジュールやコンポーネント)に分割していきます。この分割の仕方が悪いと、将来システムの一部を修正したときに、関係ない他の部分までバグ(不具合)が起きてしまう原因になります。そのため、各モジュールが独立して働きつつ、お互いにどのようなデータを受け渡すのか(インターフェース設計)を明確にします。また、エラーが発生した時にシステムが止まらないようにする例外処理のルールや、データベースのどのテーブルからどのようにデータを取得するかという物理データモデルの設計など、コンピューター上でシステムが効率よく、かつ安全に動作するための細かな技術的仕様をすべて網羅し、プログラマーへの指示書として完成させます。

試験でのポイント

ITパスポート試験で内部設計(詳細設計)が問われる場合、「開発者(プログラマ)の視点」や「システムの内部構造」というキーワードがカギになります。「ソフトウェアを構成するモジュールの分割や、モジュール間のインターフェースを設計する」「プログラム作成(コーディング)のための詳細な仕様を決定する」といった内容であれば内部設計です。「ユーザーインターフェース(画面や帳票)」という言葉が出てくる外部設計(基本設計)としっかり対比させて覚えましょう。内部設計の後は、実際にプログラムを記述するソフトウェア構築(プログラミング)の工程へと進みます。

関連する用語

内部設計は、ユーザーから見える部分の仕様を決める外部設計(基本設計)が完了した後に実施されます。内部設計で作成された詳細な仕様書(プログラム設計書など)に基づいて、プログラマーが実際にソースコードを記述していく工程がプログラミング(コーディング)です。また、作成されたプログラムが内部設計書通りに正しく動くかを確認するために単体テストが行われます。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ