UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition)