什么是最好的UML图示工具?

488

我正在尝试选择一种用于创建各种类型 UML 图的工具。对我来说,易用性是一个主要标准,但如果需要更强大的功能需要付出更高学习曲线,我也很愿意接受。如果这个工具值得,那么它可以是免费的,但如果需要,我也愿意支付费用。我应该使用什么工具呢?


我认为最好用的是yUML,详见http://askuml.com。 - Rebol Tutorial
IBM Rational Modeler(http://www-01.ibm.com/software/awdtools/modeler/)有免费版本,如果您需要更多功能,可以购买企业版。我对它非常满意。 - user168237
您可以尝试使用Eclipse建模工具分发版。 它是Eclipse,而且是免费的! - amateur barista
对于基于文本的可视化模型生成,我建议使用yuml.me或plantuml。 - A T
50个回答

353

一些背景信息:最近我在研究UML工具的可用性以及独立项目中的UML理解。我也是一个模型/架构师。

之前的帖子答案太多,问题不够明确。一个常见的误解是认为UML只是创建图表。当然,图表很重要,但你实际上是在创建一个模型。以下是每个供应商产品/解决方案应该回答的问题,因为每个产品都有其擅长的方面。注意:即使其他产品支持某个特定功能或需求,下面列出的答案仍是我认为最好的。

  • 你是在建模还是画图?(画图-ArgoUML、免费实现和Visio
  • 你将来会进行建模吗?(基本建模-付费产品的社区版本)
  • 你想通过profiles或meta-models规范化你的建模吗?OCL?(Sparx、RSM、Visual Paradigm)
  • 你关心模型的可移植性,XMI支持吗?(GenMyModelSparxVisual ParadigmAltova)
  • 你是否有一组需要处理的现有文档?(取决于文档)
  • 您想要生成代码桩或完整的可运行代码吗?(GenMyModelVisual ParadigmSparxAltova
  • 您需要更成熟的流程,例如用例管理、模式创建、资产创建、RUP集成等吗?(RSA/RSM/IBM Rational 产品)
  • 详细示例:IBM Rational Software Architect 在创建 UML 配置文件时没有完全实现 UML 2.0 中的实现类型关系,但 Visual Paradigm 和 Sparx 做得很好。
    好吧,那太详细了,所以一个更简单的例子是ArgoUML,它没有代码生成功能,重点是绘图而不是 UML 的建模方面。
    SparxVisual Paradigm 做 UML 很好并且生成代码很好,但是 RSM/RSA 在项目生命周期和其他流程中的集成方面很强大。
    要注意闭源或特定产品的代码生成过程或框架,因为您可能会被困在该产品中。

    这只是一个直接的脑力倾泻,因此一些细节可能不完美,但这应该提供了一个问题和解决方案的概要地图。

    新 - 找到了一个包含许多 UML 工具描述的好列表。Wiki UML Tool List


    2
    请问您是否能够提供您的评估链接,如果可以公开的话。最近我为一位客户进行了一个简单的评估,并选择了Sparx EA(用于模型、代码生成、代码导入、绘图和可扩展性),它足够精简,即使在低配置的Mac上通过Virtual PC运行也非常流畅。 - Andy Dent
    1
    抱歉耽误了。我实际上在工具方面进行了非正式的研究。对于我的主要研究,我甚至没有使用UML工具,只是纸和笔。我一直在继续研究这些工具。它们各有其优点。例如,RSM/RSA在配置较低的Mac电脑上可能运行不太流畅,依我之见。 - Ted Johnson
    1
    @Lucas & Ted:ArgoUML具有序列图功能,还支持代码生成。(0.30) - solotim
    3
    请问建模和绘图有什么区别?或者你的意思是,建模是绘制不同类型的图表并将其连接在一起,而绘图只是绘制静态图表,如果修改了一个图表,则对其他图表没有影响,反之亦然? - Muhammad Gelbana
    3
    我看到GenMyModel是基于云的,在网络浏览器中设计模型。 我相信合作应该是这个答案中另一个相关的项目:共享、实时建模、版本管理、存储库等等。我尝试过大多数主流桌面UML工具,但是几个团队成员一起在同一个模型上工作并不容易。希望在线建模将改变许多IT人员在日常开发项目中评估和使用(UML)建模的方式。我很乐意了解更多关于在线建模的内容,有没有人知道它是否是一个持续的趋势? - Georges
    显示剩余5条评论

    99

    如果只是需要绘制序列图,可以尝试使用websequencediagrams.com。这是一款免费的产品(基本功能免费,高级功能付费),它可以让你快速地绘制出一个图示,而不需要费心地去画线和模板。

    Alice->Bob: 认证请求
    note left of Bob: Bob思考一下
    Bob->Alice: 认证响应
    


    6
    这很有趣,但我不确定它基于网络的价值所在——将它放在你的个人电脑上并保存文件等似乎更好,而且拖放界面肯定比需要编写脚本更容易上手。 - Vidar
    70
    为什么这个回答评分这么高,它并没有回答问题?哦,好吧,我同意这是一个很棒的网站。问题的第一行说“创造各种口味的UML图表”。我本想给它投反对票,但我太软弱了,所以我只会发表评论。 - Ted Johnson
    2
    +1。我也来分享一下,意识到它并没有完全回答问题。当序列图与UML的其余部分并置时,它们似乎总是有些尴尬/不协调,但它们仍然是UML的一部分。在我看来,序列图是UML中最具即时价值的部分。 - Justin Searls
    22
    你如何告诉别人,“不,你的另一个左边。”? - Matt Brunell
    7
    一位匿名用户建议您可以使用PlantUML,这是一个免费的Java/Graphviz工具,可以通过文本生成UML图。很可能这个网站幕后就是使用这个工具。 - Cody Gray
    显示剩余3条评论

    46

    对于我来说,Sparx Systems的Enterprise Architect是一个非常全面的UML工具,价格也非常合理。

    其功能列表非常强大,包括:集成项目管理、base-lining、导入/导出(包括导出到HTML)、从模型生成文档、各种模板(Zachman、TOGAF等)、IDE插件、代码生成(可用于Visual Studio、Eclipse和其他IDE插件)、自动化API等等。

    哦对了,不要忘记它直接支持源代码控制(SVN、CVS、TFS和SCC)。

    我还建议不要使用Visio - 它只提供图表而不是模型。在UML建模工具中的一个地方重命名一个类,你会在所有地方都进行重命名操作。但是在Visio中不是这样的!


    在尝试了十几个UML工具之后,我最终选择了Sparx的EA。虽然我只使用了它5-10%的功能... :-) - Yarik
    1
    是我自己的问题还是EA的布局管理对于UML类很糟糕?难以调整大小并只显示我想要的内容。使用默认布局会将类放置在各个位置。该工具看起来很棒,但布局确实让我感到困扰。 - Mark
    1
    我使用 Visio 进行物理数据库建模(虽然它不是该任务的最佳选择),但它并非如此。如果我重命名一个表,则其名称将在所有图表中替换(当然是在同一 VSD 内)。顺带一提,我使用 Sparx 进行 UML 建模。 - Lluis Martinez

    45

    为了我的简单而短暂的UML工作,我使用了这个工具:

    StarUML - http://staruml.sourceforge.net/en/

    非常棒的免费UML绘图软件。


    虽然原版Star UML已经不再维护,但现在有一个叫做White Star UML的分支,正在积极开发中。


    4
    很不幸,看起来它只支持Windows系统。对于选择团队工具时,跨平台是我的首要要求之一。 - Adam Byrtek
    4
    很不幸,这个项目似乎已经停止了。要了解更多详情,请查看Source Forge上的最新讨论:http://sourceforge.net/forum/forum.php?thread_id=1879127&forum_id=510442 - Piotr Czapla
    3
    有人捡起了它:http://sourceforge.net/projects/whitestaruml/ - fehrlich
    StarUML无法使用。在WinXP上启动时会崩溃。 - robson3.14
    我已经使用这个工具好几年了,很高兴有人接手并不断发布新版本。太棒了!+1 - solotim
    显示剩余3条评论

    31

    由于我通常更把UML作为一种沟通工具而非建模工具,因此有时需要对这种语言进行一些调整,这使得严格的建模工具变得不易掌握。此外,这些工具往往存在大量的开销,仅用于偶尔的绘图。这也意味着我不会给能够处理往返建模的工具任何额外的加分。基于这一点...

    使用Visio时,我倾向于使用这些画板来满足我的UML需求(内置的那种不太好用)。可能是因为它是我当前工作任务中的主要绘图工具,所以我已经习惯了它。

    OmniGraffle也内置了一些UML画板,并且在Graffletopia上提供了更多选择,但我不建议将其作为绘图工具,因为它有太多古怪之处(虽然这些特性对许多事情都很有帮助,但对UML不适用)。但是,它提供了免费试用版,所以可以尝试一下... :)

    我曾经尝试使用MagicDraw,虽然它功能齐全,但我发现其用户界面会让人分心。

    另外,我认为Topcased是一个有趣的项目(或者说由多个项目组成的集合)。上次我使用它时还存在一些漏洞,但它能够工作,并且似乎自那时以来已经得到了良好的发展。它在任何启用Eclipse的平台上都表现出色。它是属于自由软件和免费的 :)

    关于绘图工具Dia,它的界面和所绘制的图形都相当丑陋,但确实能够完成任务。一个有趣的建模工具免费替代品是Umbrello,但我没有真正地使用过它。
    我非常赞同mashi的观点,白板加数字相机或手机非常棒。
    我使用过的一些最好的工具可能属于Rational工具系列。

    2
    +1 for Dia - 它是一个不错的小工具,对于流程图来说绝对非常好用。然而,Umbrello 经常会崩溃(再加上 Qt 本身就是一堆垃圾)。 - new123456

    24

    你可能正在寻找一个自动化工具,可以自动生成很多东西。但是这里有一个免费的、通常功能强大的图表工具,不仅适用于UML,还适用于各种类型的图表任务。它接受各种常用文件格式作为输入和输出。它被称为yEd,它值得一试


    3
    布局看起来很棒,速度快,似乎可以在5分钟内使用。一个很棒的功能是你可以选择如何布置图表:分层、有机、UML风格、圆形或树状结构。它能在眨眼间完成。到目前为止,我对Java编写的软件持有一些保留意见,但这个改变了我的看法 :) - J Pollack

    21

    Visual Paradigm for UML http://content.usa.visual-paradigm.com/websiteimages/images/products/vpuml60/vpumltitle.gif

    我非常喜欢Visual Paradigm for UML,它功能强大,有免费的社区版和便宜的个人版

    Agilian http://content.usa.visual-paradigm.com/websiteimages/images/products/ag10/agtitle.gif

    对于敏捷建模,还有Agilian。它更加灵活,增加了额外的功能来支持智能白板和思维导图。

    我最喜欢他们产品的灵活性。我现在在工作中使用Enterprise Architect,但我认为它不够智能。我想要能够快速地进行一些顺序图头脑风暴,并让应用程序在后台保持我的模型最新,这是VPUML非常擅长的。

    在我看来,它比Enterprise Architect要好得多,尽管后者也是一个很棒的工具 :)


    1
    我使用过大多数主要的UML工具(其中大部分都非常深入)(Rational Rose、Tau、Rhapsody、Enterprise Architect、Visio等等),偶然间发现了Visual Paradigm,这是我从未听说过的。它完胜其他所有工具。它有一些小问题,但与其他工具相比并不那么烦人,并且非常强大。 - Dunk
    2
    绝对是Visual Paradigm。我已经使用它有一段时间了,最近也评估了其他UML建模工具(免费和商业的),在可用性和清晰的UI结构方面,Visual Paradigm是最好的。此外,所有的图表似乎都完全符合标准(不幸的是,并非所有建模工具都是如此)。我可以说,因为我最近也通过了UML、MOF、XMI标准的工作。VP是我绝对最喜欢的。 - Kissaki

    19

    看看BOUML:多平台(QT),运行良好,支持协作工作。

    BOUML是一个免费的UML 2工具箱(正在开发中),允许您在C ++,Java,Idl,Php和Python中指定和生成代码。

    BOUML在Unix / Linux / Solaris,MacOS X(Power PC和Intel)和Windows下运行。

    来自Wikipedia

    版本4.23之前的发布是根据GPL许可的自由软件。 BOUML 5及更高版本是专有软件。


    @Silvia 推荐 BOUML 真是太棒了,值得一试。可惜的是开发者已经停止了对它的开发。与其他看起来像玩具且不完整的工具不同,BOUML 实际上能够读取多种语言的现有代码(反向工程),并且还可以从 Rational(IBM)Rose 和其他 UML 工具中导入。他停止开发这个工具是我们的损失。 - WinWin
    事实上,开发已经停止了他的自由形式,主要开发者现在使用收费许可证来保持工具更新。 - kikeenrique
    事实上,目前正在开发最后一个开源版本的分支。虽然它还不完美,但某些功能正在工作且比原始版本更好。请搜索“Douml”。 - Zeks
    此外,我非常希望在开发方面得到一些帮助,因为有很多需要修复/完成的工作,而只有一个人 :( 目前该项目完全兼容Qt4,但由于移植错误,不是所有插件都能正常工作,这些错误有点难以排除,因为我不是原始开发者。 - Zeks

    18

    如果你想要立刻开始使用UML而不必学习一个复杂的新工具,我建议你尝试 Violet UML。我以前用过,效果非常好。


    截图:http://img516.imageshack.us/img516/2069/violeti.jpg。在我看来,这是迄今为止最好的免费UML工具。 - Chris S
    哇,刚试了一下,真棒。我愿望清单上唯一的事情是能够重定向箭头。例如,给它们一个可拖动的中间点。 - sixtyfootersdude

    17

    PlantUML是一款Java语言的开源标记语言到UML图表工具,值得在这里提及。它在可用性方面排名很高,因为它对各种图表和图表组件的直观语法。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接