誰かが私に良い依存性マトリックスがどのように見えるかを見せて、理由を指定できますか?
-
30-09-2019 - |
質問
DSMの使用を開始したいのですが、開始方法がわかりません。
優れた依存性マトリックスはどのように見えますか、そしてその理由は何ですか?どのように機能しますか?
解決
このブログ投稿で 努力のないコード構造パターンを特定します 依存関係構造マトリックスを使用してコード構造パターンを識別する方法について説明されています。スクリーンショットはで行われます 依存関係構造マトリックス ツールndependの。ここにいくつかのパターンがあります:
層状コード(サイクルなしのコード、DSMが一目で表示できる最もクールなもの)
依存関係サイクルを備えたコード
高い凝集 /低カップリング
空腹の発信者
人気のあるカリー
相互結合
データオブジェクト
他のヒント
エリック・デルネンブルクが最高の説明をします グラフの配置がどのように構造的な問題を明らかにするかの良い例を含む、私は見てきました。簡単に言えば:
- 他の人が言及したように、対角線の上にあるものはサイクルを示しています。これは、基本的にあなたの境界が「ファジー」であることを意味します(きれいではありません)
- コンポーネントが階層に従ってグループ化されている場合、対角線に沿った小さな正方形(まあ、下三角)==良い
- 一方、重い重い行または列==可能な問題:どちらか
- 行:他の多くのものに依存しているコンポーネント/グループがあります(多分それがあまりにも多くの機能を提供しようとしているかもしれません)、または
- 列:他の多くに依存するコンポーネント/グループがあります(たぶん、委任する代わりに、それ自体の世話をしようとしているかもしれません)
xおよびy軸のサブシステムを同じ順序でリストします。斜めに「O」をマークします。サブシステムは、それ自体に依存しません。マトリックスを垂直に下に移動します。そのサブシステムが一致する水平サブシステムに依存している場合、Xをマークします。
適切なものは、サブシステムを再配置して、優れたリファクタリングにつながる可能性のあるパターンを表示します。
しかし、私は1人が手元にありません。ごめん。
DSMの最も価値のある機能の1つは、プロジェクトやパッケージなどのサイクルを検出することです。サイクルがマトリックスの最上位に表示されます。詳細については、このページを参照してください。 http://docs.codehaus.org/display/sonar/dependency+structure+matrix