Ho letto recentemente UML Applied, una specie di documentazione "da corso" della Ariadne Training, ma credo che fosse più interessante quello suggerito da Bruce Eckel nel suo ormai celebre "Thinking In Java": UML Distilled di Martin Fowler e Kendall Scott.

Per quanto riguarda l'argomento Design Patters, puoi dare un'occhiata a questo sito, tanto per cominciare, anche se l'intera Rete è ricca di risorse a riguardo (basta usare un motore di ricerca). Probabilmente, mi dedicherò presto alla lettura di Thinking in Patterns (with Java), sempre di Bruce Eckel, non appena avrò completato il mio apprendistato autonomo su Java.

Ciao!