マナビング基本情報技術者

モジュール結合度は何で決まる?依存関係の見分け方

基本情報技術者試験 令和元年度秋期 午前 問46 / システム開発技術 › ソフトウェア方式設計・詳細設計

過去問にチャレンジ

令和元年度秋期 午前 問46

モジュール結合度が最も弱くなるものはどれか。

  1. ア

    一つのモジュールで,できるだけ多くの機能を実現する。

  2. イ

    二つのモジュール間で必要なデータ項目だけを引数として渡す。

  3. ウ

    他のモジュールとデータ項目を共有するためにグローバルな領域を使用する。

  4. エ

    他のモジュールを呼び出すときに,呼び出したモジュールの論理を制御するための引数を渡す。

会話形式の解説

講師講師
結合度を比べるときは、モジュール同士が何を受け渡し、何を共有しているかに注目します。
受験者受験者
一つのモジュールに多くの機能を集めれば、結合度は弱くなるのでしょうか。
講師講師
それはモジュール内部の構成についての記述です。モジュール間の依存が最も弱いことは示していません。
受験者受験者
では、必要なデータ項目だけを引数で渡す方法を、ほかの方法と比べればよいのですね。
講師講師
はい。必要なデータだけを渡すのはデータ結合で、この選択肢の中では結合度が最も弱い方法です。
受験者受験者
グローバルな領域でデータを共有する方法も、データを扱う点は同じに見えます。
講師講師
共有領域を使うと、複数のモジュールが同じデータ項目を共有します。必要なデータだけを引数で渡す方法より、依存が強くなります。
受験者受験者
呼び出し先を制御する引数は、データを渡す引数とどう違いますか。
講師講師
その引数は相手の処理の進め方にも関わります。これは制御結合で、必要なデータだけを渡すデータ結合より結合度が強くなります。
受験者受験者
引数があるかどうかだけでなく、その役割を見るのですね。必要なデータ項目だけを渡す方法が正解だと分かりました。
講師講師
そのとおりです。機能の数ではなくモジュール間の依存を見て、引数で処理を制御していないか、共有領域を使っていないかを確かめましょう。

まとめ

モジュール結合度は、モジュール間の依存関係で比べます。必要なデータ項目だけを引数で渡すデータ結合が、この問題では最も結合度の弱い方法です。共有領域を使う方法や、引数で呼び出し先の処理を制御する方法は、データ結合より依存が強くなります。一つのモジュールに多くの機能を集める記述は、モジュール内部の構成について述べています。

解答・解説

正解はイです

この問題のテーマ

モジュール間の依存関係を比べ、結合度が最も弱い方法を選ぶ問題です。

解き方の考え方

何をモジュール間で受け渡し、何を共有しているかを見ます。必要なデータだけを引数で渡す方法は、相手の処理を指示したり、共有領域を使ったりする方法より依存が弱くなります。

選択肢ごとの解説

  1. ×ア  一つのモジュールで,できるだけ多くの機能を実現する。
    一つのモジュールに多くの機能を集めるという記述です。モジュール内部の構成について述べており、モジュール間の結合度が最も弱いことは示していません。
  2. ○イ  二つのモジュール間で必要なデータ項目だけを引数として渡す。
    二つのモジュールの間で、必要なデータ項目だけを引数として渡しています。これはデータ結合に当たり、示された方法の中で結合度が最も弱いため、正解です。
  3. ×ウ  他のモジュールとデータ項目を共有するためにグローバルな領域を使用する。
    グローバルな領域を使うと、複数のモジュールが同じデータ項目を共有します。この共有関係は、必要なデータだけを引数で渡すイより結合度が強くなります。
  4. ×エ  他のモジュールを呼び出すときに,呼び出したモジュールの論理を制御するための引数を渡す。
    呼び出し先の処理を制御する引数を渡す方法は、制御結合です。データを渡すだけでなく相手の処理の進め方にも関わるため、イのデータ結合より結合度が強くなります。

POINT

  • 結合度を比べるときは、一つのモジュールの機能数ではなく、モジュール間の依存を見ます。
  • 引数の役割を確認し、必要なデータを渡しているのか、相手の処理を制御しているのかを区別します。
  • 共有領域を使う記述では、引数以外にもモジュール間のつながりが生じる点を確認します。

※出典:令和元年度秋期 基本情報技術者試験 午前 問46