Reengineering (software)

from Wikipedia, the free encyclopedia

In software development, reengineering (English; in German, for example, "engineering revision") refers to theadaptation of a software system ( computer programs ) with mostly constant functionality, often to improve software quality. A typical motivation when carrying out reengineering is the elimination of weak points with the aim of enabling the implementation of new requirements after the reengineering. Reengineering is also often carried outin connection with porting to another platform .

In the event that no specification or documentation of the software is available when performing a reengineering and this has to be derived from the implementation itself, this process is called reverse engineering , which can thus represent the initial part of a reengineering.

The term refactoring has a similar meaning to reengineering, but in contrast to this designates quality-improving adjustments on a lower level of abstraction, which can be partially automated. Refactoring can therefore be part of reengineering.

Reengineering to improve the software quality is often necessary in order to guarantee the quality and maintainability of software in the long term, since in many cases the software quality dwindles over time due to the many functional adaptations that have been carried out. This is also called software aging.

See also


  • K. Cremer: Graph-based tools for reverse engineering and reengineering , Deutscher Universitäts-Verlag, 2000, ISBN 3-82440-497-4
  • Ch. Bommer, M. Spindler, V. Barr: Software maintenance - basics, management and maintenance techniques , dpunkt.verlag, Heidelberg 2008, ISBN 3-89864-482-0

Web links