Refactoring Techniques and Tools

3/21/99


Click here to start


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

Author: Don Roberts

Email: brant@cs.uiuc.edu,droberts@cs.uiuc.edu

Home Page: http://st-www.cs.uiuc.edu/~brant/RefactoringBrowser/