Per la cronaca,l'UML va fatto prima...è uno dei paradigmi della programmazione a oggetti,creare il modello delle classi,dei casi d'uso...etc etc...
Io farei,per prendere un bel voto,un bel software che segua il pattern MVC,enfatizzando la possibilità di riuso e il massimo grado di disaccoppiamento tra le classi dell'applicazione.
Veditelo un pò questo MVC,è un pò complesso,ma una volta imparato capisci davvero come programmare in Java...
Poi naturalmente dipende dalla tua applicazione...