Como desenvolver GUIs de forma organizada?

Boa Tarde

Venho trabalhando em um sistema a cerca de 1 mês e um grande problema que sempre tenho é com o desenvolvimento da GUI.
Meu problema não é exatamente com a parte criativa, mas sim a modelagem.

Seguem minhas dúvidas:

  • Qual a forma mais organizada de se fazer isso? Com a UML?
  • Eu deveria utilizar diagramas de classe para os forms das telas também?
  • Como validar os dados? Na própria tela ou criando classes separadas?

Obrigado pela atenção, conto com o apoio dos mais experientes. Abraços