我正在尝试选择一种工具来创建各种风格的 UML 图。可用性对我来说是一个主要标准,但我仍然会通过更陡峭的学习曲线获得更多的力量并感到高兴。免费(如啤酒)会很好,但如果该工具值得,我愿意付费。我应该使用什么?
50 回答
一些背景:最近在研究生院,我为一个独立项目研究了 UML 工具的可用性和 UML 理解。我还以模特/建筑师为生。
以前的帖子有太多的答案,没有足够的问题。一个常见的误解是 UML 是关于创建图表的。当然,图表很重要,但实际上您是在创建模型。以下是应该回答的问题,因为每个供应商的产品/解决方案都比其他产品/解决方案做得更好。 注意:即使其他产品支持给定的功能或需求,列出的答案也是我认为的最佳答案。
- 你是建模还是绘图?(绘图 - ArgoUML、免费实现和Visio)
- 以后会做模特吗?(用于基本建模 - 付费产品的社区版)
- 您想通过配置文件或元模型来形式化您的建模吗?OCL?(Sparx,RSM,视觉范式)
- 您是否关心模型可移植性、XMI 支持?( GenMyModel , Sparx ,视觉范式, Altova )
- 您是否有需要处理的现有文档集?(取决于文件)
- 您想生成代码存根还是功能完整的代码?(GenMyModel、Visual Paradigm、Sparx、Altova)
- 您是否需要更成熟的流程,例如用例管理、模式创建、资产创建、RUP 集成等?(RSA/RSM/IBM Rational 产品)
详细示例:IBM Rational Software Architect 在创建 UML 配置文件时并没有完全实现 UML 2.0,但 Visual Paradigm 和 Sparx 做到了。
好吧,这太详细了,所以一个更简单的例子是ArgoUML,它没有代码生成功能,并且专注于绘图而不是 UML 的建模方面。
Sparx和Visual Paradigm非常擅长 UML 并生成代码,但是,挂钩到项目生命周期和其他过程是 RSM/RSA 的强项。
注意封闭的或产品特定的代码生成过程或框架,因为您最终可能会卡在该产品上。
这是一个直截了当的大脑转储,因此一些细节可能并不完美,但是,这应该为要研究的问题和解决方案提供一般地图。
新 - 找到了许多带有描述的 UML 工具的好列表。 Wiki UML 工具列表
仅对于序列图,请尝试websequencediagrams.com。这是一个免费增值(基本任务免费,高级功能付费)产品,可以让您快速制作图表,而无需对线条和模板大惊小怪。
Alice->Bob:认证请求 Bob 左边的注释:Bob 想了想 Bob->Alice:认证响应
对我来说,它是来自 Sparx Systems 的 Enterprise Architect。一个非常全面的 UML 工具,价格非常合理。
非常强大的功能列表,包括:集成项目管理、基线、导出/导入(包括导出到 html)、从模型生成文档、各种模板(Zachman、TOGAF 等)、IDE 插件、代码生成(IDE 插件可用于Visual Studio、Eclipse 和其他)、自动化 API - 不胜枚举。
哦,是的,不要忘记直接从工具内部(SVN、CVS、TFS 和 SCC)支持源代码控制。
我也会远离 Visio - 你只会得到图表,而不是模型。在 UML 建模工具中的一个地方重命名一个类,然后在所有地方重命名。在 Visio中不是这种情况!
对于我简单而简短的 UML 工作,我使用了这个工具:
StarUML - http://staruml.sourceforge.net/en/
伟大的 UML 绘图免费软件。
虽然不再维护原始的 Star UML,但现在有一个名为White Star UML的分支,它正在积极开发中。
由于我通常将 UML 更多地用作通信工具而不是建模工具,因此有时我需要稍微调整一下语言,这使得严格的建模工具非常笨拙。此外,对于偶尔的绘图,它们往往会产生很大的开销。这也意味着我不会为处理往返建模的工具提供任何奖励积分。考虑到这一点...
使用Visio时,我倾向于使用这些模板来满足我的 UMLing 需求(内置的很糟糕)。可能是我已经习惯了它,因为它是我当前任务中的主要图表工具。
OmniGraffle还内置了一些 UML 模板,并且Graffletopia提供了更多模板,但我不建议将其作为图表工具,因为它有太多的怪癖(怪癖对很多事情都有好处,但不是 UML)。不过免费试用,所以无论如何...... :)
我一直在尝试MagicDraw,但在实用的同时,我发现用户界面让人分心。
否则我会发现Topcased是一个有趣的项目(或一组项目)。上次我使用它时,它仍然有一些错误,但它确实有效,并且从那以后似乎发展得很好。在任何支持 Eclipse 的平台上都能很好地工作。像演讲和啤酒一样免费:)
至于图表工具Dia,它非常丑陋(界面和生成的图纸),但它确实完成了工作。一个有趣的免费建模工具替代品是Umbrello,但我并没有真正使用它。
我绝对同意mashi的观点,即白板很棒(连同数码相机或手机)。
可能我使用过的一些最好的工具属于Rational工具系列。
您可能正在寻找一种自动化工具,它会自动为您生成很多东西。但这里有一个免费的、通常功能强大的图表工具,不仅对 UML 有用,而且对各种图表任务都有用。它接受各种常用文件格式的输入和输出。叫yEd,值得一看
我非常喜欢UML 的 Visual Paradigm它非常强大,并且有免费的社区版和便宜的个人版。
阿吉利亚 http://content.usa.visual-paradigm.com/websiteimages/images/products/ag10/agtitle.gif
对于敏捷建模,还有更灵活的Agilian,它添加了额外的功能来支持智能板,并且还知道思维导图。
我最喜欢他们产品的一点是灵活性。我现在在工作中使用 Enterprise Architect,但我认为它不够聪明。我希望能够快速集思广益一些序列图,并让应用程序在后台使我的模型保持最新,这是 VPUML 做得很好的事情。
在我看来,它比 Enterprise Architect 好得多,尽管它也是一个很棒的工具 :)
如果您想走出家门并使用 UML 而不必学习复杂的新工具,我会查看Violet UML。过去我用它取得了相当大的成功。
PlantUML是 Java 中的一个开源标记语言到 UML 图的工具,这里值得一提。由于其对各种图表和图表组件的直观语法,它在可用性等级上排名很高。
迪亚是一个可能的选择。它绝对不是最好的工具,但它很实用。
Sparx 系统的 Enterprise Architect 是我用过的最好的工具。199 美元(专业版)有点贵,但 IMO 值得。
我将添加我尚未尝试但已在我的办公室选择开始绘制图表的UMLet 。
看起来很简单,图表并不性感,但就你可以做的图表而言,它似乎很完整。似乎也有很好的导出能力(重要!),很灵活,可以支持自定义组件)并且可以用作 Eclipse 插件。
Astah UML(前 JUDE)非常好。
我一直无法找到一流的免费 UML 图表工具,但如果您对纯图表感兴趣,而不是往返工程,我会选择 Microsoft Visio。如果您想要完整的往返工程,Rational Rose。
Wikipedia 上的这个UML 工具列表也可能派上用场。
笔和纸。如果您可以将扫描结果转换为矢量格式,那么在进行小修改时可能会很有用。
您还可以查看Lucid Chart了解 uml 和其他类型的图表。
不要忘记yuml.me,我喜欢它。
我喜欢之前在这个线程中提到的 VisualParadigm。它功能强大且易于使用,我认为与其他工具相比,它提供了最大的功能。
如果你需要一些简单、快速、简单(免费)的东西,有一个很棒的工具叫做UMLet——我强烈推荐这个。我尝试了许多 UML 图表工具,这是最简单的一个(它仍然可以制作出色的图表)。这是我的选择:)
在我的实践中,我使用Sequence Diagram Editor。它确实是快速且有用的工具。我不喜欢它的一件事是它是商业产品,而不是免费的。
显然,从长远来看,如果您对 UML 很认真,您需要使用其他答案中建议的软件 UML 工具,但我发现白板是 UML 图表的最佳工具之一,尤其是在设计期间阶段,或者当您正在探索不同的替代方案时。在我看来,没有什么比白板更能提高速度/灵活性了。假设您在物理上并置,它们也非常适合协作。
在我看来, StarUML是最好的。
我不敢相信没有人提到过 NetBeans UML 编辑器,它很棒并且满足了我所有基于 Java 的 UML 要求。
这是在我测试了 JDeveloper UML、ArgoUML 和 StarUML 之后。
我最近进行了一项调查“你使用什么 UML 工具?” 在我的博客中。NetBeans UML 是首选的开源选择,Enterprise Architect 是首选的商业选择。
您可以在 Visual Studio 2010 Ultimate 中创建 UML 类、序列、组件、用例和活动图。您可以将这些图表链接到 Team Foundation 工作项,以便计划和跟踪开发和测试工作。您还可以从代码创建序列图、依赖关系图和层图,并使用架构资源管理器来浏览和探索您的解决方案。
我已经在我的个人资料上发布了更多链接以获取更多信息。
您可能想看看MagicDraw或UML 的 Visual Paradigm。两者都提供社区版本,当然,不涵盖全部功能范围,但如果您只想创建图表而不生成代码或进行完整的往返工程,这可能就足够了。
Rational 和 Together/J 是同类产品中的佼佼者,但价格昂贵。
根据我的经验,我喜欢 Eclipse Omondo 和 Sparx Enterprise Architect。Omondo 与 Eclipse 很好地集成了代码生成,并且具有非常直观的感觉。但是,它与 Java 紧密相关。Sparx 是一个价格合理的好工具,但缺少全系列的 UML 2.0 图。
不要打扰波塞冬。对于所有意图和目的,它都是错误的、臃肿的和不可用的。
对于序列图,您还可以尝试Trace Modeler。它不是免费的,但它有一个很棒的界面,非常友好和高效。您可以在任何平台上使用它。
尝试替代文字 http://www.sparxsystems.com.au/images/products/logos/EA.png
但是,它不是免费的
它具有惊人的功能.. 在此处查看屏幕截图。
他们有替代文字 http://www.sparxsystems.com.au/images/products/logos/MDGIntVS-268x73.png 和 替代文字 http://www.sparxsystems.com.au/images/products/logos/MDGIntEclipse -223x73.png 太..
UML 或 Dia 的 Visual Paradigm 是不错的选择
自 1999 年以来,我一直在研究 UML 标准,并且可能会告诉您,不应将 Sparx Enterprise Architect 视为 UML 工具,因为它不遵循 UML 2 规范。它的图表看起来像 UML,但属性的名称和它们指定的方式不遵循 UML 标准。MagicDraw 和 IBM RSA 是目前市场上真正的 UML 工具。
你应该试试Modelio 免费版。它支持 UML2、BPMN、SOA 和 XMI。它使用简单,他们的论坛非常活跃。
您可能想查看ArgoUML。这不是我用过的最好的工具,但它是我见过的更好的免费工具之一。它有点慢,因为它是用 Java 编写的,但它让您可以相对轻松地完成一些基本的 UML 图。
如前所述,ArgoUML是 UML 1.4 的一个不错的工具,并且最近(2008 年秋季)收到了一些急需的维护更新。
我强烈推荐 BOUML。这是一个免费的 UML 建模应用程序,它:
- 速度极快(有史以来最快的 UML 工具,查看基准测试),
- 具有坚如磐石的 C++、Java、PHP 和其他导入支持,
- 是多平台(Linux、Windows、其他操作系统),
- 具有出色的 SVG 导出支持,这一点很重要,因为以矢量格式查看大图(在 Firefox 中可快速缩放)非常方便(您可以在“鸟瞰”视图和类详细视图之间快速切换),
- 功能齐全,令人印象深刻的密集开发(看看发展历史,很难相信如此快速的进步是可能的)。
- 支持插件,具有模块化架构(这允许用户贡献,看起来 BOUML 社区正在形成)
相信我,没有更好的工具。与 BOUML 相比,StarUML 是一只迟钝的乌龟。ArgoUML 根本不起作用。Dia 是一款符合人体工程学的^-1 软件。
只是在这里添加我的两个位,但我发现 ArgoUML 非常有用。需要一点时间来适应它,而且它有点问题(最后我检查它是在 0.29 左右的版本中),但一旦你习惯了它就可以很好地工作。它处理所有类型的 UML 图,这就是我喜欢它的原因。此外,它是由 tigris 制作的,也就是制作 subclipse 的人,它是 Eclipse 的 SVN 存储库插件。
如果您想在图表级别建模并拥有一个干净的元模型,新的 Omondo 构建允许 MOF 和 UML 图表之间的实时同步。每次我更改图表中的某些内容并且更改模型时,看到我的图表和 xmi 实时同步真是太棒了。最令人难以置信的是,模型也是元模型和 MOF,因为一切都是同步的。在我看来,非常强大的新概念。
我还喜欢类图和模型中的 Java 代码注释和 JPA 支持。我不知道任何其他工具具有这 2 个令人难以置信的功能!
看看 Sybase PowerDesigner
http://www.sybase.com/products/modelingdevelopment/powerdesigner
描述:
http://en.wikipedia.org/wiki/PowerDesigner
它是一个功能强大的工具,但价格也是如此!
TopCoder UML Tool是一个非常好的免费 UML 工具。
对于序列图,有免费的基于 java 的快速序列图编辑器。该序列在文本编辑器中编写,然后由 QSDE 引擎呈现。它导出为各种矢量和位图文件格式。
免费,而且非常易于使用。
我推荐Software Ideas Modeler。它具有许多功能和直观的 GUI。
我试过MagicDraw,它非常好,不过只有社区版。
我也试过 omondo,它看起来很棒,但商业用途非常昂贵。
在我尝试了大多数其他免费工具之后,为 TopCoder UML 工具 +1。
我的理由是:
1)该工具可以将UML图保存为人类可读的XMI格式,因此可以轻松地将文件馈送到版本控制系统。
2) 支持撤消/重做(这就是我退出 ArgoUML 的原因)。
3)图表保存在一个文件中,与“工作区”或“项目”没有紧密联系。
StarUML 也不错,虽然很旧。不幸的是,它不再开发/维护。
在我的职业生涯中,我经常需要绘制 UML 图并生成 Java 代码。我发现MagicDraw最吸引人,我是一个快乐的用户。我认为他们的许可模式是公平的,因为它允许为你需要的东西付费。与我(遥远的)过去使用的其他产品相比,我更喜欢它:ArgoUML、Poseidon、Rational Rose、Dia。请注意,我在其他产品上的经验已经过时,可能已经显着改进或改变了他们的许可模式。也许你应该从一个开源工具开始,然后再决定是否要花一些钱。
使用MagicDraw,您可以通过从代码生成图表来记录您的代码。您也可以先建模,然后生成代码。它还可以与多个 IDE 很好地集成。
我使用gmodeler.com。它只是做类图。
好东西
- 非常简单的功能集。很棒的用户界面。非常容易使用。
- 有吸引力的用户界面。
- 不必登录/创建帐户
- 可以保存图表
- 自由
坏事
- 难以协作——必须导出到 xml(我不在乎)
- 无法从任何机器访问图表,因为它保存到您的浏览器(我不在乎)
- 无法导出为图像或 pdf(我可以截屏)
- 无法为大多数语言生成代码
- 非常简单的功能集。(我不在乎)
- 每个班级都有一个我不需要也无法摆脱的“事件”列表。
我建议使用Pacestar UML Diagrammer。它可以帮助您快速、轻松、灵活且易于理解的符号生成 UML 2.0 图表。
我在很多项目中都使用过它,我很满意。而且它也没有使用太多的内存和空间,只有 6 Mo 的硬盘。
我最喜欢它的最大功能是我可以从编辑器中复制图表并将它们粘贴到 MS Word 中......所以当我需要编辑特定图表时,只需单击它就会在编辑器中打开并通过关闭它,更新已在 MS Word 文档中完成。