The ReverseAndReengineeringTaxonomy defines *reengineering* as: _the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form._ It is often presented as consisting of three steps, involving * ReverseEngineering -> ReStructuring -> ForwardEngineering ---- This definition is not very precise and restrictive: as a result, even ProgramCompilation fits in. It would be more accurate to insist that the _new form_ is at the same or a higher level of abstraction as the original subject system -- conform the ReStructuring definition in which the level of abstraction remains the same. -- ArieVanDeursen, 04 Aug 2002 ---- Relevant reengineering topics: * AutomaticRetargeting * SoftwareRenovation * ProgramRefactoring * ReengineeringPatterns * ExchangeFormats ---- Resources: * ReengineeringForum * CSMR * WCRE * ReengineeringMailingList * BadHonnefReengineeringWorkshop ---- The US DOD maintains all sorts of info at http://www.stsc.hill.af.mil/RENG/, including a [[http://www.stsc.hill.af.mil/RENG/v3-1-6.pdf][Software Reengineering Assessment Handbook]], a tool evaluation methodology, and various tool descriptions. Sometimes a bit outdated (viz. dealing with Y2K extensively), sometimes very interesting. -- ArieVanDeursen, 17 September 2002. ---- E. J. Byrne (_A Conceptual Foundation for Software Re-Engineering_, ICSM 1992, pp. 226-235) has proposed a model for reengineering distinguishing three steps: 1 ReverseEngineering 1 ReStructuring 1 ForwardEngineering which he visualizes using the following figure: http://www.program-transformation.org/twiki/bin/viewfile/Transform/ReEngineering?rev=&filename=byrne.gif ---- The SEI _Horseshoe Model_ is similar to Byrne's model, and takes a SoftwareArchitecture perspecitve on reengineering: http://www.sei.cmu.edu/reengineering/Horseshoe.gif See http://www.sei.cmu.edu/reengineering/ ---- CategoryReengineeringPages | CategoryReengineeringWiki | Contributions by ArieVanDeursen