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

时间:2008-08-18 23:29:18

标签: uml diagram modeling

我正在尝试选择一种工具来创建各种风格的UML图表。可用性对我来说是一个主要标准,但我仍然会以更陡峭的学习曲线获得更大的力量并且感到高兴。免费(如在啤酒中)会很好,但如果该工具值得,我愿意付钱。我该怎么用?

50 个答案:

答案 0 :(得分:354)

一些背景:最近在研究生院,我研究了UML工具的可用性和UML理解,一般用于独立项目。我也以模特/建筑师为生。

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

  • 你在建模还是画画? (绘图 - ArgoUML,免费实施和Visio))
  • 您将来会成型吗? (基本建模 - 付费产品的社区版本)
  • 您想通过个人资料或元模型正式建模吗? OCL? (Sparx,RSM,Visual Paradigm
  • 您是否关注模型可移植性,XMI支持? (GenMyModelSparxVisual ParadigmAltova
  • 您是否拥有需要使用的现有文档集? (取决于文件)
  • 您是否要生成代码存根或功能完整的代码?(GenMyModelVisual ParadigmSparxAltova
  • 您是否需要更成熟的流程,例如用例管理,模式创建,资产创建,RUP集成等? (RSA / RSM / IBM Rational Products)

详细示例:在创建UML配置文件时,IBM Rational Software Architect在实现类型关系方面没有实现UML 2.0,但Visual Paradigm和Sparx做得对。
好吧,这太详细了,所以一个更简单的例子是ArgoUML,它没有代码生成功能,而且专注于绘制UML的建模方面。
SparxVisual Paradigm非常好地运行UML并很好地生成代码,但是,挂钩到项目生命周期和其他进程是RSM / RSA强大的地方。
注意关闭或特定于产品的代码生成过程或框架,因为最终可能会遇到该产品。

这是一个直接的脑转储,所以一些细节可能并不完美,但是,这应该提供一个问题和解决方案的一般地图。

新 - 找到许多带有描述的UML工具的清单。 Wiki UML Tool List

答案 1 :(得分:100)

仅对于序列图,请尝试websequencediagrams.com。它是一个免费增值(免费用于基本任务,为高级功能付费)产品,让您快速敲出图表,而不用任何线条和模板。

Alice->Bob: Authentication Request
note left of Bob: Bob thinks about it
Bob->Alice: Authentication Response

答案 2 :(得分:46)

对我而言,它是Sparx Systems的Enterprise Architect。一个非常圆润的UML工具,价格非常合理。

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

哦,是的,不要忘记直接从工具内部(SVN,CVS,TFS和SCC)支持源控制。

我也会远离Visio - 你只获得图表,而不是模型。在UML建模工具中在一个位置重命名一个类,并在所有位置重命名。这是在Visio中的情况!

答案 3 :(得分:45)

对于我的简单&简短的UML工作, 我用过这个工具:

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

用于UML绘图的优秀自由软件。


虽然不再维护原始的Star UML,但现在有一个名为White Star UML的分支,它正在积极开发中。

答案 4 :(得分:31)

由于我通常使用UML作为通信工具而不是建模工具,我有时需要稍微弯曲语言,这使得严格的建模工具非常难以处理。而且,偶尔绘制它们往往会有很大的开销。这也意味着我不会提供能够很好地处理往返建模的工具。考虑到这一点......

使用Visio时,我倾向于使用these模板来满足我的UML需求(内置的类型)。可能是我已经习惯了它,因为它是我当前任务的主要图表工具。

OmniGraffle内置了一些UML模板,Graffletopia还提供了更多模板,但我不建议将其作为图表工具,因为它有太多的怪癖(怪癖对许多人来说都很好)事情,但不是UML)。虽然免费试用,所以一定......:)

我一直在尝试MagicDraw,但在功能上,我发现用户界面分散了注意力。

否则我发现Topcased是一个有趣的项目(或项目组)。最后我使用它它仍然有一些错误,但它工作,似乎从那以后很好地发展。适用于任何支持Eclipse的平台。在演讲和啤酒中免费:)

