Software Design. - Budgen, David (Pearson, 2011)