Bunny, para explorar o máximo do POO (Programação Orientada a Objeto) em um projeto eu acho que é preciso primeiro criar uma modelagem do software que deseja construir, caso não a tenha. Lembro-me disso ao ler determinados códigos fonte, procurando entender o emaranhado de código que o programador criou. Certos códigos me supreeendem pela quantidade de funções/procedimentos atômicos. No meu caso, sinto falta ver um diagrama de fluxos (flowchart) para ter uma visão geral.
Encontrei alguns livros neste repositório free-educa, contudo, acho que nenhum traz no título o termo modelagem de software.