依存関係構造マトリックス
多数の依存関係を持つ複雑なプロジェクトに取り組むことで、どこで問題を探すのかを理解することが難しくなります。 アプリケーションのパフォーマンスや動作に重大な影響を及ぼす可能性のある複雑な関係や周期的な依存関係が発生する可能性があります。 これが DSM が役立つところです。
DSM は 依存関係構造マトリックス の略で、プロジェクトの各部分(モジュール、クラスなど)間の依存関係を視覚化し、情報フローを強調するのに役立つメソッドです。
DSM 分析を使用して、変更がプロジェクトに与える影響を確認することができます。 例: クラスの 1 つを変更する必要がある場合は、すべての依存関係を特定し、この変更がどのようにプロジェクト全体に伝播するかを確認できます。
Dependency Structure Matrix プラグインのインストール
この機能は、インストールして有効化する必要がある Dependency Structure Matrix プラグインに依存しています。
Ctrl+Alt+S を押して設定を開き、 を選択します。
Marketplace タブを開き、 Dependency Structure Matrixプラグインを見つけて、 インストール をクリックします(プロンプトが表示された場合は、IDE を再起動してください)。
依存関係マトリックスの構築
メインメニューで へ移動します。
または、 プロジェクト ツールウィンドウでアイテムを右クリックし、 依存関係マトリックスの解析 を選択します。
表示されるダイアログで、分析するスコープを選択し、 分析 をクリックします。
プロジェクトのクラスファイルが古くなっていると、解析によって不完全なデータや不正なデータが作成される可能性があります。 これを避けるため、IntelliJ IDEA は DSM 解析を続行する前にプロジェクトをコンパイルするように指示します。
DSM ツールウィンドウが開き、依存関係を調べることができます。 ツールウィンドウのセルをクリックすると、詳細を表示できます。

DSM ツールウィンドウは依存関係を特別な方法でソートします。最も使用されるクラスは一番下に移動されます。
マトリックスでは、すべての依存関係が常に緑から黄へ流れます。行を選択すると、緑のアノテーションが依存しているコンポーネントを、黄のアノテーションが選択中のコンポーネントが依存しているコンポーネントを示します。相互依存関係は赤で表示されます。さまざまな色の濃淡は依存関係の数に対応します。依存関係が多いほど、そのセルの色が濃くなります。 相互依存関係は赤で表示されます。 依存関係の数にはさまざまな色合いが対応しています。 依存関係が多いほど、そのセルの色が濃くなります。
依存関係を調べる
選択した依存関係のみを表示するように表示を制限することができます。 限界範囲 オプションとは異なり、選択された依存関係を生成するクラスのみが残されます。
メインメニューで に移動し、必要な依存関係を右クリックして 依存関係の探索 を選択します。
これらの依存関係を生成するクラスは、DSM ツールウィンドウの新しいタブで開きます。
DSM ツールウィンドウは、 マトリックスを構築した後にのみ使用可能になることに注意してください。
依存関係の使用箇所を検索
選択した依存関係を開いて、さらにソースコード分析を行うことができます。
メインメニューで に移動し、必要な依存関係を右クリックして 依存関係の使用箇所を検索 を選択します。
DSM ツールウィンドウは、 マトリックスを構築した後にのみ使用可能になることに注意してください。
DSM スコープを制限する
DSM の範囲を選択した行に制限することができます。 これらのみが新しい行列に残ります。
保持する行を選択し、コンテキストメニューから スコープを選択範囲に限定 を選択します。
限定された範囲は、DSM ツールウィンドウの新しいタブで開かれます。
DSM ツールウィンドウ
DSM ツールウィンドウは、 マトリックスを構築した後にのみ使用可能になることに注意してください。
ここでは、典型的なマトリックス表示を見ることができます。

行ヘッダーはプログラム構造を表します。 現在はすべてが折りたたまれており、モジュールのみが表示されています。 展開するとヘッダーがツリー状になり、モジュールを展開してプログラムパッケージを詳しく調べることができます。 * — ノードはパッケージ内のクラスをグループ化します。 列ヘッダーは、対応する行ヘッダーと同じです。 スペースを節約するためにこれらは示されていません。 代わりに、行ヘッダーにはさまざまな視覚補助が使用されます。
行を選択すると、行列は次のようになります。

ここでは次のことを学ぶことができます:
選択された行と対応する列がハイライトされ、行の依存関係が視覚化されます。
セル内の省略記号は、
maven-coreモジュールがmaven-projectモジュールに多くの(99 以上の)依存関係を持つことを意味します。列には、選択した行の の 依存関係が表示されます。
行には、選択した行への依存関係が オン 表示されます。
つまり、
maven-projectモジュールはmaven-settingsモジュールに 16 個の依存関係があります。依存関係の数にはさまざまな色合いが対応しています。

カラーアノテーションは、行の依存関係を一目で視覚化できます。
maven-coreはmaven-projectに依存します。maven-projectはmaven-profileに依存します。対角線のダッシュは、示されていない自己依存性に対応します。
任意のセルを選択して、そこに示されている依存関係を調べることができます。

セル #1 が選択されました。 これらの色のアノテーションは、 maven-project が オン と maven-settings に対して 16 の依存関係を持つことを意味します。 対称セル(セル #2)は、他の方向(この場合はゼロ)に依存関係を示します。
単純なニーモニックルールがあります。すべての依存関係は常に緑から黄色に 流れます。
DSM ツールウィンドウは依存関係を特別な方法でソートします。最も 使用する クラスは一番下に移動されます。 構造 が良い プロジェクト では、マトリックスの左下半分に三角形ができます。
循環

相互依存関係は赤で表示されます。 これは、プラグインとユーザビリティパッケージが互いに依存していることを意味します。