Обратное проектирование диаграммы последовательности

StackOverflow https://stackoverflow.com/questions/87137

Вопрос

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

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

Любая помощь очень ценится!!!!!!

Это было полезно?

Решение

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

Другие советы

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

Это плагин для Eclipse, который позволяет вам:

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

Это включено Гитхаб а еще есть веб-сайт проекта

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

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

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

Кстати, я автор MaintenanceJ.

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

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

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

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

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

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

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

Доступна бесплатная 30-дневная ознакомительная загрузка.

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

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

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

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

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

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

Я уверен, что по приведенному выше вопросу MaintenanceJ даст лучшее представление.Спасибо, Кришна М.М.

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

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

http://www.zanthan.com/ajm/sequencev7/sequence.jar

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

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

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

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

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

Но похоже, что это бесплатно только в течение года, а затем стоит 250 долларов в год.Облом.


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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top