見出し画像

ソフトウェア設計入門:モジュール結合度とは何か?

前回、以下の記事を書きました。

結合度のメトリクスには、ソフトウェアの設計品質を評価するために使用されるさまざまな指標があります。これらのメトリクスは、モジュール間の依存関係の強さや複雑さを数値で表し、ソフトウェアの保守性や再利用性に影響を与える要因を評価するのに役立ちます。以下は、ソフトウェアの結合度を測定するためによく用いられるメトリクスのいくつかです:

  1. 結合度の数 (Number of Couplings):
    モジュール間での直接的な接続や相互作用の総数を数える方法です。これには、関数呼び出し、データの参照、イベントの利用などが含まれます。

  2. ファンイン (Fan-In):
    あるモジュールへの入力となる他のモジュールの数を測定します。ファンインが高いほど、そのモジュールは多くのモジュールに依存されており、集中的な利用がされていると評価されます。

  3. ファンアウト (Fan-Out):
    あるモジュールから他のモジュールへの出力の数を測定します。ファンアウトが高いモジュールは、多くのモジュールに依存しており、その複雑さや影響範囲が大きいことを示します。

  4. 情報流の複雑さ (Information Flow Complexity):
    ヘンリーとカファラによって提案されたこのメトリクスは、ファンインとファンアウトを掛け合わせたもので、モジュールの通信の複雑さを示します。数値が高いほど、モジュールはより多くのモジュールと強く結びついており、その複雑さが高いと考えられます。

  5. 相互結合度 (Inter-module Coupling):
    複数のモジュール間で共有されるデータの種類や量を評価します。これにより、モジュール群全体の結合の強さが測定されます。

これらのメトリクスを使用することで、ソフトウェアの設計者や開発者は、モジュール間の結合度が設計原則に適合しているかを評価し、必要に応じて設計の改善を行うことができます。低い結合度は一般に、より良いソフトウェア設計の指標とされています。

おもしろきこともなき世を面白く 議論メシ4期生http://gironmeshi.net/ メンタリストDaiGo弟子 強みほがらかさと発散思考 外資系企業でインフラエンジニア