Object-Oriented software engineering practical software development using UML and Java - Lethbridge, Timothy.C (Mc-Graw Hill, 2002)