Software Design - David Budgen (Pearson, 2005)