【发布时间】:2010-05-09 13:43:44
【问题描述】:
如何使用 Linux 中的命令行工具从包含我的流程的文本表示的文件生成 UML 序列图?
【问题讨论】:
如何使用 Linux 中的命令行工具从包含我的流程的文本表示的文件生成 UML 序列图?
【问题讨论】:
尽管PlantUML 已列在已接受的答案中(在许多其他工具中),但它值得更多关注。
PlantUML 除了可以方便地包装成命令行工具之外,还有
不过,PlantUML 是作为 java 存档提供的,因此可能需要进行以下设置:
java 和 graphviz 可作为主要 linux 发行版的软件包。 PlantUML 本身可用于 Fedora 和 Ubuntu。
如果您的发行版不提供包,请从主站点下载 jar 文件并打包为 bash 脚本。
bash 包装器(如下)可以存储在路径上名为 plantuml 的文件中,即echo $PATH 列出的目录之一。不要忘记使用chmod u+x plantuml 使其可执行。
#!/bin/bash
# from the vim syntax plugin README at aklt/plantuml-syntax on github
java -jar $HOME/path/to/plantuml.jar -tsvg $@
然后运行plantuml apple.uml berry.uml,plantuml 将创建 apple.svg berry.svg。
【讨论】:
有很多(很多=超过 10 个)工具可以做到这一点。
见complete list。
【讨论】:
不确定是不是你想要的,但UMLGraph 可以使用graphviz 和ghostscript 生成序列图...
【讨论】:
如果您的文本表示与 yuml 非常相似,您也许可以使用它来生成图像,例如
简单关联
[Customer]->[Billing Address]<img src="http://yuml.me/diagram/scruffy/class/[Customer]->[Billing Address]"/>
【讨论】:
http://umlet.com/ 是另一种解决方案
【讨论】:
将以下源码放入 .html 文件并在浏览器中打开:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function () {
$('textarea').each(function () {
$(this).hide();
var source = $(this).html();
$('body').append('<img src="http://yuml.me/diagram/scruffy/class/'
+ source + '" />');
});
});
</script>
</head>
<body>
<textarea>
[note: You can stick notes on diagrams too!{bg:cornsilk}],
[Customer]<>1-orders 0..*>[Order],
[Order]++*-*>[LineItem],
[Order]-1>[DeliveryMethod],
[Order]*-*>[Product],
[Category]<->[Product],
[DeliveryMethod]^[National],
[DeliveryMethod]^[International]
</textarea>
</body>
</html>
您应该能够在 textarea 标记中看到与源对应的sample diagram。根据yuml samples更正出处,自己画图。
【讨论】:
使用脚本替换:
| 参考文献
【讨论】: