Java software Solutions : foundations Of Program design - Lewis, John (pearson, 2007)