簡體   English   中英

使用python或perl生成uml序列圖

[英]generate uml sequence diagrams with python or perl

我有一些文本,我將處理生成uml序列圖圖像。 我可以將pythonperl中的文本處理成現有的'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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM