問題
問50
ソフトウェア開発における設計工程の一つで、システム全体の構造や主要なコンポーネント間の関係を定義する設計はどれか。
- 外部設計
- 内部設計
- プログラム設計
- データベース設計
正解
正解は「ア」です。
解説
正解は「ア」の外部設計です。外部設計は、システム開発の上流工程で行われ、利用者(ユーザ)の視点から見たシステムの仕様を定義する工程です。基本設計とも呼ばれます。この段階では、システムがどのような機能を持つのか、画面や帳票のデザインはどうなるのか、他のシステムとどのように連携するのかといった、システムの「外側」から見た全体像を決定します。
家を建てるプロセスに例えると、顧客の要望を聞きながら「部屋の数や配置(間取り)」「外観デザイン」「窓やドアの種類」などを決める、最初の設計図を作る段階にあたります。内部の構造(柱の材質や配線の方法など)はまだ考えません。問題文にある「システム全体の構造」や「主要なコンポーネント間の関係を定義する」といった、システムの骨格や大枠を決める作業は、まさに外部設計で行われる内容です。
イ(内部設計):
外部設計で定義された仕様を、開発者側の視点で、どのようにコンピュータ上で実現するかを具体的に設計する工程です。詳細設計とも呼ばれます。
ウ(プログラム設計):
内部設計をさらに詳細化し、個々のプログラム(モジュール)の処理ロジックやデータ構造などを設計する工程です。
エ(データベース設計):
システムで扱うデータをどのようにテーブルに格納し、管理するかを設計する工程です。論理設計と物理設計があります。
解法のポイント
ソフトウェア開発の設計工程は、一般的に「外部設計(基本設計)」→「内部設計(詳細設計)」の順に進みます。この2つの違いを理解することが重要です。 ・外部設計:ユーザ視点(What)。システムが「何をするか」を決める。 ・内部設計:開発者視点(How)。それを「どうやって実現するか」を決める。 このように、「誰の視点で」「何を」決める工程なのかを区別すると覚えやすいです。「システム全体の構造」といったマクロな視点は外部設計、「モジュールの詳細」といったミクロな視点は内部設計やプログラム設計、と覚えておきましょう。
用語補足
外部設計:
利用者から見えるシステムの仕様を決める設計です。家の外観や間取りを決める基本設計にあたります。
コンポーネント:
システムを構成する、特定の機能を持った部品のことです。ソフトウェアにおける部品や構成要素を指します。
内部設計:
システムの中身、つまり開発者から見た実現方法を決める設計です。家の柱の太さや壁の材質、電気配線などを決める詳細設計にあたります。
プログラム設計:
個々のプログラムの動きを細かく設計することです。内部設計をさらに具体化したもので、料理のレシピのように、具体的な手順を記述します。


