UML and the Unified Process: practical object-oriented analysis and design