Форум Сообщества Аналитиков
Общий раздел => ПО Аналитика => Тема начата: Humbert от 22 Июля 2016, 13:26:53
-
Добрый день!
Есть система , написанная на Python более-менее документированная для целей разработки - то есть комментарии есть, есть текстовые описания. Но есть необходимость сделать документацию для передачи, то есть для внешней организации. Очень не хотелось бы такую документацию писать совсем с нуля, а хочется попытаться вытащить все что можно из кода - как минимум диаграммы классов, в идеале еще бы какие - нибудь еще поведенческие диаграммы.
Совершенно не жду, что это это будет средство, которое сформирует все по кнопке, скорее жду, что это будет некоторая среда, которая будет позволять получать заготовки диаграмм из кода.
Если кто сталкивался с такими системами, хотелось бы узнать об их возможностях
-
Enterprise Architect может делать реверс из файлов на питоне. Поведенческие диаграммы кажется возможны для диаграмм последовательности, но нужно подключаться к исполняемому коду (могу ошибаться). Могу сделать реверс для вас.
-
Спасибо !
В результате исследований обнаружил, что диаграммы классов по коду (в том числе и питоновскому) строят почти все - и среды разработчика, и средства аналитика (в том числе и EA).
Visual Paradigm умеет строить sequence diagramm , но почему-то только по java
https://www.visual-paradigm.com/support/documents/vpuserguide/276/277/39788_javatosequen.html
В EA диаграмму классов построить удалось (довольно неплохую), а вот признаков построения sequence diagramm не обнаружено.
IMHO, для построения поведенческих диаграмм по ОО коду исходников недостаточно (тем более для интерпретаторов типа Python или Perl). Скорее нужно средство типа debugger, который имея исходники может при исполнении программы фиксировать последовательность вызовов, а потом их обрабатывать и строить UML.
EA как то не очень похож на такой продукт...
-
EA как то не очень похож на такой продукт...
Виноват, у EA есть возможность вообще вести полностью разработку в его среде (раздел Analyser). Там и средства отдадки можно настроить. Так что потенциально у EA такая возможность может появится
-
О! И генерация sequence в EA есть!
http://blog.lieberlieber.com/2010/09/22/enterprise-architect-auto-generating-a-sequence-diagram-from-code/
Но питона в списке поддерживаемых языков нет :(
Record executing programs and represent the behavior as a UML Sequence diagram; recording is supported for:
Microsoft Windows Native C
Microsoft Windows Native C++
Microsoft Windows Visual Basic
Microsoft .NET Family (C#, J#, VB)
Sun Microsystems Java
PHP
http://www.sparxsystems.com/enterprise_architect_user_guide/9.0/visual_execution_analyzer/using_the_execution_analyzer.html
-
О! И генерация sequence в EA есть!
Большую работу вы проделали. Кстати с фирмой либерлибер у меня есть контакты, если что. Личные :)
-
Большую работу вы проделали.
Гуглить не мешки ворочать :)
Кстати с фирмой либерлибер у меня есть контакты, если что. Личные :)
Класс!
Я кстати не понял, либерлибер разработали эту функциональность под EA, или только активно используют?
Насколько реально получить в EA поддержку Python самостоятельно, через Sparx или LieberLieber?
С точки зрения спаркса было бы разумно исходники адаптеров на каждую платформу выложить в открытый доступ. Разработчик , попробовав документирование на EA крепко задумается о переходе на кодогенерацию из под EA. Отличный способ расширения клиентской базы.
Вообще идея замечательная - строить sequence по отладочным логам. Документировать тогда можно таким образом - построить ДВИ , расписать основные сценарии, а потом включать рекордер под каждым сценарием, чтобы диаграммы последовательности или диаграммы состояний связывались с пользовательскими сценариями.
Хорошая альтернатива перелопачиванию исходников и расстановке тегов в DOXYGEN . Причем регулируя глубину проработки сценариев и их охват можно получать как документацию для галочки, так и качественную РД для реального последующего использования.
-
При ближайшем рассмотрении идея получать диаграммы последовательности и диаграммы состояний по стеку оказались не лишены недостатков - похоже такая технология применима только для desctop приложений под windows. Под линукс EA ставится только под Wine
http://www.sparxsystems.com/support/faq/enterprise-architect-WINE.html
что вызывает большие сомнения в том, что отладчик и рекордер из под него заработает. А ведь эта идея подразумевает исполнение программы в той же среде, что и сам EA.
А уж если брать варианты со всякими специфические диалекты Linux (типа Astra Linux), то там вообще проблемы гарантированы.
Еще более серьезные проблемы будут в том случае, если приложение серверное. Особенно в архитектуре с тонким клиентом. Его вообще по кнопочке RUN не запустишь.
В идеале было бы сделать рекордер вообще автономным. Чтобы он мог самостоятельно писать в некоторую базу или файл, а в EA его только обрабатывать. А рекордер собирать для отдельный для каждой ОС, заодно можно избавиться от привязки к языку программирования.
-
При ближайшем рассмотрении идея получать диаграммы последовательности и диаграммы состояний по стеку оказались не лишены недостатков - похоже такая технология применима только для desctop приложений под windows. Под линукс EA ставится только под Wine
Под убунтой вроде можно отлаживаться
http://www.sparxsystems.com/support/faq/enterprise-architect-WINE.html
Issue: Debugging fails when using Ubuntu 12.04.
Issue: Source control fails when using Ubuntu 12.04.
Solution: Upgrade to WINE 1.5.7 or greater
Solution: Run the following command "echo 0|sudo tee /proc/sys/kernel/yama/ptrace_scope"
Note: This appears to be a bug in the linux kernel that is shipped with Ubuntu. See Ubuntu Bug Reference for more information. Appears to be fixed in Ubuntu 12.04.1
Правда непонятно, какое приложение при этом можно отлаживать - виндовое или линуксовое . Вайн - это же эмулятор
-
Я кстати не понял, либерлибер разработали эту функциональность под EA, или только активно используют?
Насколько реально получить в EA поддержку Python самостоятельно, через Sparx или LieberLieber?
ЕА построен так, что его можно легко расширять через автоматизацию и MDG технологию. Есть открытый API под разные платформы. Либерлибер по сути делают такую надстройку, которая использует ядро ЕА.
Насколько я понимаю, при желании можно самому такую поддержку организовать. В принципе ЕА открыты для новшеств, но у них работает кумулятивная система. Если наберете как говорится подписей - сделают. Возможно нужно кинуть клич на форуме (http://sparxsystems.com/forums/smf/index.php?action=search2)