У нас есть кодовая база Java, которая стала слишком большой для одного монолитного JAR (более 5000 классов). Одна из задач, которую мы изучаем, - сколько усилий потребуется, чтобы разбить этот единственный JAR на более мелкие компоненты с контролируемыми зависимостями между ними. Однако довольно сложно взглянуть на большой пакет кода и быть уверенным, что вы находите лучшие точки разделения без некоторого анализа.
Существуют ли хорошие инструменты для проверки и визуализации межпакетных зависимостей? Учитывая это, у нас был бы набор предлагаемых точек отсечения, с которых мы могли бы начать разделение кода.
Например, в дни до Netbeans и Eclipse (и на другой работе) мы использовали TogetherJ и TogetherEnterprise. У них была возможность провести статический анализ пакета и нарисовать диаграмму UML. Такое поведение было бы оптимальным, но одной этой функции недостаточно, чтобы оправдать затраты.