The Object primer:the application developer's guide to object orientation and the uml - Ambler, Scott W (CUP, 2001)