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 回答