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

бесплатный инструмент UML ИУДА позволяет создавать диаграммы UML из исходного кода Java. Не знаю, подходит ли это для других языков.
UMLGraph - это программа для создания диаграмм UML (в первую очередь диаграмм классов и диаграмм последовательностей) из текстовых описаний. Он предназначен для использования с исходным кодом java, но с некоторыми изменениями можно также использовать исходный код в стиле C++, как описано в эта запись в блоге.
Цитата с сайта UMLGraph:
The GNU plotutils pic2plot program can then process the sequence diagram to create a PNG, PNM, (pseudo)GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, or TEK drawing.
Пробовал это для диаграмм последовательности; обнаружил, что это невероятно привередливое (диаграммы последовательности сделаны с помощью макросов pic, а не Java - я мог заставить образцы работать, но мои собственные макросы не удалось, несмотря на то, что они действительны, насколько я мог судить), а выходные данные образца выглядят ужасно, как растровые изображения или SVG (в Ubuntu 14.04 с pic2plot 2.6). Для диаграмм последовательности я бы избегал ...
Вы должны проверить zenuml.com. Это онлайн-приложение для мгновенного преобразования ТЕКСТА в диаграмму последовательности.
Я создал список инструментов, которые принимают текстовое описание модели в качестве ввода здесь:
http://modeling-languages.com/uml-tools-textual-notations-define-uml-models/
Это нормально, что ключевые слова SQL печатаются на веб-странице заглавными буквами? (Я предполагаю, что это ключевые слова SQL, но я не уверен.)
Это не так, я исправил это на главной странице инструментов UML, упомянутой там. Я до сих пор не совсем уверен, почему это произошло.
Архитектор предприятия неплохо справляется с автоматическим созданием диаграмм из исходного кода (на разных языках), а также из баз данных или других источников.
PlantUML - хороший инструмент, преобразующий текст в стандартизованные диаграммы uml.
у вас это как плагин для confluenze
PlantUML доступен как отдельное Java-приложение, а также имеет версии плагинов для куча вики, редакторов и IDE. По умолчанию создается впечатление, что он создает файлы png, но может выводить в svg с соответствующими флагами.
Определенный +1 для PlantUML, особенно для диаграмм последовательностей - гораздо менее привередлив, чем макросы pic в UMLGraph, небольшое приложение с графическим интерфейсом автоматически обновляется и показывает вам вашу диаграмму каждый раз, когда вы сохраняете, а сообщения об ошибках намного полезнее.
Существует еще один инструмент, называемый Диаграммы последовательности JS, позволяющий создавать диаграммы последовательности UML из простого текста.
Он использует underscore.js и Raphaël для построения диаграмм.
Это упрощенная лицензия BSD, а исходный код доступен по адресу GitHub.
Если вам нравятся диаграммы последовательности JS, вы также должны проверить UMLet, который имеет аналогичную предпосылку (возможность определять диаграммы с помощью текста, аналогично описанию graphviz) и позволить инструменту выяснить график и позиционирование.
ИМХО, этот подход не получил достаточной огласки и поддержки. Полный анализ источника в оба конца сложен и во многих случаях «слишком трудоемок» для простого обсуждения проекта или быстрой документации. Сложность компоновки корпоративных инструментов не позволяет использовать их во всех документах, кроме самых крупных. А Agile страдает от отсутствия документации, потому что цена слишком высока.
По этим причинам я хотел бы, чтобы больше инструментов использовали этот подход.
Что касается диаграмм последовательностей, мне очень нравится 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"];
}
Производит такой вывод:

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

Привет, Йорн, JUDE теперь называется «Astah» (astah.net/editions/professional), и диаграммы можно создавать из исходного кода Java и C++ и C# с использованием бесплатных плагинов (astah.net/features/plugins).