Table of contents : 1. What Is Software Design? 2. The Paradigm of Object Orientation and Beyond 3. Essentials of Object-Oriented Design 4. Design of Methods 5. Design of Objects 6. Software Modeling Languages and Tools 7. Design of Larger Software Elements 8. Software Design Patterns 9. Software Architecture and Architectural Views 10. Design Case Studies