問題
問70
ソフトウェア開発における外部設計で定義されるものはどれか。
- システムの機能、入出力インターフェース、ユーザインターフェース
- 各モジュールの詳細な処理ロジック、データ構造
- データベースの物理設計、テーブル定義
- プログラムのコーディング規約、テストケース
正解
正解は「ア」です。
解説
正解は「ア」のシステムの機能、入出力インターフェース、ユーザインターフェースです。外部設計(基本設計)は、システム開発の工程において、利用者側の視点からシステムがどのように振る舞うべきかを定義する段階です。この工程では、システムの内部的な仕組みには立ち入らず、外から見える仕様を固めます。
具体的には、「システムの機能」(どんなことができるのか)、「入出力インターフェース」(画面や帳票、他のシステムとのデータ連携など、システムが外部とどのように情報をやり取りするのか)、「ユーザインターフェース」(利用者が操作する画面のレイアウトやデザイン)などを決定します。家づくりで例えるなら、施主(利用者)の要望を聞きながら、家の間取りや外観、窓の大きさ、壁紙の色などを決める、基本的な設計図を作成する工程にあたります。ここで決定された内容が、後続の内部設計以降の工程の基礎となります。
イ(各モジュールの詳細な処理ロジック、データ構造):
これは内部設計やプログラム設計の段階で定義される、開発者視点の詳細な仕様です。
ウ(データベースの物理設計、テーブル定義):
これはデータベース設計、特に内部設計の段階で行われる作業です。
エ(プログラムのコーディング規約、テストケース):
コーディング規約はプログラミング工程のルールであり、テストケースはテスト工程で作成されます。いずれも設計工程より後の話です。
解法のポイント
システム開発の設計工程では、「外部設計」と「内部設計」の違いを理解することが極めて重要です。
- 外部設計:ユーザ視点で、システムの「外側」の仕様(何ができるか)を決める。
- 内部設計:開発者視点で、システムの「内側」の仕様(どう実現するか)を決める。
この視点の違いを把握することがポイントです。選択肢の内容が、利用者が直接触れたり目にしたりするもの(機能、画面など)であれば外部設計、プログラムの内部構造や具体的な実現方法に関するものであれば内部設計、と判断できます。
用語補足
外部設計:
システムの「外見」を決める設計です。自動車のデザインや、運転席の計器類の配置、ドアの数などを決める工程に相当します。
インターフェース:
「接点」や「境界」を意味し、モノとモノとを繋ぐ部分のことです。人間とコンピュータを繋ぐユーザインターフェースや、システム間を繋ぐインターフェースなどがあります。
内部設計:
システムの「中身」を決める設計です。自動車のエンジンの種類や、部品の材質、配線の方法などを決める詳細な設計工程にあたります。
モジュール:
ソフトウェアを構成する、特定の機能を持った部品のことです。機能ごとに分割することで、開発や修正がしやすくなります。


