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