UML for Java programmers - Martin, Robert C. (Robert C. Martin series, 2003)