Как генерировать диаграммы UML (особенно диаграммы последовательности) из кода Java?

java uml reverse-engineering diagram

360531 просмотра

14 ответа

Как я могу генерировать диаграммы UML (особенно диаграммы последовательности) из существующего кода Java?

Автор: Jonathan Источник Размещён: 17.06.2019 07:47

Ответы (14)


250 плюса

ObjectAid UML Explorer

Это то, что я использовал. Легко устанавливается из репозитория:

Name:     ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current

И производит довольно хорошие UML-диаграммы:

Скриншот

Описание с сайта:

ObjectAid UML Explorer отличается от других инструментов UML. Он использует нотацию UML для отображения графического представления существующего кода, который является таким же точным и актуальным, как и ваш текстовый редактор, и в то же время очень простым в использовании. Несколько уникальных функций делают это возможным:

  • Ваш исходный код и библиотеки - это модель, которая отображается, они не перепроектированы в другой формат.
  • Если вы обновите свой код в Eclipse, ваша диаграмма также обновится; нет необходимости перепроектировать исходный код.
  • Рефакторинг обновляет вашу диаграмму, а также ваш исходный код. Когда вы переименовываете поле или перемещаете класс, ваша диаграмма просто отражает изменения, не выходя из синхронизации.
  • Все диаграммы в вашем рабочем пространстве Eclipse обновляются с учетом изменений рефакторинга. При необходимости они проверяются вашей системой контроля версий.
  • Диаграммы полностью интегрированы в Eclipse IDE. Вы можете перетащить классы Java из любого другого представления на диаграмму, и информация, связанная с диаграммой, будет показана в других представлениях, где это применимо.
Автор: Thomas Ahle Размещён: 05.01.2012 11:04

63 плюса

РЕДАКТИРОВАТЬ: Если вы дизайнер, то Papyrus - ваш лучший выбор, он очень продвинут и полон функций, но если вы просто хотите набросать некоторые UML-диаграммы и простую установку, тогда ObjectAid довольно крутой и не требует никаких плагинов. только что установил его на Eclipse-Java EE и отлично работает!


ОБНОВЛЕНИЕ 11 октября 2013

Мой оригинальный пост был в июне 2012 года, многое изменилось, многие инструменты выросли, а другие нет. Поскольку я вернусь к некоторому моделированию и также получу некоторые ответы на этот пост, я решил снова установить папирус и снова исследую другие возможные решения для моделирования UML. Генерация UML (с функцией синхронизации) действительно важна не для разработчика программного обеспечения, а для среднего разработчика.

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

Ответ (11 октября 2013 г.)

инструменты

  1. Скачать Папирус
  2. Перейти к справке -> Установить новое программное обеспечение ...
  3. В раскрывающемся списке Работа с: выберите - Все доступные сайты--
  4. В фильтре введите Папирус
  5. После завершения установки перезапустите Eclipse
  6. Повторите шаги 1-3 и на этот раз установите Modisco

меры

  1. В вашем Java-проекте (предположим, он называется MyProject) создайте папку, например, UML
  2. Щелкните правой кнопкой мыши имя проекта -> Обнаружение -> Discoverer -> Обнаружение Java и модель инвентаризации из проекта Java, и будет создан файл с именем MyProject_kdm.xmi. введите описание изображения здесь
  3. Щелкните правой кнопкой мыши по имени файла проекта -> новый -> модель папируса -> и назовите его MyProject.
  4. Переместите три сгенерированных файла MyProject.di, MyProject.notation, MyProject.uml в папку UML
  5. Щелкните правой кнопкой мыши MyProject_kdm.xmi -> Discovery -> Discoverer -> снова обнаружить модель UML из кода KDM, и вы получите диалоговое окно свойств, в котором для свойства сериализации установлено значение TRUE, чтобы создать файл с именем MyProject.uml введите описание изображения здесь

  6. Переместите сгенерированный MyProject.uml, сгенерированный в корневом каталоге, в папку UML, Eclipse спросит вас, хотите ли вы заменить его, нажмите «Да». Мы сделали здесь то, что мы заменили пустую модель на сгенерированную.

  7. ALT + W -> показать вид -> папирус -> модельер

  8. В этом представлении вы найдете ваши классы, как на картинке введите описание изображения здесь

  9. В представлении щелкните правой кнопкой мыши корневую модель -> Новая диаграмма. введите описание изображения здесь

  10. Затем начните захват классов на диаграмму из представления

