10

DSM の使用を開始したいのですが、開始方法がわかりません。

適切な依存関係マトリックスとはどのようなもので、その理由は? それはどのように機能しますか?

4

4 に答える 4

11

このブログ記事「Identify Code Structure Patterns with No Effort」では、依存構造マトリックスを使用してコード構造パターンを識別する方法が説明されています。スクリーンショットは、ツール NDependの依存関係構造マトリックスを使用して作成されています。以下にいくつかのパターンを示します。

階層化されたコード (サイクルのないコード、確かに DSM が一目でわかる最もクールなもの)
代替テキスト

依存サイクルのあるコード
代替テキスト

高凝集・低結合
代替テキスト

ハングリーコーラー
代替テキスト

人気のある呼び出し先
代替テキスト

相互結合
代替テキスト

データ オブジェクト
代替テキスト

于 2010-09-01T13:38:48.343 に答える
3

Erik Dörnenburg は、グラフの配置によって構造上の問題がどのように明らかになるかについてのいくつかの良い例を含め、私が見た中で最も優れた説明を提供しています。簡単に言うと:

  • 他の人が述べたように、対角線より上にあるものはサイクルを示します。これは基本的に、境界が「あいまい」(きれいではない) ことを意味します。
  • コンポーネントが階層に従ってグループ化されている場合、対角線に沿った小さめの正方形 (まあ、下の三角形) == 良い
  • 一方、重く重み付けされた行または列 == 考えられる問題: どちらか
    • 行: 他の多くが依存しているコンポーネント/グループがある (おそらく、あまりにも多くの機能を提供しようとしている)、または
    • 列: 他の多くのものに依存するコンポーネント/グループがあります (委任するのではなく、すべてを自分で処理しようとしている可能性があります)。
于 2010-08-29T06:01:11.707 に答える
1

サブシステムを X 軸と Y 軸に同じ順序でリストします。斜めに「お」をマーク。それ自体に依存するサブシステムはあまり意味がありません。マトリックスを垂直に下ります。そのサブシステムが対応する水平サブシステムに依存している場合は、X をマークします。

優れたものは、サブシステムを再配置して、優れたリファクタリングにつながる可能性のあるパターンを示します。

手元に一つも無いけど。ごめん。

于 2010-08-20T23:44:29.843 に答える
1

DSM の最も重要な機能の 1 つは、プロジェクト間やパッケージ間などのサイクルを検出することです。マトリックスの右上にサイクルが表示されます。詳細については、このページを参照してください: http://docs.codehaus.org/display/SONAR/Dependency+Structure+Matrix

于 2010-08-21T09:48:05.697 に答える