Java software solution : foundations of program design - John Lewis (Pearson - Addison Wesley, 2005)