エンベデッドシステムスペシャリスト 2010年 午前2 問21
問題文
モジュールの独立性を高めるには、モジュール結合度を弱くする必要がある。モジュール間の情報の受渡し方法のうち、モジュール結合度が最も弱いものはどれか。
選択肢
ア:共通域に定義したデータを、関係するモジュールが参照する。
イ:制御パラメタを引数として渡し、モジュールの実行順序を制御する。
ウ:入出力に必要なデータ項目だけをモジュール間の引数として渡す。(正解)
エ:必要なデータを外部宣言して共有する。
🔒 解説は解答すると表示されます
モジュール結合度【午前2解説】
正解の理由
モジュール結合度は、モジュール同士がどの程度依存しているかを表します。結合度が弱いほど、モジュール間の依存が小さく、独立性が高くなります。
ウは、モジュールの処理に必要なデータ項目だけを引数として渡す方法です。受け渡す情報が必要最小限で、相手モジュールの内部状態や実行方法に依存しないため、選択肢の中で最も結合度が弱くなります。この結合をデータ結合といいます。
解法ステップ
- 情報の受け渡し方法に注目します。
- データを共有する方法と、引数で渡す方法を区別します。
- 引数で渡す場合も、制御情報を渡すのか、必要なデータだけを渡すのかを確認します。
- 必要なデータだけを渡すウが、最も依存の小さい方法だと判断します。
選択肢別の誤答解説
- ア:誤りです。 共通域に定義したデータを複数のモジュールから参照する方法です。各モジュールが共通データに依存するため、結合度は強くなります。これは共通結合に当たります。
- イ:誤りです。 制御パラメタによって相手モジュールの処理内容や実行順序を指定する方法です。データだけでなく、相手の制御にも依存します。これは制御結合です。
- ウ:正しいです。 必要なデータ項目だけを引数で渡します。モジュール間の依存が最小限で、データ結合に当たります。
- エ:誤りです。 データを外部宣言して複数のモジュールで共有する方法です。外部で共有されたデータへの依存が生じるため、必要なデータだけを引数で渡す方法より結合度が強くなります。
よくある誤解
- 「引数で渡す方法なら、どれも結合度が弱い」と考えること
引数の内容が制御パラメタなら、相手の処理方法に依存するため、データだけを渡す場合より結合度が強くなります。 - 「共通データを参照する方が、引数を渡す手間がなくて独立性も高い」と考えること
共通データを変更したときに複数のモジュールへの影響が生じるため、独立性は低くなります。 - 結合度と凝集度を混同すること
結合度はモジュール間の依存の強さ、凝集度はモジュール内部の機能のまとまりを表します。
補足コラム
結合度は、一般に弱いものから強いものへ、データ結合、スタンプ結合、制御結合、外部結合、共通結合、内容結合の順に整理されます。試験では、必要なデータだけを引数で渡す方法が弱い結合であることを押さえておきましょう。
FAQ
Q. データ結合とスタンプ結合の違いは何ですか?
A. データ結合は、必要なデータ項目だけを渡す方法です。スタンプ結合は、レコードや構造体などのまとまりを渡し、受け手がその一部だけを使う方法です。一般に、必要なデータだけを渡すデータ結合の方が弱い結合です。
A. データ結合は、必要なデータ項目だけを渡す方法です。スタンプ結合は、レコードや構造体などのまとまりを渡し、受け手がその一部だけを使う方法です。一般に、必要なデータだけを渡すデータ結合の方が弱い結合です。
Q. モジュール結合度は弱いほどよいのですか?
A. モジュールの独立性や変更のしやすさを高める観点では、不要な依存を減らし、結合度を弱くすることが望ましいです。
A. モジュールの独立性や変更のしやすさを高める観点では、不要な依存を減らし、結合度を弱くすることが望ましいです。
関連キーワード: モジュール結合度、データ結合、制御結合、共通結合、外部結合、凝集度

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