Некоторые особенности

  • Чтобы показать элементы класса (переменные, функции и т. Д.) Щелкните правой кнопкой мыши на любом классе -> Фильтры -> показать / скрыть содержимое Вуаля !!

  • Вы можете иметь стандартные настройки цвета в Окне -> Переименования -> Папирус -> Диаграмма классов.

  • один очень важный параметр - Arrange, когда вы отбрасываете классы, они получают тесный щелчок правой кнопкой мыши на любом пустом месте на диаграмме классов и нажимают Arrange All.

  • Стрелки в представлении проводника модели можно взять на диаграмме, чтобы показать обобщение, реализацию и т. Д.

  • После всего этого ваши настройки будут отображать диаграммы как введите описание изображения здесь

  • Синхронизация недоступна, насколько я знаю, вам нужно вручную импортировать любые новые классы.

Вот и все, и не покупайте коммерческие продукты, если они вам действительно не нужны, папирус на самом деле великолепен и совершенен, вместо того, чтобы пожертвовать или что-то в этом роде.

Отказ от ответственности: я не имею никакого отношения к людям из папируса, на самом деле, я сначала не любил папирус, пока не провел много исследований и не испытал их с некоторым терпением. И вернусь к этому посту снова, когда я попробую другие бесплатные инструменты.

Автор: Ismail Marmoush Размещён: 10.06.2012 04:06

42 плюса

Какая у вас кодовая база? Java или C ++?

альтернативный текст

eUML2 для Java - это мощный UML-моделлер, разработанный для Java-разработчика в Eclipse. Бесплатная версия может быть использована для коммерческого использования. Он поддерживает следующие функции:

  • CVS и поддержка команды
  • Предназначен для большого проекта с несколькими настраиваемыми видами моделей
  • Гелиос-совместимый
  • Синхронизация кода / модели в реальном времени
  • Совместимость с UML2.1 и поддержка OMG XMI
  • Поддержка JDK 1.4 и 1.5
  • Коммерческое издание предоставляет:

  • Расширенный обратный инжиниринг

  • Мощные инструменты для анализа истинных зависимостей
  • UML Профиль и MDD
  • Инструменты базы данных
  • Поддержка настраиваемых шаблонов
Автор: prakash Размещён: 09.09.2008 01:23

8 плюса

Как насчет PlantUML ? Это не для реверс-инжиниринга !!! Это для разработки, прежде чем код.

Автор: Zamel Размещён: 24.10.2010 08:38

6 плюса

Я разработал плагин maven, который можно запускать из CLI в качестве цели плагина или импортировать как зависимость и программно использовать синтаксический анализатор, @see Main#main()чтобы понять, как это сделать.

Он рекурсивно отображает src-код PlantUML нужных пакетов, которые вы можете редактировать вручную, если это необходимо (надеюсь, вы этого не сделаете). Затем, вставив код на страницу plantUML или загрузив jar-файл завода, вы можете отобразить диаграмму UML в виде изображения в формате png.

Проверьте это здесь https://github.com/juanmf/Java2PlantUML

Пример выходной диаграммы: введите описание изображения здесь

Любой вклад приветствуется. У него есть набор фильтров, которые настраивают вывод, но я пока не раскрывал их в параметрах CLI плагина.

Важно отметить, что он не ограничивается вашими * .java файлами, он также может отображать диаграммы UML src из ваших зависимостей maven. Это очень удобно для понимания библиотек, от которых вы зависите. Он на самом деле проверяет скомпилированные классы с отражением, поэтому источник не нужен

Станьте первым, кто сыграет эту роль на GitHub: P

Автор: juanmf Размещён: 18.08.2016 12:21

4 плюса

Я бы порекомендовал EclipseUML от Omondo для общего пользования, хотя несколько месяцев назад у меня были некоторые проблемы с моими веб-проектами. В какой-то момент у них было бесплатное издание, но якобы это больше не рекламируется.

Если вы действительно заинтересованы в диаграммах последовательности обратного инжиниринга из исходного кода, я бы порекомендовал jTracert .

