Як я можу генерувати діаграми UML (особливо послідовні діаграми) з існуючого коду Java?
Як я можу генерувати діаграми UML (особливо послідовні діаграми) з існуючого коду Java?
Відповіді:
Це те, що я використав. Він легко встановлюється з сховища:
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
І створює досить приємні діаграми UML:
Провідник ObjectAid UML відрізняється від інших інструментів UML. Він використовує позначення UML, щоб показати графічне зображення існуючого коду, настільки ж точного та актуального, як і ваш текстовий редактор, при цьому дуже простий у використанні. Деякі унікальні можливості роблять це можливим:
- Ваш вихідний код і бібліотеки - це модель, що відображається, вони не реверсивні в інший формат.
- Якщо ви оновлюєте код у Eclipse, ваша діаграма також оновлюється; немає необхідності повертати інженерний вихідний код.
- Рефакторинг оновлює вашу діаграму, а також вихідний код. Коли ви перейменовуєте поле або переміщуєте клас, ваша діаграма просто відображає зміни, не виходячи з синхронізації.
- Усі діаграми у вашій робочій області Eclipse оновлюються відповідно до змін рефакторингу. За потреби вони перевіряються у вашій системі контролю версій.
- Діаграми повністю інтегровані в IDE Eclipse. Класи Java можна перетягувати з будь-якого іншого виду на діаграму, а інформація, що стосується діаграм, відображається в інших видах, де це можливо.
An error occurred while installing the items session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.objectaid.uml 1.1.3, action=). Failed to prepare partial IU: [R]com.objectaid.uml 1.1.3.
EDIT: Якщо ви дизайнер, то Papyrus - це ваш найкращий вибір, він дуже вдосконалений і має багато функцій, але якщо ви просто хочете замалювати деякі UML-діаграми та просту установку, то ObjectAid досить крутий і не потребує ніяких плагінів. просто встановив його через Eclipse-Java EE і чудово працює !.
ОНОВЛЕННЯ 11 жовтня 2013 року
Моя початкова публікація була в червні 2012 року, багато чого змінилося, багато інструментів виросли, а інші - ні. Оскільки я повертаюся, щоб зробити моделювання, а також отримати відповіді на пост, я вирішив знову встановити папірус і ще раз вивчу інші можливі рішення для моделювання UML. Генерація UML (з функцією синхронізації) дійсно важлива не для дизайнера програмного забезпечення, а для середнього розробника.
Я хотів би, щоб папірус мав прямий шлях до класів Reverse Engineer в діаграму класів UML, і було б дуже круто, якби ця зворотна інженерія мала функцію синхронізації, але, на жаль, проект папірусу має багато функцій, і я думаю, що розробники там вже багато під рукою, оскільки також багато дії, які ви робите над папірусом, можуть не дати вам жодної відповіді, і просто нічого не відбувається, але це все одно не входить до сфери цього питання.
Відповідь (11 жовтня 2013 р.)
Інструменти
Кроки
Клацніть правою кнопкою миші MyProject_kdm.xmi -> Discovery -> Discoverer -> Відкрийте модель UML з коду KDM знову, у діалоговому вікні властивості встановіть підтримку серіалізації на TRUE, щоб створити файл з назвою MyProject.uml
Перемістіть створений MyProject.uml, який був створений під коренем, у папку UML, Eclipse запитає вас, якщо ви хочете його замінити, натисніть так. Ми тут зробили те, що замінили порожню модель на генеровану.
ALT + W -> показ перегляду -> папірус -> Explorer Explorer
З цього виду ви знайдете свої заняття, як на малюнку
У вікні правої кнопки клацніть кореневу модель -> Нова діаграма
Потім почніть захоплювати класи до діаграми з подання
Деякі особливості
Щоб показати елементи класу (змінні, функції тощо) Клацніть правою кнопкою миші будь-який клас -> Фільтри -> показати / приховати вміст Voila !!
Ви можете встановити налаштування кольорів за замовчуванням у вікні -> pereferences -> папірус -> діаграма класів
Одним з дуже важливих параметрів є « Упорядкувати», коли ви відмовляєтесь від класів, вони отримують тісну клацання правою кнопкою миші на будь-якому порожньому просторі на діаграмі класів та натисніть «Упорядкувати всі»
Стрілки у поданні моделі Explorer можуть бути схоплені до діаграми, щоб показати узагальнення, реалізацію тощо
Після всього цього ваші налаштування покажуть діаграми типу
Синхронізація недоступна, наскільки я знаю, вам потрібно буде імпортувати будь-які нові класи.
Ось і все. І не купуйте комерційну продукцію, якщо вам вона справді не потрібна, папірус насправді чудовий і витончений, а не пожертвування чи щось таке.
Відмова: Я не маю відношення до людей з папірусом, насправді я спочатку не любив папірус, поки я не провів багато досліджень і пережив це з деяким терпінням. І я знову повернуся до цієї публікації, коли спробую інші безкоштовні інструменти.
Яка кодова база? Java чи C ++?
eUML2 для Java - це потужний модель UML, призначений для розробника Java в Eclipse. Безкоштовне видання можна використовувати для комерційного використання. Він підтримує такі функції:
- CVS та підтримка команди
- Розроблений для великого проекту з декількома і налаштованими моделями
- Helios Compatiant
- Синхронізація коду / моделі в режимі реального часу
- Сумісність з UML2.1 та підтримка OMG XMI
- Підтримка JDK 1.4 і 1.5
Комерційне видання передбачає:
Розширена інвертована техніка
- Потужні інструменти аналізу справжньої залежності
- Профіль UML та MDD
- Інструменти бази даних
- Підтримка шаблону, що настроюється
Я один з авторів, тому відповідь може бути необ’єктивним. Він з відкритим кодом (Apache 2.0), але плагін не безкоштовний. Вам не доведеться платити (очевидно), якщо ви клонуєте та будуєте локально.
У Intellij IDEA ZenUML може генерувати послідовну діаграму з коду Java.
Перевірте це за адресою https://plugins.jetbrains.com/plugin/12437-zenuml-support
Вихідний код: https://github.com/ZenUml/jetbrains-zenuml
Як щодо PlantUML ? Це не для зворотного проектування !!! Це для інженерії, перш ніж кодувати.
Я розробив плагін Maven, який може бути запущений із CLI як плагін, або імпортувати як залежність і програмно використовувати парсер, @see Main#main()
щоб отримати уявлення про те, як.
Він надає PlantUML src-код бажаних пакетів рекурсивно, який ви можете редагувати вручну, якщо потрібно (сподіваємось, цього не зробите). Потім, вставивши код на сторінку plantUML або завантаживши заводську банку, ви можете надати діаграму UML у вигляді PNG-зображення.
Перевірте це https://github.com/juanmf/Java2PlantUML
Будь-який внесок більш ніж вітається. У ньому є набір фільтрів, які налаштовують вихід, але я їх ще не виставляв у параметрі CLI для плагінів.
Важливо зауважити, що він не обмежується вашими * .java-файлами, він може також відображати UML-діаграми src від вашої залежності. Це дуже зручно для розуміння бібліотек, від яких ви залежите. Він фактично перевіряє складені класи з відображенням, тому джерело не потрібне
Будьте першим, хто зіграв це на GitHub: P
Я б порекомендував EclipseUML від Omondo для загального використання, хоча у мене були проблеми кілька місяців тому з моїми веб-проектами. Свого часу вони мали безкоштовне видання, але це, мабуть, більше не рекламується.
Якщо ви дійсно зацікавлені в діаграмах зворотної інженерної послідовності з вихідного коду, я рекомендую jTracert .
Що стосується самих проектів Eclipse, то проект Eclipse UML2 Tools може підтримувати зворотну інженерію, хоча я ніколи не бачив його використання на практиці.
Проект MoDisco (Model Discovery) Eclipse GMT виглядає більш зрозумілим у досягненні своєї мети. Перелік конкретних технічних засобів буде хороше місце , щоб почати с.
jSonde
Чи не доступна в URL , показаної вище. Ви можете знайти веб-сайт та вихідний код у Github: github.com/bedrin/jsonde .
Я знайшов Зелений плагін дуже простий у використанні та для створення діаграми класів із вихідного коду. Спробувати :). Просто скопіюйте плагін у свій реєстр плагінів.
Ви також можете спробувати модельєра UML Netbeans. Я використовував його для створення javacode, який я використовував у своїх проектах затемнення. Ви навіть можете імпортувати проекти затемнення в Netbeans і тримати параметри затемнення синхронізованими з налаштуваннями проекту netbeans.
Я спробував кілька моделей UML для затемнення і не був задоволений ними. Вони були або нестабільними, складними, або просто потворними. ;-)
Використання IntelliJ IDEA. Для створення діаграми класів виберіть пакет та натисніть Ctrl+ Alt+ U:
За замовчуванням він відображає лише назви класів, а не всі залежності. Щоб змінити це: натисніть правою кнопкою миші -> Показати категорії ... та Показати залежності:
Щоб генерувати діаграму залежностей (діаграма розгортання UML) та використовуєте maven go View -> Інструмент Windows -> Maven Projects та натисніть Ctrl+ Alt+ U:
Також можна генерувати більше інших діаграм. Дивіться документацію .
Ви можете використовувати 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 додає теги моделей у код, який насправді дуже поганий і остаточний для мене немає.
На сьогоднішній день найкращим інструментом, який я використав для зворотної інженерії та кругового відключення Java -> UML є Borland's Together . Він заснований на Eclipse (не просто на одному плагіні) і справді добре працює.
Я пропоную PlantUML. цей інструмент дуже корисний і простий у використанні. У PlantUML є плагін для Netbeans, за допомогою якого ви можете створити UML-діаграму зі свого коду Java.
Ви можете встановити плагін PlantUML в netbeans цим методом:
Меню Netbeans -> Інструменти -> Плагін
Тепер виберіть Доступні плагіни та знайдіть PlantUML та встановіть його.
Для отримання додаткової інформації відвідайте веб-сайт: www.plantuml.com
Я помітив, що плагін SequenceDiagram для Intellij також є хорошим варіантом.
Іншим інструментом моделювання для Java є (мій) веб-сайт GitUML . Створюйте діаграми UML з коду Java або Python, що зберігається у сховищах GitHub.
Однією з ключових ідей GitUML є вирішення однієї з проблем із "документацією": діаграми завжди застаріли. За допомогою GitUML діаграми автоматично оновлюються, коли ви натискаєте код за допомогою git.
Перегляньте діаграми UML спільноти, там є деякі схеми дизайну Java. Перегляньте популярні сховища GitHub та візуалізуйте архітектури та шаблони в них.
Створіть діаграми за допомогою точки та клацання. Немає редактора перетягування, просто клацніть на класи в дереві репозиторію, які ви хочете візуалізувати:
Базова технологія, заснована на PlantUML, означає, що ви можете вдосконалити діаграми за допомогою додаткової розмітки PlantUML.
Існує Безкоштовний інструмент на ім'я binarydoc, який може генерувати UML Sequence Diagram
або Control Flow Graph
( CFG
) з bytecode
(замість вихідного коду) методу Java.
Ось зразкова діаграма binarydoc, сформована для методу java java.net.Ab абстрактPlainSocketImpl.getInputStream :
java.net.AbstractPlainSocketImpl.getInputStream
:java.net.AbstractPlainSocketImpl.getInputStream
: