[英]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.