An introduction to object-oriented analysis and design with uml and the unified process - Schach, Stephen R. (McGraw-Hill, 2004)