至于图表工具Dia,它非常难看(界面和结果图纸),但它确实完成了工作。一个有趣的建模工具免费替代是Umbrello,但我还没有真正使用它。

我绝对同意mashi白板很棒(连同数码相机或手机)。

我使用的一些最好的工具可能属于Rational系列工具。

答案 5 :(得分:24)

您可能正在寻找能够自动为您生成大量内容的自动化工具。但这是一个免费的,通常功能强大的图表工具,不仅适用于UML,也适用于各种图表任务。它接受各种常用文件格式的输入和输出。它被称为yEd,它是worth a look

答案 6 :(得分:21)

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

我非常喜欢Visual Paradigm for UML它非常强大,并且还有免费的Community Edition和便宜Personal Edition

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

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

我最喜欢他们产品的是灵活性。我现在正在使用Enterprise Architect,但我认为它不够聪明。我希望能够快速集体讨论一些序列图,让应用程序让我的模型在后台保持最新状态,VPUML在这方面做得非常好。

在我看来,它比Enterprise Architect更好,虽然这也是一个很好的工具:)

答案 7 :(得分: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及更高版本是专有软件。

答案 8 :(得分:18)

如果您想要开始使用UML而无需学习复杂的新工具,我会查看Violet UML。我过去曾用它取得了相当大的成功。

答案 9 :(得分:17)

PlantUML是Java中的开源标记语言到UML图工具,值得在此处提及。由于其对各种图表和图表组件的直观语法,它在可用性规模上排名很高。

答案 10 :(得分:14)

Dia是一种可能的选择。它绝对不是最好的工具,但功能齐全。

答案 11 :(得分:13)

来自Sparx系统的Enterprise Architect是我使用过的最好的工具。售价199美元(专业版)有点贵,但IMO值得。

答案 12 :(得分:13)

我将添加UMLet,我尚未尝试过,但已在我的办公室选择开始制作图表。
看起来很简单,图表并不性感,但就您可以做的图表而言,它似乎相当完整。似乎也具有良好的导出功能(重要!),灵活可以支持自定义组件)并且可以用作Eclipse插件。

答案 13 :(得分:11)

Astah UML(前JUDE)非常好。

答案 14 :(得分:10)

我无法找到一流的免费UML图表工具,但如果您对纯图表感兴趣,而不是往返工程,我会选择Microsoft Visio。如果您想要完整的往返工程,Rational Rose。

维基百科上的这个list of UML tools也可以派上用场。

答案 15 :(得分:10)

你应该尝试Creately。在浏览器中运行,可以进行团队协作。

支持序列图,类,ER,用例等。效果很好,并且有免费版本。

Creately.com

答案 16 :(得分:10)

笔和纸。如果您可以将扫描转换为矢量格式,那么在进行细微修改时可能会有用。

答案 17 :(得分:9)

您还可以查看Lucid Chart以了解uml和其他类型的图表。

答案 18 :(得分:8)

不要忘记yuml.me,我喜欢它。

答案 19 :(得分:4)

我喜欢此线程中之前提到的VisualParadigm。它功能强大且易于使用我认为与其他工具相比,它具有最强大的功能。

如果你需要简单,快捷,简单(免费)的东西,有一个很棒的工具叫UMLet - 我强烈推荐这个。我已经尝试了许多UML图表工具,这是最简单的(并且它仍然允许做出很好的图表)。这是我的选择:)

答案 20 :(得分:4)

答案 21 :(得分:4)

在我的练习中,我使用Sequence Diagram Editor。它是非常快速和有用的工具。我不喜欢的一件事是它是商业产品,而不是免费的。

答案 22 :(得分:3)

my opinion StarUML 是最好的。

答案 23 :(得分:3)

显然,如果你认真对待UML,你需要使用像其他答案中建议的软件UML工具,但我发现白板是UML图表的最佳工具之一,尤其是在设计阶段,或者在探索不同的替代方案时。在我的脑海中,没有什么能比速度/灵活性更好的白板了。假设您在物理上并置,它们也非常适合协作。

