Refactoring: A Program Restructuring Aid In Designing Object-Oriented Application Frameworks

New Image

Design is hard. The design of reusable software is especially hard. Reusable software usually is the result of many design iterations. Many of these iterations occur after the software has been reused, and the resulting changes affect not only the design of the reusable software, but also the design of other software that is using it. Making software easier to change makes subsequent design iterations easier, and makes the software more reusable.