Object-oriented software engineering : practical software development using UML an java - Lethbridge,Timithy C. (McGraw-Hill, 2005)