Object-oriented software engineering : practical software development using UML and Java - Lethbridge, Tmothy C. (McGraw-Hill, 2005)