プログラム言語 (全18問中17問目)

No.17

あるプログラム言語の解説書の中に次の記述がある。この記述中の"良いプログラム"がもっている特徴として,適切なものはどれか。

 このプログラム言語では,関数を呼び出すときに引数を保持するためにスタックが使用される。引数で受け渡すデータを,多くの関数から参照できる共通域に移せば,スタックの使用量を減らすことができるが,"良いプログラム"からは外れることもある。
  • 実行するときのメモリの使用量が,一定以下に必ず収まる。
  • 実行速度について,最適化が行われている。
  • プログラムの一部を変更しても,残りの部分への影響が少ない。
  • プログラムのステップ数が少なく,分かりやすい。
  • [この問題の出題歴]
  • 基本情報技術者 H15春期 問50

分類

テクノロジ系 » アルゴリズムとプログラミング » プログラム言語

正解

解説

モジュール結合度に関する問題です。
モジュール結合度は、モジュール同士の関連性の強さを表し、モジュール結合度が弱いほど関連するモジュールに変更があった場合の影響を受けにくくなるので、モジュールの独立性が高まり保守性が向上します。

モジュール結合度は、データの受け渡し方法などにより全部で6段階のレベルに分類されます。
データ結合(弱い↑)
処理に必要なデータだけを単一のパラメータとして受け渡している
スタンプ結合
処理に必要なデータだけをレコードや構造体などのデータ構造として受け渡している
制御結合
もう1つのモジュールの制御要素を受け渡している
外部結合
外部宣言された共通データを参照している
共通結合
共通域に宣言された共通データを参照している
内容結合(強い↓)
お互いのモジュール内部を直接参照・分析している
問題文中に、「引数で受け渡すデータを、多くの関数から参照できる共通域に移せば」とあるので、共通結合に関して問われています。共通結合は、モジュール結合度が比較的強いので、「関連するモジュールに変更があった場合の影響」を受けやすくなります。
つまり今回の問題では、モジュール結合度が強いことは「良いプログラム」からは外れることになります。

また、スタック領域とは、関数呼び出しや再帰的なプログラムを記述する際に利用されるメモリ領域のことで、他のプログラムからの干渉が少ない領域です。それを共通領域に移すと、他のプログラムがその部分を書き換えることができてしまうので、変更があった場合の影響が大きくなります。

よってこの記述中の"良いプログラム"とは「プログラムの一部を変更しても,残りの部分への影響が少ない」ことを示していることになります。
© 2010-2019 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop