создание диаграмм последовательности uml с python или perl

у меня есть текст, который я буду обрабатывать для создания диаграмма последовательности uml изображения. Я могу обработать текст в python или perl в формат существующих инструментов "text to uml", но я пытаюсь исключить этот дополнительный шаг и дать вывод изображения непосредственно из скрипта python/perl.

есть ли Python или пакетов Perl/модули можно использовать?

2 ответов


есть несколько модулей 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 - ваш друг.:)


существует много альтернатив Python.

Если вы хотите создавать изображения с нуля, вы можете рассмотреть PIL (библиотека изображений Python)," де-факто " библиотека изображений для 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 Еще пример (последовательность) определения схемы и варианты укладки.