答案 24 :(得分:3)

我最近进行了一项民意调查“What UML Tools do you use?”在我的博客中。 NetBeans UML是最佳的开源选择,而Enterprise Architect是最重要的商业选择。

答案 25 :(得分:3)

我无法相信没有人提到过NetBeans UML编辑器,它非常棒并且满足了我所有基于Java的UML要求。

在我测试了JDeveloper UML,ArgoUML和StarUML之后。

答案 26 :(得分:3)

您可以在Visual Studio 2010 Ultimate中创建UML类,序列,组件,用例和活动图。您可以将这些图表链接到Team Foundation工作项,以便计划和跟踪开发和测试工作。您还可以从代码创建序列,依赖关系图和层图,并使用Architecture Explorer浏览和探索您的解决方案。

我在my profile上发布了更多信息以获取更多信息。

答案 27 :(得分:2)

您可能需要查看MagicDrawVisual Paradigm for UML。两者都提供社区版本,当然,这些版本不会涵盖整个功能范围,但如果您只想创建图表而不生成代码或进行完整的往返工程,则可能就足够了。

答案 28 :(得分:2)

Rational和Together / J是最好的产品,但价格昂贵。

根据我的经验,我很喜欢Eclipse Omondo和Sparx Enterprise Architect。 Omondo很好地与Eclipse集成以生成代码,并且具有非常直观的感觉。但是,它与Java密切相关。 Sparx是一个很好的价格工具,但缺乏全系列的UML 2.0图表。

不要打扰波塞冬。所有意图和目的都是错误的,臃肿的和不可用的。

答案 29 :(得分:2)

对于序列图,您还可以尝试Trace Modeler。它不是免费的,但它有一个很棒的界面,非常友好和高效。您可以在任何平台上使用它。

答案 30 :(得分:1)

您应该尝试Modelio Free Edition。 它支持UML2,BPMN,SOA和XMI。它使用简单,论坛非常活跃。

答案 31 :(得分:1)

自1999年以来,我一直在研究UML标准,并且可能会告诉您Sparx Enterprise Architect不应被视为UML工具,因为它不遵循UML 2规范。它的图表看起来像UML,但属性的名称和它们指定的方式不遵循UML标准。到目前为止,MagicDraw和IBM RSA是市场上真正的UML工具。

答案 32 :(得分:1)

答案 33 :(得分:1)

UML或Dia的Visual Paradigm是很好的选择

答案 34 :(得分:0)

在这里抛出我的两位,但我发现ArgoUML非常有用。它需要一点时间来适应它和它有点儿(我最后检查它是在版本.29左右)但它一旦你习惯了它就能很好地工作。它处理所有类型的UML图表,这就是我喜欢它的原因。此外,它由tigris制作,与制作subclipse的人一样,是Eclipse的SVN存储库插件。

答案 35 :(得分:0)

在我尝试了大多数其他免费工具之后,

为TopCoder UML工具+1 我的理由是:

1)该工具可以以人类可读的格式XMI保存UML图,因此可以轻松地将文件提供给版本控制系统。

2)支持Undo / Redo(这就是我已经解除了ArgoUML的原因)。

3)图表保存在一个文件中,与“工作区”或“项目”没有紧密联系。

StarUML也很好,虽然很老。不幸的是,它不再开发/维护了。

答案 36 :(得分:0)

我建议使用Pacestar UML Diagrammer。它可以帮助您生成UML 2.0图表快速轻松灵活以及通常理解的符号。

我在很多项目中都使用它,我非常满意。它也不会占用大量内存和空间,只需6 Mo的硬盘。

我最喜欢的功能是我可以从编辑器中复制图表并将它们粘贴到MS Word中...所以当我需要编辑特定的图表时,只需点击它就会打开它在编辑器中关闭它,更新已在MS Word文档中完成。

答案 37 :(得分:0)

如果你想在图层级建模并且还有一个干净的元模型,新的Omondo构建允许MOF和UML图之间的实时同步。 每次我在图表中更改某些内容并更改模型时,看到我的图表和xmi实时同步真是太棒了。最令人难以置信的是,该模型也是元模型和MOF,因为一切都是同步的。我的观点非常强大的新概念。

