Инженерный анализ диаграммы последовательности

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

27
задан Sean 2 October 2012 в 22:33
поделиться

10 ответов

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

9
ответ дан Steve Hanov 28 November 2019 в 05:23
поделиться

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

0
ответ дан Bharat Jayaraman 28 November 2019 в 05:23
поделиться

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

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

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

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

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

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

0
ответ дан Tony 28 November 2019 в 05:23
поделиться

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

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

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

1
ответ дан aaron 28 November 2019 в 05:23
поделиться

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

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

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

Есть бесплатный 30-дневный доступна загрузка оценки

1
ответ дан Richard 28 November 2019 в 05:23
поделиться

JTracert больше не выпускается. На месте они рекомендуют http://www.jsonde.com/

6
ответ дан RAbraham 28 November 2019 в 05:23
поделиться

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

Это плагин для Eclipse, позволяющий вам:

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

Это на Github и есть также веб-сайт проекта

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

10
ответ дан Sean 28 November 2019 в 05:23
поделиться

Смотрите на http://www.maintainj.com

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

1
ответ дан ralf 28 November 2019 в 05:23
поделиться

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

.
0
ответ дан 28 November 2019 в 05:23
поделиться

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

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

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

3
ответ дан 28 November 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: