É quase impossível estender seu projeto java se você não obtiver os pontos de entrada e uma documentação clara do que foi feito e por quê.
FYI: Quando entregamos um projeto a nossos clientes, agora aderimos sistematicamente a um modelo UML, além de java doc e uma documentação impressa. Criamos centenas de visualizações do modelo exibido como diagramas de classes. Adicionamos muitos comentários e explicamos a arquitetura estática, bem como o fluxo de regras e métodos de negócios. Se nossos clientes quiserem pegar o código dele e entregá-lo a outra empresa, será fácil para eles modificar o software existente não apenas no nível da implantação, mas também no nível da arquitetura. Uso poderoso, simples e brilhante de visualizações UML dinâmicas a partir de um único modelo.
Dito isto, conheço muito poucos integradores interessados em fornecer todas essas informações porque, uma vez que o cliente está preso, é melhor não deixá-lo ir. Oferecer um modelo completo e navegação UML dinâmica permitirá que os clientes sejam independentes e, portanto, isso não é bom para a receita comercial. Ainda não entendo por que os grandes bancos ou empresas de telecomunicações são tão ingênuos ao ficar presos pelos integradores e não perguntam o modelo completo na entrega do projeto? O código java ou uma documentação impressa não é suficiente. A documentação impressa é geralmente um processo automático. Não tem valor real extrair informações do código para imprimi-las ou fornecer um PDF.