Refactoring: Improving the Design of Existing Code (Object Technology Series (1999)

by M Fowler