Uno potrebbe essere Design Patterns: Elements of Reusable Object-Oriented Software, ma ce ne sono molti altri.
Inoltre, come suggerito da homerbit un buon studio dell'UML non può che portare dei considerevoli vantaggi nello sviluppo delle applicazioni.