如何从现有的Ruby代码生成UML图?

时间:2008-09-09 14:31:31

标签: ruby-on-rails ruby uml

任何人都可以为Ruby和Ruby on Rails推荐一些优秀的UML /建模工具吗?从UML图生成代码并从现有代码生成图表会很好。

9 个答案:

答案 0 :(得分:11)

检查“UML tools for Ruby”(即从UML图生成一些Ruby代码的工具,或者相反,从Ruby代码生成一些UML图的工具。)

答案 1 :(得分:6)

“for Ruby”是什么意思? UML与语言无关。

根据您的评论 - UML是一种通用的,与语言无关的模型。它被设计(根据我的理解)在选择实现语言之前使用,因此并非所有UML元素都具有所有语言中的对应元素(例如,Ruby中的接口)。但是,这并不意味着您无法制作UML模型并实现他们在Ruby中描述的系统。

我建议StarUML满足所有UML需求。

答案 2 :(得分:4)

Visual Paradigm是Mac应用程序,将为您执行此操作。

有些OT,但我发现的最好的UML工具叫做Enterprise Architect - 它是一个Windows应用程序,基本许可证的成本约为130美元。它不做Ruby,但它确实做Java,C ++和许多其他语言,包括完整的数据库到SQL,包括生成和逆向工程。值得一看。

答案 3 :(得分:4)

原始的Railroad gem仅适用于Rails v2及之前版本。如果您使用的是Rails 3,请改为使用use the RailRoady gem。 (另请参阅github上的README。)

答案 4 :(得分:3)

您是否想要一个将UML转换为ruby代码的工具?

我认为目前还没有。但它是一个非常好的应用理念:)

我找到了ruby-uml

  

通过跟踪生成uml图   运行分析应用程序   现有的应用程序和   为重构提供支持。

答案 5 :(得分:3)

我知道我迟迟没有抓住这条消息了,但我想我在这里要补充一些内容。

Uml(类图)不适用于动态类型语言。我不是在谈论特定语言结构的特定情况,而是更基本的东西。

在ruby中,变量没有任何类型。在UML中,我们在类型之间创建关联

Ruby使用duck-typing。 Duck-typing可以很容易地映射到实现某个接口的类。但是,由于所有类都是自包含的并且彼此完全分离,所以我喜欢将每个ruby类视为一个组件。

我创建了一个你可以查看的rubygem工具。这样做有点挑战,而且它还不能很好地工作,但它允许提取Ruby代码(不是Rails,Rails模型类型,因为它们被映射到数据库。它们甚至有关联的基数)并从中生成uml图。 https://github.com/mikaa123/umlify

答案 6 :(得分:2)

Railroad为Rails应用程序(包括模型和控制器)生成UML类图,您可能需要查看http://railroad.rubyforge.org/

答案 7 :(得分:2)

如果你使用Linux,你肯定会喜欢Umbrello,一个用许多语言生成代码的UML建模器,包括Ruby。

https://umbrello.kde.org/

答案 8 :(得分:1)

我认为你可能会从http://yuml.me得到一些里程,你需要做的就是输出一些文字。