Форум программистов, компьютерный форум, киберфорум
netBool
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Построение UML-диаграмм для python (plantUML)

Запись от netBool размещена 18.04.2018 в 11:25
Показов 21714 Комментарии 1
Метки plantuml, pycharm, uml

В один прекрасный день в моем проекте Django стало очень много моделей, связанных очень сложно. И я начал нуждаться в инструменте для построения блок-схем.
Разработкой я занимаюсь в pycharm community без встроенного uml-редактора и только ради него покупать за 12к официал не готов, как и пользоваться им крякнутым в силу моих программистских принципов

Итак, я приступил к поиску бесплатных UML-редакторов. Мне попался этот список и я стал штудировать их сначала выборочно, потом - все подряд. Впечатления следующие:
  • Dia оказалась понятной, но для меня слишком неудобной
  • StarUML намного удобнее, но много жрущей и тормозящей (наверное, на java написана)
  • ArgoUML - по удобству недалеко ушла от Dia, но еще и интерфейс из 90х
  • Некоторые инструменты, такие, как Gaphor, у меня вообще ставиться отказались, т.к. не смогли скачать python 2.5. (несмотря на то, что у меня стоял 2.7, добавленный во все глобальные переменные, установщик все-таки усиленно пытался скачать именно 2.5 и при каждой неудаче отчаивался и выдавал неисправимую ошибку установки)
  • Наткнулся на инфу, что в phpmyadmin есть подобный инструмент. Даже не пробуйте - фигня полная

Попалась мне интересная программка NClass. Мне там понравилось все, за исключением того, что она под C#. Я, конечно, люблю шарп (и взял ее на заметку), но каждый раз нужно писать вручную тип поля, что не оч удобно, а моем случае и не очень нужно. Зато генерирует исходный код, что довольно приятно. (кстати, не нашел там вид связи - наследование)

Пробовал так же и встроенный в VS визуалайзер EDM-диаграмм. Прикольная штука, подобна NClass, но тоже много лишнего + там все завязано на генерацию кода. Это настоящий самолет со всеми вытекающими возможностями и ...заморочками. А заморочки как раз-таки мне не нужны...

В общем эти приключения можно описывать долго и заняли они у меня почти весь день...

Вотс. Но тк я использую pycharm, решил остановиться на решениях для pycharm. Я как-то и не вспоминал до этого момента, что эта ide поддерживает плагины. Выбор, конечно, не велик... но это как раз то, на чем я остановился
Плагин называется plantUML integration. Далее я расскажу подробно этапы установки и настройки, т.к. на мой взгляд, не все из них являются интуитивно понятными:
Сначала все просто: идем в File->Settings->Plagins. Вбиваем в строку поиска plantUML, устанавливаем, перезагружаем ide. И видим, что справа появилась вкладка plantUML

Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 2220
Размер:	237.2 Кб
ID:	4757

Ок. Но этого мало. Нужно установить скачать и установить Graphviz под вашу операционную систему, иначе будет ругаться
У меня была Windows... Но и этого мало. В настройках вкладки plantUML (там всего три пункта: Delay, Cache Size и Graphviz dot executable) в последнем пункте нужно указать путь к dot.exe из каталога Graphviz/bin/
У меня это
E:/ProgramFiles/Graphviz2.38/bin/dot.exe
Собственно, можно приступать к построению диаграмм. Для построения диаграмм в plantUML используется специальный язык разметки DOT.
CSS
1
2
3
4
5
@startuml
 
Profile -- Class10
 
@enduml
Это не сложно и для меня легче описать что-то на языке дот, чем тыкаться в визуальном редакторе ArgoUML. В сети я нашел подробную инструкцию на русском (чего сам не ожидал!) языке.
Пожалуй все,
А, ну да. plantuml не умеет строить диаграммы по исходному коду, в ч-сти по и/к Джанго. Но собственно для меня это и не было обязательно

Так же предлагаю полезные ссылки по теме:
PS: Для переноса полей с джанго накидал простенькую регулярку

\= [^\n]+
По ней в np++ удаляю matches, остаются только названия полей. Остается только paste в dot-код
Метки plantuml, pycharm, uml
Размещено в Django
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    "покупать за 12к" https://yadi.sk/i/_XAxNUzd3Z4zyB Это проф. версия с подпиской на год и фолбэк версией 2018.1
    Даже передать тебе не смогу это чувство. Как будто с трехколесного велосипеда сел на Мазду ЦэИкс7 все красиво, удобно, окупилось за неделю...
    Скринить суперские диаграммы не буду, понимаю что и так травмирую психику...
    Запись от sabrus размещена 11.07.2018 в 19:51 sabrus вне форума
 
Новые блоги и статьи
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru