Designing flexible object-oriented systems with UML - Richter, Charles (New Delhi Techmedia, 2000)