pulpul 日本の試験

エンベデッドシステムスペシャリスト 概念書 · システム開発・アーキテクチャ

モジュールの結合度とクラス関係

モジュール設計では、モジュール間の依存の強さを表す結合度と、モジュール内部の機能のまとまりの強さを表す強度(結束性)を評価することが基本となる。結合度は低く、強度は高いほど独立性の高い設計となる。オブジェクト指向では、クラス間の関係として汎化、集約、関連などを区別する。本単元では、構造化設計とオブジェクト指向の双方の観点から、適切な設計を判断する基準を整理する。

結合度:データの受渡し方法

結合度は、モジュール間の依存の強さを表す尺度であり、低いほどモジュールの独立性が高い。受渡し方法の中で結合度が最も低いのは、必要な単一のデータ項目だけを引数で受け渡す方式である。 入出力に必要なデータ項目だけをモジュール間の引数として渡す方式は、共有領域や制御情報に依存しないため、選択肢の中で結合度が最も低いと判断される。 大域的なデータを介して値を共有する方式は、共有データの定義や内容に依存するため、共通結合となり結合度が高くなる。 制御パラメータで相手モジュールの処理内容や実行順序を指定する方式は、呼び出し側が相手の動作を制御するため、単なるデータの受渡しより結合度が高くなる。 データ構造全体を引数で渡す方式は、受け手が必要とする項目以外も含む構造全体に依存するため、単一項目だけを渡す方式より結合度が高くなる。

強度(結束性):モジュール内の結び付き

強度(結束性)は、一つのモジュールの内部の機能がどれだけ一つの目的にまとまっているかを表す尺度であり、強いほど望ましい。データとそのデータを扱う機能を一体化し、内部表現を外部から隠す設計は、情報隠蔽や抽象データ型に相当する強い結束性を持つ。 一方、同じ時点で行う処理を一つにまとめた時間的な結び付きや、引数の値によって異なる処理を選ぶ論理的な結び付きは、目的のまとまりが弱い。 Aの計算結果をBが使うという処理の流れでまとめる逐次的な結び付きも、データと操作を隠蔽してまとめる設計より弱いとされる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む