Bom dia!
Sempre tive algumas dúvidas com UML, mas ao invés de mantê-las, quero agora começar a desmistificar esse assunto. 
Gostaria de fazer a modelagem para um programa, onde possuo a entidade Projeto e trabalho principalmente em cima dela (com buscas de projetos, cadastro de novos projetos, etc.)
A modelagem mais “natural” que cheguei é a da imagem abaixo (desculpem não está perfeito, mas é para ter uma idéia da minha dúvida):

A abordagem acima parece ser a correta, ou seja, é ao pé da letra. A entidade Cliente têm um ou vários objetos Projetos. Por isso, teria que ter um List deles.
No entanto, o maior empecilho é ter que carregar uma lista de objetos Projeto para cada Cliente que eu consultar. Na hora de montar o DAO, ia puxar, o Cliente, depois a lista de projetos dele e por fim o projeto em si. E o foco do programa não é esse. Ou seja, não é centrar buscas e seu funcionamento em cima da entidade Cliente. A entidade Cliente, acredito eu, funcionaria mais como um atributo necessário, mas não essencial (podendo até ser um String, já que não têm nenhuma utilidade ao foco do programa em si)…
Pensando dessa forma, devo levar ao pé da letra o relacionamento entre classes, ou posso modelar de acordo com a imagem abaixo?

A modelagem em UML depende da abordagem que quero focar, mudando o relacionamento conforme as necessidades do meu programa?
Fico obrigado a seguir ao “pé da letra” ou de acordo com o foco do meu programa?
