Как в Eclipse можно определить все связи между классами?
Всем доброго времени суток!
Возникла необходимость в поддержке большого стороннего проекта. Проект имеет просто ужасную структуру. И сейчас есть проблема с определением взаимосвязи нескольких классов.
Соответственно вся необходимая информация в Eclipse есть в иерархии вызовов (Call Hierarchy), но проект слишком большой и работать с этим неудобно. Поэтому возникает вопрос, возможно ли в иерархии вызовов отображать не все ветви, а только те, которые связаны с необходимым классом?
Хотя еще лучше бы сразу найти все методы и поля класса A, которые вызывает класс B (т.е. связи нужны только в одну сторону), при этом учитываться должны все ветви, в т.ч. и через другие классы, а не обращения напрямую.
Может есть какие-то сторонние утилиты или плагины?
Если я правильно понял проблему, то могу посоветовать подход, который использую для построения «Модели классов» через UML. Используем UML редактор Enterprise Architect. Создаем в нем модель классов, далее импортируем в нее файлы проекта (поддерживает популярные языки программирования). Далее уже разбираемся с моделью.
Кстати, EA устанавливает синхронизацию с кодом, так что можно проектировать код через модель.
Спасибо за ответ. Но данный вариант не подходит. UML никак не предполагает построения иерархии вызовов методов. Он всего лишь позволяет определить связь между классами, но не на том уровне, на котором требуется. Т.е. если класс A вызывает метод класса B, который в свою очередь вызывает метод класса C, то UML-диаграммы по определению не должны отображать связь между A и C, и тем более показывать имена методов, через которые этот вызов осуществляется.