Создание диаграммы классов UML из Java Project

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

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

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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