The first comprehensive book about refactoring, most of this work depends on it. See also the online resources at http://www.refactoring.com, where also an extended online catalog of the refactorings mentioned in the book is found.
Kent Beck shows convincingly how simple programming principle combined make up a great programming process.
This is the book where four people gave the expert knowledge possessed by every programmer a shape - Patterns. It was the first step in a very exciting development.
This book concentrates on the introduction of an iterative, incremental development process which is based on UML techniques and notations for documenting its results and on Patterns for formalizing the steps from analysis to design.
The first decent-length writing on refactoring [Fowler]. Get it at: ftp://st.cs.uiuc.edu/pub/papers/refactoring/opdyke-thesis.ps.Z.
See http://members.pingnet.ch/gamma/junit.htm for an easy introduction to unit testing by the authors of the testing framework JUnit.
Unfortunately to this time only available for the Smalltalk Programming language at http://chip.cs.uiuc.edu/users/brant/Refactory/.
On http://users.vnet.net/wwake/xp/xp0001/index.shtml William Wake walks through a sample session of using unit tests to test an implement an simple User Interface.
See http://c2.com/ppr/wiki/WikiPagesAboutRefactoring, for lots of material in form of jointly edited web pages to which many experts of the area contributed.
A tool licensed under the GPL which allows applying refactorings using a generated UML-diagram interface. Available at: http://users.snip.net/ aseguin/chrisdown.html.
Look at http://www.borland.com.
A very powerful environment written in Java for developing Java applications. It includes features like version control, template driven class generation, auto expansion, incremental obfuscation etc. Available at: http://www.elixirtech.com/ElixirIDE/
The Renamer can be downloaded from http://www.intellij.com. It is mainly useful for finding occurrences of and references to symbols within Java source files and for performing operations such as renaming on them.
The Xref-Speller is actually a front end for the xref program, which allows it to perform operations on the symbols of Java programs with the use of an extracted parse tree. A trial version can be found at: http://www.xref-tech.com.
Much information about the JDK as well as current releases are available at Sun's web site http://www.javasoft.com.
The article features a very convincing introduction to unit testing and covers the extension of the JUnit [Gamma, JUnit] for testing Java Enterprise Beans in the application server environment. Can be found at: http://www.javaworld.com/javaworld/jw-05-2000/jw-0526-testinfect.html.
All documents related to this paper can be found at http://emw.inf.tu-dresden.de/ mh14/refactoring.