平成15年春期試験問題 午前問50

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
あるプログラム言語の解説書の中に次の記述がある。この記述中の"良いプログラム"がもっている特徴として,適切なものはどれか。

このプログラム言語では,関数を呼び出すときに引数を保持するためにスタックが使用される。引数で受け渡すデータを,多くの関数から参照できる共通域に移せば,スタックの使用量を減らすことができるが,"良いプログラム"からは外れることもある。

  • 実行するときのメモリの使用量が,一定以下に必ず収まる。
  • 実行速度について,最適化が行われている。
  • プログラムの一部を変更しても,残りの部分への影響が少ない。
  • プログラムのステップ数が少なく,分かりやすい。
正解 問題へ
分野:テクノロジ系
中分類:システム開発技術
小分類:ソフトウェア方式設計・詳細設計
解説
モジュール結合度に関する問題です。
モジュール結合度は、モジュール同士の関連性の強さを表し、モジュール結合度が弱いほど関連するモジュールに変更があった場合の影響を受けにくくなるので、モジュールの独立性が高まり保守性が向上します。

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

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

この問題の出題歴


Pagetop