Подтвердить что ты не робот

Отображение диаграмм UML из текстовых файлов

Есть ли хороший инструмент или цепочка инструментов, позволяющая создавать UML-изображения в формате .svg из текстового исходного файла? Причина этого вопроса заключается в том, что я хочу автоматизировать создание этих изображений, чтобы избежать необходимости вручную создавать и обновлять этот набор изображений.

4b9b3361

Ответ 1

UMLGraph - это программа для генерации диаграмм UML (в первую очередь диаграмм классов и диаграмм последовательности) из текстовых описаний. Он предназначен для использования с исходным кодом java, но с некоторыми изменениями исходный код стиля С++ также можно использовать, как описано в этой записи в блоге.

Цитата с сайта UMLGraph:

Программа GNU plotutils pic2plot может затем обработайте диаграмму последовательности создать PNG, PNM, (псевдо) GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis или TEK.

Ответ 3

PlantUML - хороший инструмент, который преобразует текст в стандартизованные uml-диаграммы.

у вас есть это как плагин для confluenze

Ответ 4

Существует еще один инструмент, называемый JS Sequence Diagrams, чтобы разрешить создание диаграмм последовательности UML из простого текста.

Он использует underscore.js и Raphaël для построения диаграмм.

Упрощенная лицензия BSD и исходный код доступны GitHub

Ответ 5

Enterprise Architect неплохо работает в создании диаграмм автоматически, начиная с исходного кода (на разных языках), а также из баз данных или других источники.

Ответ 6

Для диаграмм последовательности мне очень нравится Mscgen. Простой текстовый формат, прекрасные диаграммы.

"Mscgen - небольшая программа, которая анализирует описания последовательности сообщений и создает карты изображений PNG, SVG, EPS или сервера (ismaps) в качестве вывода" - http://www.mcternan.me.uk/mscgen/

например. Ввод формы:

# MSC for some fictional process
msc {
  hscale = "2";

  a,b,c;

  a->b [ label = "ab()" ] ;
  b->c [ label = "bc(TRUE)"];
  c=>c [ label = "process(1)" ];
  c=>c [ label = "process(2)" ];
  ...;
  c=>c [ label = "process(n)" ];
  c=>c [ label = "process(END)" ];
  a<<=c [ label = "callback()"];
  ---  [ label = "If more to run", ID="*" ];
  a->a [ label = "next()"];
  a->c [ label = "ac1()\nac2()"];
  b<-c [ label = "cb(TRUE)"];
  b->b [ label = "stalled(...)"];
  a<-b [ label = "ab() = FALSE"];
}

Производит вывод следующим образом:

Sequence diagram for a fictional process

Ответ 7

Я знаю, что это старый поток, но все же я хотел бы поделиться еще одним инструментом, который я считаю чрезвычайно полезным и удобным: https://www.websequencediagrams.com/

Это онлайн-инструмент, который поможет вам быстро и быстро.

Он также имеет множество хороших макетов из коробки.
Вот два примера:

enter image description here

Ответ 8

бесплатный инструмент UML JUDE позволяет создавать UML-диаграммы из исходного кода Java. Я не знаю, работает ли это для других языков.

Ответ 9

Если вам нравятся диаграммы последовательности JS, вы также можете проверить UMLet, который имеет аналогичную предпосылку (возможность определять диаграммы посредством текста, аналогично описанию graphviz), и пусть инструмент вычисляет график и позиционирование.

ИМХО, этот подход не получил достаточной гласности или тяги. Полный анализ источников в оба конца затруднен, и во многих случаях "слишком много работы" для простых разговоров по дизайну или быстрой документации. Сложность компоновки в корпоративных инструментах не позволяет использовать все, кроме самых больших документов. И Agile страдает от no-doc, потому что цена слишком крутая.

По этим причинам я хотел бы, чтобы другие инструменты применяли этот подход.