Practical Analysis for Refactoring - Donald Bradley Roberts (1999)