我也喜欢类图和模型中的Java代码注释和JPA支持。我不知道任何其他具有这两个令人难以置信的功能的工具!!

答案 38 :(得分:0)

我尝试过MagicDraw,它非常好,只有社区版。

此外,我尝试过omondo,它看起来很棒但是商业用途非常昂贵。

答案 39 :(得分:0)

您可能想查看ArgoUML。它不是我用过的最好的工具,但它是我见过的最好的免费工具之一。它有点慢,因为它是用Java编写的,但它让你可以相对轻松地做一些基本的UML图。

答案 40 :(得分:0)

我强烈推荐 BOUML。它是一个免费的UML建模应用程序,其中:

  • 非常快(最快有史以来创建的UML工具,请查看benchmarks),
  • 拥有坚如磐石的C ++,Java,PHP和其他导入支持,
  • 是多平台(Linux,Windows,其他操作系统),
  • 具有很好的SVG导出支持,这很重要,因为以矢量格式查看大图,其在例如Firefox,非常方便(您可以在“鸟瞰”视图和类详细信息视图之间快速切换),
  • 是全功能的,令人印象深刻的集中开发(看development history,很难相信这样的快速进展是可能的。)
  • 支持插件,具有模块化架构(这允许user contributions,看起来像BOUML社区正在形成)

相信我,没有更好的工具。与BOUML相比,StarUML是一只迟钝的乌龟。 ArgoUML根本不起作用。 Dia是一个符合人体工程学的^ -1软件。

答案 41 :(得分:0)

我建议Software Ideas Modeler。它具有许多功能和直观的GUI。

答案 42 :(得分:0)

查看Sybase PowerDesigner

http://www.sybase.com/products/modelingdevelopment/powerdesigner

说明

http://en.wikipedia.org/wiki/PowerDesigner

这是一个变化强大的工具,但价格也是如此!

答案 43 :(得分:0)

我使用gmodeler.com。它只是做类图。

好东西

  • 非常简单的功能集。很棒的UI。非常好用。
  • 吸引人的用户界面。
  • 无需登录/创建帐户
  • 可以保存图表

糟糕的事情

  • 难以合作 - 必须导出到xml(我不在乎)
  • 无法从任何计算机访问图表,因为它会保存到您的浏览器(我不在乎)
  • 无法导出为图像或pdf(我可以拍摄屏幕截图)
  • 无法为大多数语言生成代码
  • 非常简单的功能集。 (我不在乎)
  • 每个班级都有一个我不需要的“事件”列表,我无法摆脱。

答案 44 :(得分:0)

对于序列图,有基于免费java的Quick Sequence Diagram Editor。序列用文本编辑器编写,然后由QSDE引擎呈现。它导出各种矢量和位图文件格式。

答案 45 :(得分:0)

在我的职业生涯中,我经常需要绘制UML图并生成Java代码。我发现MagicDraw最吸引人,我是一个快乐的用户。我认为他们的许可模式是公平的,因为它允许支付您所需的费用。我更喜欢在我过去使用的其他产品:ArgoUML,Poseidon,Rational Rose,Dia。请注意,我在其他产品上的经验已经过时,可能会显着改进或更改其许可模式。也许你应该从一个开源工具开始,然后决定是否要花一些钱。

使用MagicDraw,您可以通过从代码生成图表来记录代码。您也可以先建模,然后生成代码。它还与几个IDE很好地集成。

答案 46 :(得分:0)

Violet

免费且易于使用。

答案 47 :(得分:0)

TopCoder UML Tool是一个非常好的免费UML工具。

答案 48 :(得分:0)

如上所述,ArgoUML是UML 1.4的一个不错的工具,并且最近(2008年秋季)收到了一些急需的维护更新。

答案 49 :(得分:0)

ArgoUML

我将这个用于我的论文并且它设计得很好:也许它有太多的功能而不是very important但我更喜欢有一些uselee功能而不是没有一些有用的功能。