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