Table of Contents
Refactoring Techniques and Tools
Rough Schedule
Outline of Morning
Software Maintenance
The Lie(aka: The Waterfall Model)
Reality“Build one to throw away.” - Fred Brooks
What’s Hard?
Evolutionary Software Development“Grow, don’t build software.” - Fred Brooks
Definitions
Definition of Refactoring
A Simple Refactoring
A Complex Refactoring
Where Refactorings Come From
Barriers To Refactoring (1)
Barriers to Refactoring (2)
Consequences of not Refactoring
Outline of Talk
Tactics of Refactoring
Refactorings
Add Entity Refactorings
Remove Entity Refactorings
Rename Entity Refactorings
Types of Method Renaming
Move Entity Refactoring
Sub-method Refactorings
Refactoring Smalltalk
Using Standard Tools
Refactoring Scripts
Design of a Refactoring Tool
Outline of Talk
Refactoring Strategies (I)
Design Patterns
Design Patterns
Example of Pattern Refactoring
Example (II)
Example (III)
Refactoring Strategies (II)
Duplicate Code
Duplicate Code - fix
Large Methods
Large Methods - fix
Utility Methods
Feature Envy
Large Classes
Large Classes - fix
Instance variables only used sometimes
Co-occurring Parameters
Co-occurring Parameters - fix
Nested Conditionals
Nested Conditionals - fix
Refactoring Strategies (III)
Extend then Refactor
Refactor then Extend
Debug then Refactor
Refactor then Debug
Refactor to Understand
Integrating refactoring (1)
Integrating Refactoring (2)
Integrating Refactoring (3)
Integrating Refactoring (4)
Conclusions
Papers and Web Sites
More Web Sites
|