Refactoring Improving The Design Of Existing Code - Fowler M.; Fowler M.; Beck K.; Brant J. & Opdyke J. (Pearson, 2011)