Introduction to software engineering design : processes, principles and patterns with UML2 - Fox, Christopher John (Pearson Education, 2007)