This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Gardening Your Architecture, Part 2: Reengineering and Rewriting
September/October 2011 (vol. 28 no. 5)
pp. 21-23
Frank Buschmann, Siemens Corporate Technology
Reengineering and rewriting are two common approaches for improving system quality—in addition to refactoring, which the last installment of this column explored. Reengineering is a systematic approach to evolve existing software to exhibit new behavior, features, and operational quality. Refactoring and reengineering aren't the same, and they're also different from rewriting—the most radical change—which involves wiping the slate clean and starting over.

1. F. Buschmann, "Gardening Your Architecture, Part 1: Refactoring" IEEE Software, vol. 28, no. 4, 2011, pp. 92–94.
2. S. Demeyer, S. Ducasse, and O. Nierstrasz, Object-Oriented Reengineering Patterns, Morgan-Kaufmann, 2002.
3. P. Clements, R. Kazman, and M. Klein, Evaluating Software Architectures, Addison-Wesley, 2002.

Index Terms:
refactoring, reengineering, rewriting, functional quality, developmental quality, operational quality, software, software engineering
Citation:
Frank Buschmann, "Gardening Your Architecture, Part 2: Reengineering and Rewriting," IEEE Software, vol. 28, no. 5, pp. 21-23, Sept.-Oct. 2011, doi:10.1109/MS.2011.97
Usage of this product signifies your acceptance of the Terms of Use.