The Art of Objects: Object-Oriented Design and Architecture