Подтвердить что ты не робот

Последовательная схема обратного проектирования

Я ищу инструмент, который будет преобразовывать Java в диаграмму последовательности, но также обеспечивает возможность фильтрации вызовов в определенных библиотеках.

Например, IDE Netbeans выполняет фантастическую работу, но включает в себя все вызовы String или Integer, которые загромождают диаграмму до такой степени, что она непригодна для использования.

Любая помощь приветствуется!!!!!!!

4b9b3361

Ответ 1

Я думаю, jtracert - это то, что вы ищете. Он генерирует диаграмму последовательности из запущенной программы Java. Кроме того, поскольку его вывод представляет собой текстовое описание диаграммы (в форматах нескольких популярных инструментов SD), вы можете использовать grep для фильтрации только для интересующих вас классов.

Ответ 2

Попробуйте MaintainJ. MaintainJ генерирует диаграммы последовательности во время выполнения для прецедента. Он предоставляет несколько способов отфильтровывать нежелательные вызовы. Да, фильтрация нежелательных вызовов является наиболее важной функцией, необходимой в инструментах генерации диаграмм последовательности. Кроме того, MaintainJ обеспечивает удобный интерфейс для изучения диаграммы и поиска вызовов в одном случае или в разных вариантах использования.

Просмотрите демонстрационное видео , чтобы получить быстрый обзор.

Я, кстати, автор "MaintainJ".

Ответ 3

Я считаю, что идеальным инструментом для решения вашей проблемы является Diver: динамические интерактивные представления для обратной инженерии. Он предоставляет как статические, так и динамические диаграммы последовательности и ищет решения всех ваших требований из вашего вопроса.

Это плагин для Eclipse и позволяет вам:

  • Легко отслеживать ваши программы Java
  • Визуализировать ваши функции выполнения программ
  • Отфильтруйте свои следы, чтобы сделать их более компактными
  • Отфильтруйте вашу среду IDE на основе того, что происходит во время выполнения
  • Посмотрите, какой код работал в ваших редакторах исходного кода.

Он находится на Github, а также есть веб-сайт

Полное раскрытие: я являюсь текущим проектом для Diver

Ответ 4

JTracert теперь прекращено. На месте они рекомендуют http://www.jsonde.com/

Ответ 5

У меня есть инструмент, который точно соответствует вашим требованиям. Проверьте это

http://sourceforge.net/projects/javacalltracer/

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

Ответ 6

Архитектор предприятия из Sparx утверждает, что способен перепроектировать код Java, включая генерации диаграмм последовательности - см. этот раздел руководство пользователя

Похоже, что он может записывать сеанс отладки, а затем вы создаете диаграмму последовательности из этого

Я не пробовал (хотя использовал EA в качестве инструмента моделирования), поэтому ymmv!

Существует бесплатная ознакомительная версия для 30 дней.

Ответ 7

Взгляните на http://www.maintainj.com

Он не знает, может ли он фильтровать вызовы библиотеки, но имеет разумный графический интерфейс и, кажется, трассирует даже очень большие приложения.

Ответ 8

Heatlamp (http://www.jmolly.com/heatlamp/) был разработан именно для этой цели.

Он генерирует интерактивные (и печатаемые) диаграммы из запуска Java-кода. Вы можете указать фильтры для описания того, какие классы, пакеты и методы отслеживать. Вы также можете искать, фильтровать и сворачивать вызовы после визуализации диаграммы для дальнейшего уменьшения диаграммы последовательности.

Отказ от ответственности: я автор Heatlamp.

Ответ 9

MaintainJ - действительно замечательный инструмент. Недавно я начал использовать с MaintainJ с моим приложением, это дает больше комфорта с моим использованием, чтобы понять мою систему на основе последовательности Maintainj и диаграмм UML.

Я уверен, что в вышеупомянутом вопросе MaintainJ даст лучшую идею. Благодаря, Кришна М.М.

Ответ 10

Я только начал использовать функцию записи диаграммы последовательности в Sparx Systems Enterprise Architect. Он отлично работает для С#. Вы можете создавать фильтры по классам и по методу. Я на самом деле пытаюсь выяснить, можно ли отфильтровать весь пакет. Существует флажок для автоматического исключения внешних модулей (например,.NET Framework), которые помогают в declutter. YMMV для Java, но я думаю, что их поддержка (и документация) для Java в целом лучше (больше примеров), чем для .NET.

Ответ 11

Вот и дополните ответ Asgeir. Вот ссылка, которую я нашел.

http://www.java2s.com/Code/Jar/s/sequence.htm

Запустите из командной строки... "java -jar sequence.jar"... это приложение Java с графическим интерфейсом.

Раздел справки гласит: SEQUENCE - это программа для создания диаграмм последовательности UML. В отличие от большинства подобных программ, вы фактически не рисуете диаграмму. Вместо этого вы пишете текстовое описание вызовов методов, которые вы хотите построить, и макет рассчитывается и рисуется автоматически.

Таким образом, этот инструмент ничего не реконструирует, но я вижу, как он может быть полезен, если вы хотите быстро составить схему с нуля. Похоже, он был построен в 2002 году, и я думаю, что сейчас, возможно, есть лучшие инструменты.

Вот еще один подобный инструмент здесь:http://sdedit.sourceforge.net/example/index.html

Ответ 12

Это выглядит как действительно хороший инструмент: http://www.architexa.com/learn-more/sequence-diagrams

Но он выглядит как бесплатный только год, а затем его 250 долларов в год. Облом.


Я нашел плагин ModelGoon полезным. Это немного ограничено, потому что вы выбираете один метод в качестве отправной точки для диаграммы последовательности, и он отображает только вызовы, которые делает этот метод (поэтому, чтобы перейти на более глубокий уровень, вам нужно создать другую диаграмму.)

http://www.modelgoon.org/?page_id=53

Ответ 13

JIVE (www.cse.buffalo.edu/jive) построит диаграмму последовательности из выполнения программы Java. Он имеет функцию фильтра исключения, позволяющую исключать объекты, принадлежащие определенным классам или пакетам. JIVE может рисовать диаграммы последовательности для многопоточной реализации Java-программы. Он также имеет возможность компактных больших диаграмм как по горизонтали, так и по вертикали, под руководством пользователя.