8

アプリケーション、サーバーなどの依存関係のマップを作成できるツールを探しています。多数のサーバーと多数のデータベースがあり、何が何に依存しているかを追跡する方法がありません。 プロジェクト内のコードやクラスの依存関係について話しているのではなく、サーバーやデータベースなどへの依存関係について話していることに注意してください。

サンプル マップを作成するために座ったとき、次のような結果になりました。

悪い地図

さて、これを紙や MS Paint で行う際の問題は、レイアウトを調整できないことです。たとえば、上記の例でノードを移動した場合、移動したばかりのノードの新しい位置に他の線とノードを調整する必要があります。

FreeMind などの「マインド マッピング」アプリケーションを調べてみたところ、制限が厳しすぎることがわかりました。たとえば、そのアプリケーションでは、自由に描画して接続するだけではなく、ノードとその関係 (子、親、兄弟) を指定する必要があります。また、何かについてコメントする能力もありませんでした。たとえば、上の画像では、マップ内の各オブジェクトにコメントを含めることができるようにしたいと考えていますが、そのオブジェクトがクリックされるまで非表示にします。このようにして、地図を混乱させることなく、関係とその歴史に関する多くのテキストを書くことができます.

最も基本的なレベルでは、四角形を描き、テキスト (および非表示のコメント) を挿入し、それらを矢印で接続し、四角形を移動して周囲を囲むことができる、非常にシンプルなアプリケーションが必要です。四角と矢印は自動的に調整されます。

4

1 に答える 1

6

この種の一般的な図を作成するための優れたツールはGraphVizです。入力を .dot ファイルとして指定します。これには、(例として) 次のような指示が含まれます。

digraph G {
    web_app -> server1
    web_app -> sql_database
    web_app -> repository
    server1 -> esx_server1
    ...
}

(上で使用した短い名前ではなく、頂点で使用する適切なラベルなど、多くのフォーマット ディレクティブがあります。)

次に、コマンド ライン ツールを実行して、グラフをイメージとしてレイアウトします。多くのレイアウト アルゴリズムがあるため、多くの場合、試行錯誤を繰り返して、グラフに最適なアルゴリズムを見つけます。

GraphViz は、多くのグラフでかなり適切なレイアウト ジョブを実行できます。しかし、それについての素晴らしいところは、テキストベースの入力です。プログラムからの入力を自動生成したり、バージョン管理に入れたりするのは簡単です。

于 2012-11-12T03:09:54.950 に答える