HomePage
WikiBlog
RecentChanges
LikePages
BackLinks
FindPage

Blog entries

2010-02-16: RSS-Feeds für ricardo.ch-Suchergebnisse

2010-02-15_spam: Disabling public editing

2010-02-15: Show Processes waiting for I/O in Linux

2010-02-13: Sony Vaio P in der Schweiz...

2009-06-17: Wie man plötzlich zum Mörder wird (weil's einfach besser 'rüberkommt!)

2008-05-18: Recreating SSL keys for stunnel, lighttpd and dovecot following the Debian-OpenSSL debacle

2008-02-12: Patch for aoeserver in Kernel 2.6.24

2008-02-07: Usage of open-iscsi on Linux

2008-02-05: Linux and Windows working in harmony with iSCSI

2008-01-19: Linksys PAP2 FXS Port Impedance

< July, 2010 >
Sun Mon Tue Wed Thu Fri Sat
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Introduction To Refactoring

An Introduction To Refactoring

Abstract

A lot of existing code needs to be maintained. But because code complexity increases with the maintenance and age of the software, adding features or fixing bugs may not be possible without changing the inner workings. Refactoring is a method facilitating these changes. This paper will show how to use refactoring in conjunction with unit testing to improve the design of existing code.

After a short introduction to unit testing, on the basis of an example, I will explain when, how and where refactoring can successfully be applied. Hindering issues will be considered as well.

The third part of the paper is devoted to a short presentation of some tools on the market today that support refactorings and tools that help with unit testing.

Paper

  • PDF version
  • HTML version

Presentation

  • HTML version
  • OpenOffice version

Getting to the source

See http://variant.ch/cvs/GenieLogiciel/refactoring/ for CVS. The example application is the same as in Martin Fowler's book "Refactoring - Improving The Design Of Existing Code".

For refactoring the presented source code yourself, you can download a package with all Java source files.

If you want the full package with all sources (Latex, Java etc.), you can get it as well.

Links

These links provide additional information, the paper has its own bibliography.

  • Homepage of Refactoring http://www.refactoring.com/
  • Draft of the Book Refactoring to Patterns http://industriallogic.com/papers/rtp017.pdf
  • Example of Fowler's Book in Python http://www.hiper.com.br/python/refactor/index.html
  • JUnitDoclet http://www.junitdoclet.org/
  • Lehman's Theory http://www.salon.com/tech/feature/2002/04/08/lehman/
  • Nguyen Xuan Huy: Software Engineering http://www.netnam.vn/unescocourse/se/software.htm
  • Core J2EE Patterns http://java.sun.com/blueprints/corej2eepatterns/Patterns
  • Writing Small Software (very interesting) http://www.fefe.de/dietlibc/diet.pdf (also in German)

License

Copyright (c) 2003 Nicola Fankhauser

Permission is granted to copy, distribute and/or modify these documents under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.


Last edited on 30.04.2003 9:07.


View Source | PageHistory | Diff | PageInfo

© Copyright 2004 - 2006 Nicola Fankhauser. All Rights Reserved.