Это распространенная проблема (к сожалению), и опять же, к сожалению, нет простого решения.
Существует много инструментов, которые могут вам помочь (см. Ниже), но это всего лишь помощники, они не решат проблему за вас.
Я обнаружил, что системный подход лучше. На это есть хорошая статья:
Проглатывание слона за 10 простых шагов , о понимании большой недокументированной системы. Речь идет о Perl, но идеи не зависят от языка.
Некоторые инструменты, которые могут помочь:
- Пройти через интересные части в отладчике (например, отладчик Eclipses)
- Используйте Eclipse «Иерархия вызовов» и «Найти ссылки», чтобы понять, какая часть кода использует, что
- Запускать тесты с простыми входными данными, понимать, что они производят
- Запишите в код javadocs, документируя то, что вы нашли, возможно исправляя существующие документы
- Используйте инструменты для визуализации зависимостей классов. Я удалил JDepend с некоторым успехом; Есть много других.