IPA過去問ドリル

平成21年度 秋期 システムアーキテクト試験 午前Ⅱ 問5

テクノロジ/開発技術

あるプログラム言語の解説書の中に次の記述がある。この記述中の“良いプログラム”がもっている特徴はどれか。 このプログラム言語では,関数を呼び出すときに引数を保持するためにスタックが使用される。引数で受け渡すデータを,どの関数からでも参照できる共通域に移せば,スタックの使用量を減らすことができるが,“良いプログラム”とは見なされないこともある。

出典:平成21年度 秋期 システムアーキテクト試験 午前Ⅱ 問5

正解:ウ

解説

関数間で共有するデータを、引数による受渡しではなく、どの関数からでも参照できる共通域(グローバル変数)に置くと、あるモジュールでその共通域のデータを変更したときの影響が、その共通域を参照するほかのすべてのモジュールに及んでしまう。このため、モジュールの独立性(一部を変更しても残りの部分への影響が少ないという性質)が低下し、“良いプログラム”とは見なされなくなる。

選択肢ごとの解説

  • 誤り。共通域を使ってスタック使用量を減らすこと自体は、メモリ使用量が一定以下に収まることを保証する性質とは直接関係しない。
  • 誤り。共通域を使うかどうかは、実行速度の最適化と直接関係する記述ではない。
  • 正しい。共通域にデータを移すと、モジュール間の結びつきが強くなり、一部を変更したときの残りの部分への影響が大きくなる。これが失われる“良いプログラム”の特徴である。
  • 誤り。共通域を使うかどうかは、プログラムのステップ数や分かりやすさと直接関係する記述ではない。
システムアーキテクトの過去問を演習モードで解く