Focuses on the practice of designing objects as integral members of a community where each object has specific roles and responsibilities. This work includes the practices and techniques of Responsibility-Driven Design, and show how to apply them as you develop modern object-based applications. It is suitable for software designers and students.