Что касается самих проектов Eclipse, то проект Eclipse UML2 Tools может поддерживать реверс-инжиниринг, хотя я никогда не видел его применения на практике.

MoDisco проект (модель Discovery) Затмения GMT проект , кажется, яснее в достижении своей цели. Перечень технологических конкретных инструментов будет хорошее место для начала.

Автор: Vineet Reynolds Размещён: 08.04.2009 11:14

3 плюса

Я обнаружил, что плагин Green очень прост в использовании и генерирует диаграмму классов из исходного кода. Попробуй :). Просто скопируйте плагин в каталог плагинов.

Автор: pcmind Размещён: 28.04.2011 12:42

3 плюса

Вы также можете попробовать UML-модельер NetBeans. Я использовал его для создания Javacode, который я использовал в своих проектах затмения. Вы даже можете импортировать проекты eclipse в netbeans и синхронизировать настройки eclipse с настройками проекта netbeans.

Я попробовал несколько моделей UML для затмения и не был удовлетворен ими. Они были либо нестабильны, сложны или просто безобразны. ;-)

Автор: Patrick Cornelissen Размещён: 05.05.2009 10:14

2 плюса

Использование IntelliJ IDEA. Для создания диаграммы классов выберите пакет и нажмите Ctrl+ Alt+ U:введите описание изображения здесь

По умолчанию отображаются только имена классов, а не все зависимости. Чтобы изменить его: щелкните правой кнопкой мыши -> Показать категории ... и Показать зависимости: введите описание изображения здесь

Для генерации диаграммы зависимостей (UML Deployment chart) и вы используете maven, зайдите в View -> Tool Windows -> Maven Projects и нажмите Ctrl+ Alt+ U: введите описание изображения здесь

Результат: введите описание изображения здесь

Также можно генерировать больше других диаграмм. Смотрите документацию .

Автор: Igor Rybak Размещён: 18.07.2017 12:11

2 плюса

http://www.zenuml.com не генерирует диаграммы UML непосредственно из кода Java, но его DSL подобен Java. Кстати я создал zenuml :)введите описание изображения здесь

Автор: Xiao Peng - ZenUML.com Размещён: 21.07.2017 01:43

2 плюса

Вы можете использовать 30-дневную ознакомительную версию EclipseUML для Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip. Это не последняя сборка версии 3.6, но довольно хорошая и не требуется покупать его для тестирования и обратного проектирования.

Обратный инжиниринг: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html

Флеш-демонстрация в режиме реального времени: http://www.ejb3.org/reverse.swf

EclipseUML Omondo - лучший в мире инструмент для Java. Похоже, только eUML конкурирует с ним на этом рынке живой синхронизации Java, но eUML добавляет теги модели в код, что на самом деле очень и очень плохо, и для меня это определенно бесполезно.

Автор: UML GURU Размещён: 03.02.2011 10:08

1 плюс

Нечто очень похожее было задано ранее .

Безусловно, лучший инструмент, который я использовал для реверс-инжиниринга, и круговое отключение Java -> UML - это Borland's Together . Он основан на Eclipse (а не на одном плагине) и действительно хорошо работает.

Автор: serg10 Размещён: 22.09.2008 11:53

0 плюса

Я предлагаю PlantUML. Этот инструмент очень полезен и прост в использовании. У PlantUML есть плагин для Netbeans, который вы можете создать UML-диаграмму из своего Java-кода.

Вы можете установить плагин PlantUML в NetBeans следующим способом:

Меню Netbeans -> Инструменты -> Плагин

Теперь выберите «Доступные плагины», а затем найдите PlantUML и установите его.

Для получения дополнительной информации перейдите на сайт: www.plantuml.com

Автор: Masood Размещён: 03.08.2015 06:39

0 плюса

http://uml-plugins.blogspot.com/, где мы можем найти различия между инструментами моделирования UML, для быстрого начала !! В дополнение к этому, я заметил, что плагин SequenceDiagram для Intellij также является хорошим вариантом. Пожалуйста, прочитайте этот пост, чтобы быстро узнать о бесплатных и коммерческих и лучших опциях.

Автор: srinivas y Размещён: 05.10.2018 04:32
Вопросы из категории :
32x32