修了試験 2012-07-22実施分 基本情報技術者試験 問49
あるプログラム言語の解説書の中に次の記述がある。 この記述中の"良いプログラム"がもっている特徴はどれか。 このプログラム言語では,関数を呼び出すときに引数を保持するためにスタックが使用される。 引数で受け渡すデータを,どの関数からでも参照できる共通域に移せば,スタックの使用量を減らすことができるが,"良いプログラム"とは見なされないこともある。
正答3
解説
正解は3です。 引数で受け渡すデータを、どの関数からも参照できる共通域(グローバル変数)に置くと、スタックの使用量は減ります。 しかし、共通域はどの関数からも読み書きできるため、関数どうしが共通域を通じて強く結び付きます。 ある関数を直すと、共通域を使うほかの関数にも影響が及ぶおそれがあります。 引数でデータを渡す「良いプログラム」は、関数の独立性が高く、変更の影響が局所的です。 【選択肢別解説】 1:× 引数をスタックで渡すと、むしろスタックの使用量は共通域を使う場合より増えます。 メモリ使用量が一定以下に収まることは、この記述での「良いプログラム」の特徴ではありません。 2:× 共通域を使えば引数の受け渡しが減るので、実行速度の面ではむしろ有利なこともあります。 この記述は速度の最適化を良さの基準にしていません。 3:○ 引数でデータを受け渡すと、モジュール間の結び付き(結合度)が弱くなります。 一部のモジュールを変更しても、残りの部分への影響が少なくなります。 4:× 共通域を使うかどうかは、ステップ数の少なさや分かりやすさを問題にした記述ではありません。 この記述が重視しているのは、モジュールの独立性です。 【ポイント】 モジュールは「結合度は弱く、強度(凝集度)は強く」が良い設計です。 共通域を介して結び付く共通結合は、結合度が強い望ましくない形態とされます。まとめて解く
修了試験 2012-07-22実施分を通しで解く(80問)→