Uml 文件用图形

Uml 文件用图形,uml,doxygen,documentation-generation,graphviz,Uml,Doxygen,Documentation Generation,Graphviz,我注意到doxygen使用graphviz库创建图表。您是否曾经使用graphviz生成文档?出于doxygen范围之外的文档目的,是否值得学习graphviz?还是我最好还是坚持使用Visio这样的标准数据建模包 我理解它作为图形库的优点,但是对于试图表示更复杂的UML(或类似的UML)来说,它仍然值得研究吗?graphviz是一种非常简单的创建图形的语言/格式。如果这些功能对您来说足够,我建议您使用它(它非常简单,我估计最多需要1个小时的学习时间)。是的,graphviz很容易从程序中学习和

我注意到doxygen使用graphviz库创建图表。您是否曾经使用graphviz生成文档?出于doxygen范围之外的文档目的,是否值得学习graphviz?还是我最好还是坚持使用Visio这样的标准数据建模包


我理解它作为图形库的优点,但是对于试图表示更复杂的UML(或类似的UML)来说,它仍然值得研究吗?

graphviz是一种非常简单的创建图形的语言/格式。如果这些功能对您来说足够,我建议您使用它(它非常简单,我估计最多需要1个小时的学习时间)。

是的,graphviz很容易从程序中学习和使用


还要看看哪一个是处理图形的好工具。与Visio不同,它将加载和保存各种格式,这些格式易于手动编辑或通过编程生成。自动布局的东西也很不错。

我偶尔用它来说明状态机。graphviz非常适合这一点。

graphviz不会像Visio那样为您提供流畅的图形界面。然而,它将生成布局良好的图形。我发现它在通过程序自动生成图形时(如doxygen的情况)最有用。

Graphviz在通过编程方式生成依赖关系图(通过点)时最有用。使用它来可视化现场访问;使用它可视化map reduce作业的执行计划

我广泛使用GraphViz进行文档编制,通常在外部使用GraphViz绘制关系图或架构图,然后使用@dot/@enddot将它们添加到我的Doxygen代码的额外页面中。我最近也开始使用@dotfile,它有两个好处,一是避免代码文档中出现大的点语句,二是允许我继续使用GraphViz GUI预览它们

GraphViz的另一大好处是,简单的文本格式可以很好地与版本控制配合使用。您可以在git diff中看到对图表的更改,这对于任何二进制文档格式都是不可能的。随着这些年来我越来越多地使用它,这对我来说越来越重要了


然而,对于UML,我使用了一个真正的UML工具(),而不是在Visio中塞满东西。

同意这里的共识;我从Graphviz中获得了很多价值。它非常适合创建简单的、但不是那么简单的图表。软件开发人员倾向于吸引图形,不仅在源代码中,在其他地方也是如此

例如,现在在另一个浏览器窗口中,我使用graphviz图(使用BTW显示)说明了我们组的分支和合并策略


Graphviz也适用于UML。看见这也是对Graphviz的一个很好的介绍。

如果您只是在谈论如何像Doxygen那样创建继承/协作图,那么值得研究自动为您创建继承/协作图的IDE。对于从头开始或手动调整的文档,我使用(因为我在Mac上),这是我极力推荐的

然而,它确实非常方便,不仅对于文档,而且对于调试和代码理解,尤其是对于数据结构。我通常不手工写点,但自动生成的点非常值得付出最小的努力

我发现GraphViz非常有用的地方之一是理解和调试二叉搜索树算法。我开发了一个开源的Objective-C框架,其中包括多种BST。我在父类上实现了两种方法:
-(NSString*)dotGraphString
,在每个子类上实现了
-(NSString*)dotGraphStringForNode:
。在大约30-40行代码中(大部分位于
CHAbstractBinarySearchTree.m
的底部),我添加了迭代遍历二叉树并创建其点表示的功能,包括平衡信息、将节点着色为红色或黑色等。(只要稍加注意,您就可以轻松地表示空sentinel节点并以适当的排序顺序显示树。)


在我的测试代码中,在每次修改树之后,我调用-
dotGraphString
并将结果保存到.dot文件中,在那里用断点停止,然后用GraphViz打开该文件,GraphViz足够智能,可以在文件更新时重新渲染点图。这种方法使查看树中发生的情况变得非常容易在我对给定算法的实现中发现错误。这种方法可以很容易地适应各种数据结构,通常比创建一个仅用于可视化结构的UI要快得多,也容易得多。

我们使用graphviz自动生成对象图,作为UML验证工具的反馈。我们是我们对结果非常满意,因为我们能够提供一个图形化的结果,而不必担心布局。

FYI Microsoft Visio附加到带有Graphviz的布局图:

我尝试过Graphviz好几次,但发现它非常有限

我发现最适合手动文本输入图表的是 我用它来

如果Graphviz输出满足您的特定需求,那么它可能是好的。 如果你对它的工作不太满意,并且有一些TeX的经验- 看看Tikz,有很多不同的软件包,你不知道吗
需要学习纯Tikz/PGF(可能看起来很重)。

对于真正喜欢Visio的人,可以使用Graphviz以SVG格式(-Tsvg)输出然后将其读入Visio。然后可以对其进行编辑以获得所需的布局。节省了大量繁重的工作。我同意。我不知道文档的用途,但我能够在半小时内以编程方式生成有用的图形。我的印象是,一个小时对于基础来说可能是合理的。非常糟糕的文档,缺乏完整的文档仅举几个例子……我不认为你真的只需要一个小时。我现在花了一整天的时间来完成一些简单的UML工作。正确的工具