Есть ли хороший инструмент или цепочка инструментов, позволяющая создавать UML-изображения в формате .svg из текстового исходного файла? Причина этого вопроса заключается в том, что я хочу автоматизировать создание этих изображений, чтобы избежать необходимости вручную создавать и обновлять этот набор изображений.
Отображение диаграмм UML из текстовых файлов
Ответ 1
UMLGraph - это программа для генерации диаграмм UML (в первую очередь диаграмм классов и диаграмм последовательности) из текстовых описаний. Он предназначен для использования с исходным кодом java, но с некоторыми изменениями исходный код стиля С++ также можно использовать, как описано в этой записи в блоге.
Цитата с сайта UMLGraph:
Программа GNU plotutils pic2plot может затем обработайте диаграмму последовательности создать PNG, PNM, (псевдо) GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis или TEK.
Ответ 2
Я создал список инструментов, которые принимают описание текстовой модели здесь:
http://modeling-languages.com/uml-tools-textual-notations-define-uml-models/
Ответ 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"];
}
Производит вывод следующим образом:
Ответ 7
Я знаю, что это старый поток, но все же я хотел бы поделиться еще одним инструментом, который я считаю чрезвычайно полезным и удобным: https://www.websequencediagrams.com/
Это онлайн-инструмент, который поможет вам быстро и быстро.
Он также имеет множество хороших макетов из коробки.
Вот два примера:
Ответ 8
бесплатный инструмент UML JUDE позволяет создавать UML-диаграммы из исходного кода Java. Я не знаю, работает ли это для других языков.
Ответ 9
Если вам нравятся диаграммы последовательности JS, вы также можете проверить UMLet, который имеет аналогичную предпосылку (возможность определять диаграммы посредством текста, аналогично описанию graphviz), и пусть инструмент вычисляет график и позиционирование.
ИМХО, этот подход не получил достаточной гласности или тяги. Полный анализ источников в оба конца затруднен, и во многих случаях "слишком много работы" для простых разговоров по дизайну или быстрой документации. Сложность компоновки в корпоративных инструментах не позволяет использовать все, кроме самых больших документов. И Agile страдает от no-doc, потому что цена слишком крутая.
По этим причинам я хотел бы, чтобы другие инструменты применяли этот подход.