[英]generate uml sequence diagrams with python or perl
我有一些文本,我将处理生成uml序列图图像。 我可以将python
或perl
中的文本处理成现有的'text to uml'工具的格式,但我试图消除这个额外的步骤并直接从python / perl脚本提供图像输出。
我可以使用任何python或perl包/模块吗?
有许多Python替代品。
如果您想从头开始生成图像,您可能需要考虑PIL (Python Imaging Library),这是Python的“事实上”图像库。
但是,对于序列图,特别是blockdiag图图像生成器库(也使用PIL)包括一个名为seqdiag的序列图生成器。 例如,以下是如何定义和生成一个简单但完整的序列图, 包括图表定义:
from seqdiag import parser, builder, drawer
diagram_definition = u"""
seqdiag {
browser -> webserver [label = "GET /index.html"];
browser <- webserver;
}
"""
tree = parser.parse_string(diagram_definition)
diagram = builder.ScreenNodeBuilder.build(tree)
draw = drawer.DiagramDraw('PNG', diagram, filename="diagram.png")
draw.draw()
draw.save()
有关更多示例(序列)图表定义和样式选项,请参阅http://blockdiag.com/en/seqdiag/examples.html 。
在Perl中有几个perl模块可以执行此操作,请参阅UML :: State 。
从概要:
use UML::State;
my $diagram = UML::State->new(
$node_array,
$start_list,
$accept_list,
$edges
);
# You may change these defaults (doing so may even work):
$UML::State::ROW_SPACING = 75; # all numbers are in pixels
$UML::State::LEFT_MARGIN = 20;
$UML::State::WIDTH = 800;
$UML::State::HEIGHT = 800;
print $diagram->draw();
CPAN是你的朋友。:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.