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

モジュール結合度は受け渡し方でどう変わるか

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

過去問にチャレンジ

平成29年度秋期 午前 問48

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

  1. ア

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

  2. イ

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

  3. ウ

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

  4. エ

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

会話形式の解説

講師講師
結合度は、モジュール同士がどれだけ依存しているかで判断します。まず、モジュール間で何を受け渡しているかを見ましょう。
受験者受験者
一つのモジュールに多くの機能をまとめる方法も、結合度に関係すると思いました。
講師講師
それはモジュール内部の作り方です。この問題で比べるのは、モジュール間の結び付きです。
受験者受験者
では、必要なデータ項目だけを引数で渡す場合はどうですか。
講師講師
それはデータ結合です。選択肢にある受け渡し方の中では結合度が最も弱く、この方法が正解です。
受験者受験者
グローバルな領域を使えば、引数を渡さずに済みます。それでも結び付きは強いのですか。
講師講師
はい。複数のモジュールが同じデータを共有し、そのデータを介して互いに依存します。必要な項目だけを引数で渡す場合より結び付きが強くなります。
受験者受験者
引数を使っていても、相手の動作を指示する場合は違いますか。
講師講師
違います。それは制御結合です。呼び出し元が相手の処理の進み方に関わるため、データ結合より結合度が強くなります。
受験者受験者
引数があるかどうかだけでなく、その引数がデータなのか動作の指示なのかを確かめるのですね。
講師講師
そのとおりです。共有データを使う場合の依存にも注目し、モジュール内部の機能数とは分けて考えます。

まとめ

モジュール結合度は、モジュール間の依存の強さで判断します。必要なデータ項目だけを引数として渡すデータ結合が、この問題では最も弱い結合です。共有領域を使う方法は共有データを介して依存し、動作を指示する引数を渡す制御結合もデータ結合より強く結び付きます。一つのモジュールが持つ機能の数は、モジュール内部の作り方として分けて考えます。

解答・解説

正解はイです

この問題のテーマ

モジュール間のデータの受け渡し方から、結合度が最も弱いものを選ぶ問題です。

解き方の考え方

結合度は、モジュール同士の依存の強さに着目して判断します。必要なデータだけを引数で渡す場合と、共有領域を使ったり相手の動作を指示したりする場合を比べます。また、一つのモジュールが持つ機能の数は、モジュール間の結び付きとは分けて考えます。

選択肢ごとの解説

  1. ×ア  一つのモジュールで,できるだけ多くの機能を実現する。
    一つのモジュールで多くの機能を実現するという説明です。これはモジュール内部の作り方に関するもので、モジュール間の結合度を弱める方法にはなりません。
  2. ○イ  二つのモジュール間で必要なデータ項目だけを引数として渡す。
    二つのモジュール間で必要なデータ項目だけを引数として渡すのは、データ結合です。設問の選択肢で示された受け渡し方の中では、結合度が最も弱くなります。
  3. ×ウ  他のモジュールとデータ項目を共有するためにグローバルな領域を使用する。
    グローバルな領域を使うと、複数のモジュールが同じデータを共有します。その共有データを介して互いに依存するため、必要な項目だけを引数で渡す方法より結び付きが強くなります。
  4. ×エ  他のモジュールを呼び出すときに,呼び出したモジュールの論理を制御するための引数を渡す。
    呼び出したモジュールの動作を指定する引数を渡すのは、制御結合です。呼び出し元が相手の処理の進み方に関わるため、データ結合より結合度が強くなります。

POINT

  • 結合度を判断するときは、モジュールの内部ではなく、モジュール間の関係を見ます。
  • 引数がデータを渡すためのものか、相手の動作を指示するためのものかを区別します。
  • 共有データを使う場合は、そのデータを介した依存を考えます。

※出典:平成29年度秋期 基本情報技術者試験 午前 問48