Design Patterns: Elements of Reusable Object-Oriented Software
Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series)
Head First Design Patterns
Writing Effective Use Cases
Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))