引数による受渡しで関数間の依存を抑える

関数間の結合度を低くする と,一部の修正が他へ及ぼす影響を小さくできます。引数で必要なデータを明示的に渡すと依存関係が見えますが,共通域を多数の関数から参照・更新すると,変更の影響が広がりやすくなります。 共通域への移動はスタック使用量を減らしますが,設問はそれでも良いプログラムとは限らないと述べています。メモリ量の保証が判断の中心ではありません。 実行速度は結合度や変更の影響とは別の評価軸です。 共通域を使うかどうかだけで,ステップ数や読みやすさは決まりません。

あるプログラム言語によるプログラミングの解説書の中に次の記述がある。この記述中の “良いプログラム” がもっている特性はどれか。

このプログラム言語では,関数を呼び出すときに引数を保持するためにスタックが使用される。オプションの指定によって,引数で受け渡すデータをどの関数からでも参照できる共通域に移して,スタックの使用量を減らすことは可能だが,“良いプログラム” とは見なされないこともある。

出典令和元年度 秋期 システムアーキテクト試験 午前Ⅱ 問5
ア
実行するときのメモリの使用量が,一定以下に必ず収まる。
イ
実行速度が高速になる。
ウ
プログラムの一部(関数)を変更しても,他の関数への影響が少ない。
エ
プログラムのステップ数が少なく,分かりやすい。