Создать диаграмму классов UML из проекта Java [закрыто]


200

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

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

  • StarUML (действительно хороший инструмент с открытым исходным кодом UML, но не может генерировать не обзорную диаграмму классов)
  • ArgoUML (он медленный и вялый и продолжает падать)
  • UModel (Это коммерческое программное обеспечение. Я использовал раньше, но мне было трудно его использовать)
  • MS Visio (не поддерживает реверс-инженера Java UML. Только для VB)

Есть ли другие рекомендации, чтобы добавить в этот список? И, надеюсь, может создать обзорную диаграмму классов Java. Кстати, я использую Eclipse.


1
Просто чтобы добавить еще несколько возможностей, в Eclipse есть Papyrus. Но плагин генерации кода, к сожалению, не работал для меня. У него слишком много зависимостей для установки. Я использовал eUML2 в конце.
Carven

Вы можете проверить UML Lab - она ​​коммерческая - но она имеет очень сложный и настраиваемый реверс-инжиниринг (и обратно).
Кристиан

Есть бесплатный инструмент под названием JGrasp, который может помочь.
HRJ

Я использовал этот метод: youtube.com/watch?v=HwBep8DmBVw единственный недостаток: это не бесплатно, но вы можете иметь 30-дневную пробную версию, что было достаточно в моем случае. ПРИМЕЧАНИЕ: это не мое видео, я просто нашел его во время поиска в Google.
дазито

@Carven, пожалуйста, дайте мне знать, какой плагин вы использовали? В настоящее время я ищу автоматическое создание диаграмм последовательности при выполнении junit / test.
Пользователь27854

Ответы:


46

Я использую плагин eUML2 от Soyatec под Eclipse, и он отлично работает для генерации UML, предоставляющего исходный код. Этот инструмент полезен до Eclipse 4.4.x


Есть ли в бесплатной версии эта функция?
Carven

да. Я использую бесплатную версию.
Гейзенбаг

1
Спасибо! ;) Я не пробовал, потому что всегда думал, что в бесплатной версии нет кода для генерации UML.
Carven

38
Это отстой. Жесткий. Инструкции хотят, чтобы пользователи ставили перед всеми свойствами префикс «f», чтобы прослушивать их. Это также разрушительно и добавляет кучу собственных комментариев ко всем файлам классов. Кроме того, инструкции не являются интуитивно понятными. Если кто-то может опровергнуть мой опыт (на основе текущей версии в Kepler), пожалуйста, сделайте это. И всего три недели испытаний. Удаление сейчас.
августа

1
Мне это не понравилось. Это не совместимая последняя версия затмения / кислорода.
Тайфун Яшар

109

Я написал Class Visualizer , который делает это. Это бесплатный инструмент, который обладает всеми упомянутыми функциями - я лично использую его для тех же целей, которые описаны в этом посте. Для каждого просматриваемого класса показаны 2 мгновенно сгенерированные диаграммы классов: отношения классов и представление UML класса. Диаграмма отношений классов позволяет пройти через всю структуру. Он имеет полную поддержку аннотаций и обобщений, а также специальную поддержку объектов JPA. Очень хорошо работает с большими проектами (тысячи классов).


8
Программа действительно хороша. Спасибо за создание и за ссылку.
Игорь Родригес

17
Джонатан, в качестве акта вежливости можно / нужно добавить к ответу отказ от ответственности при предложении продуктов, услуг и т. Д., В которых он участвует.
ДБМ

2
Это серьезно круто. Принимая во внимание наш очень сложный проект, основанный на десятилетиях - большая часть кода выполнена в винтажном стиле JDK 1.1 - это дает отличный обзор того, как все связано. В качестве дополнения к исходному коду и Javadoc, он обеспечивает огромную ценность по удивительной цене.
Gerardw

2
Является ли Class Visualizer выдающимся расширяемым полезным инструментом? ДА, ЭТО ТАК. Как мы платим за это? Это бесплатно для скачивания! Как мы научимся его использовать? Потратил 10 минут на просмотр видео!
Мартин Мизер,

2
У меня есть класс, который вызывает метод другого класса в том же проекте / папке, но этот другой класс не отображается. Я добавил все возможные зависимости, включая все jdk8 jar. я что-то пропустил?
Водолей Сила

2

Как насчет плагина Omondo для Eclipse. Я использовал это, и я считаю это весьма полезным. Хотя, если вы генерируете диаграммы для больших источников, вам, возможно, придется запустить Eclipse с большим объемом памяти.


Ссылка в не работает
Blip

2

Я бы сказал, что MoDisco на сегодняшний день является самым мощным (хотя, вероятно, не самым легким в работе).

MoDisco - это универсальная среда обратного инжиниринга (так что вы можете настроить свой проект обратного инжиниринга, с помощью MoDisco вы можете даже перепроектировать поведение java-методов, не только структуру и сигнатуры), но также включает некоторые предопределенные функции, такие как генерация класса. диаграммы из кода Java, который вам нужен.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.