モジュール結合度は何で決まる?依存関係の見分け方
基本情報技術者試験 令和元年度秋期 午前 問46 / システム開発技術 › ソフトウェア方式設計・詳細設計
過去問にチャレンジ
モジュール結合度が最も弱くなるものはどれか。
- ア
一つのモジュールで,できるだけ多くの機能を実現する。
- イ
二つのモジュール間で必要なデータ項目だけを引数として渡す。
- ウ
他のモジュールとデータ項目を共有するためにグローバルな領域を使用する。
- エ
他のモジュールを呼び出すときに,呼び出したモジュールの論理を制御するための引数を渡す。
会話形式の解説
講師結合度を比べるときは、モジュール同士が何を受け渡し、何を共有しているかに注目します。
受験者一つのモジュールに多くの機能を集めれば、結合度は弱くなるのでしょうか。
講師それはモジュール内部の構成についての記述です。モジュール間の依存が最も弱いことは示していません。
受験者では、必要なデータ項目だけを引数で渡す方法を、ほかの方法と比べればよいのですね。
講師はい。必要なデータだけを渡すのはデータ結合で、この選択肢の中では結合度が最も弱い方法です。
受験者グローバルな領域でデータを共有する方法も、データを扱う点は同じに見えます。
講師共有領域を使うと、複数のモジュールが同じデータ項目を共有します。必要なデータだけを引数で渡す方法より、依存が強くなります。
受験者呼び出し先を制御する引数は、データを渡す引数とどう違いますか。
講師その引数は相手の処理の進め方にも関わります。これは制御結合で、必要なデータだけを渡すデータ結合より結合度が強くなります。
受験者引数があるかどうかだけでなく、その役割を見るのですね。必要なデータ項目だけを渡す方法が正解だと分かりました。
講師そのとおりです。機能の数ではなくモジュール間の依存を見て、引数で処理を制御していないか、共有領域を使っていないかを確かめましょう。
まとめ
モジュール結合度は、モジュール間の依存関係で比べます。必要なデータ項目だけを引数で渡すデータ結合が、この問題では最も結合度の弱い方法です。共有領域を使う方法や、引数で呼び出し先の処理を制御する方法は、データ結合より依存が強くなります。一つのモジュールに多くの機能を集める記述は、モジュール内部の構成について述べています。
解答・解説
正解はイです
この問題のテーマ
モジュール間の依存関係を比べ、結合度が最も弱い方法を選ぶ問題です。
解き方の考え方
何をモジュール間で受け渡し、何を共有しているかを見ます。必要なデータだけを引数で渡す方法は、相手の処理を指示したり、共有領域を使ったりする方法より依存が弱くなります。
選択肢ごとの解説
- ×ア 一つのモジュールで,できるだけ多くの機能を実現する。一つのモジュールに多くの機能を集めるという記述です。モジュール内部の構成について述べており、モジュール間の結合度が最も弱いことは示していません。
- ○イ 二つのモジュール間で必要なデータ項目だけを引数として渡す。二つのモジュールの間で、必要なデータ項目だけを引数として渡しています。これはデータ結合に当たり、示された方法の中で結合度が最も弱いため、正解です。
- ×ウ 他のモジュールとデータ項目を共有するためにグローバルな領域を使用する。グローバルな領域を使うと、複数のモジュールが同じデータ項目を共有します。この共有関係は、必要なデータだけを引数で渡すイより結合度が強くなります。
- ×エ 他のモジュールを呼び出すときに,呼び出したモジュールの論理を制御するための引数を渡す。呼び出し先の処理を制御する引数を渡す方法は、制御結合です。データを渡すだけでなく相手の処理の進め方にも関わるため、イのデータ結合より結合度が強くなります。
POINT
- 結合度を比べるときは、一つのモジュールの機能数ではなく、モジュール間の依存を見ます。
- 引数の役割を確認し、必要なデータを渡しているのか、相手の処理を制御しているのかを区別します。
- 共有領域を使う記述では、引数以外にもモジュール間のつながりが生じる点を確認します。
