Когда я работаю с проектом с открытым исходным кодом / базой кода, я получаю высокоуровневое представление и сосредотачиваюсь на основном коде / логике, проверяя имена пакетов и структуру. Затем я обычно определяю, как работает API, просматривая любой пример кода / документации, содержащихся в проекте. Если мне все еще понадобится дополнительная помощь, я составлю несколько диаграмм наследования, выведу интересные классы, в которые, возможно, потребуется внести существенные изменения, и попытаюсь найти больше примеров кода, используемого в другом месте.
Я предвзят и пользуюсь нашим недавно запущенным Architexa Eclipse-плагином для выполнения вышесказанного. Я уверен, что есть другие, которые делают что-то подобное.