Software Methods and Tools

Kenneth M. Anderson <kena@cs.colorado.edu>

Lecture 27: Design and Refactoring

Lecture 27? What happened to Lectures 25 and 26?!?!

Today's Lecture

Credit Where Credit is Due

Software Design (I)

Software Design (II)

Software Design (III)

What is Refactoring

Very Simple Example (I)

Answer: Duplicated Code

Very Simple Example (II)

A Rose is a Rose…

Benefits of Refactoring

Definition of Refactoring

How do you make refactoring safe?

Why should you refactor?

Refactoring: Where to Start?

Bad Smells in Code

The Catalog

Extract Method

Replace Temp with Query

Move Method

Tool Support

Coming Up Next