UML and Pattern Applications - Introduction to Object-Oriented Analysis and Design (Third Edition)