UML 草图工具
2004 年 6 月 16 日
我画了很多 UML 图,但我不用 CASE 工具。原因是我对 UmlAsSketch 感兴趣,而不是对所有存储库的东西感兴趣。到目前为止,我通常选择 Visio。虽然 Visio 带有 UML 模板,但我不用内置的模板 - 我更喜欢 Pavel Hruby 的模板。
Visio 对我来说非常有效,它仍然是我的首选。但我承认我有点三心二意。Visio 只能在 Windows 上运行 - 我也使用 Mac 和 Unix,所以如果有一个可以在所有平台上运行的工具(或者实际上是一个通用的数据格式)会很棒。我喜欢与他人合作,所以开源的东西可以让那些没有访问 Visio 的人绘制图表。
我在我的 Mac 上玩过 OmniGraffle,但还不够深入地评估它的功能 - 尽管它确实产生了看起来很漂亮的抗锯齿输出。 UMLet 也是一个看起来很有趣的项目。
然而,我最希望的是用文本指定我的 UML 图。这听起来可能很奇怪 - 毕竟 UML 图是图表,为什么要用文本呢?文本有一些优势。在图表形式中,很多图表布局都很难调整,而用文本方式做起来会容易得多 - 使用图表作为可视化而不是编辑机制。此外,文本格式允许你使用 cvs 和 diff 轻松跟踪随时间推移的变化。
因此,我对 UmlGraph 很感兴趣。我最感兴趣的部分是序列图编辑器,它使用久负盛名的 pic 程序。 此页面 显示了 pic 宏如何创建序列图的文本表示。当然,pic 宏中有一些限制,我可以想象一个更紧凑、更清晰的文本表示。
objects thread, t:thread tool, :Toolkit peer, p:Peer, unborn trace found: a1:run(3) -> thread: run() -> tool: callbackLoop() -> self create -> peer handleExpose() -> peer: return delete -> peer
这只是我脑海中的想法。我不知道它在实践中是否真的有效。无论如何,我打算尝试使用 UmlGraph,看看它是否适合我。pic 程序非常小,如果我想做一些更改,我可以轻松地调整它。
UmlGraph 的类图生成器很好,因为它可以从 Java 源文件生成内容。但是对于仅仅是一个图表语法来说,它看起来很笨拙 - 我希望对类的放置有一些控制。足以说明 Customer 在 Order 的左侧。因此,也许用类似这样的东西来表示 此图表
layout row: Controller, EmbeddedAgent, URLStreamHandler, ChannelIterator SetTopController below: URLStreamHandler PowerManager below: SetTopController interface URLStreamHander operations OpenConnection() parseURL() setURL() toExternalForm() class SetTopController specializes Controller EmbeddedAgent implements URLStreamHandler attributes authorizationLevel operations startUp() shutDown() connect() associations -> PowerManager class ChannelIterator dependencies -> SetTopController keyword:friend
这同样只是我脑海中的想法。重要的是,我很高兴看到有人朝着这个方向努力 - 并希望看到更多。
以下是一些类似的草图工具,人们告诉我:
- MetaUml
- TWiki Draw 插件
- Sequence
- Agent UML 工具
- yUML:从嵌入在 img 标签中的文本规范在网页中绘制类图和用例图。具有粗犷的风格。
- PlantUML