The 'reengineering' of software was described by Chikofsky and Cross in their 1990 paper, ''Reverse Engineering and Design Recovery: A Taxonomy'', as "the examination and alteration of a system to reconstitute it in a new form". Less formally, reengineering is the modification of a software system that takes place after it has been reverse engineered, generally to add new functionality, or to correct errors.
This entire process is often erroneously referred to as
reverse engineering; however, it is more accurate to say that
reverse engineering is the initial examination of the system, and reengineering is the subsequent modification.
References
★ Chikofsky, E. and Cross, J., 1990. Reverse Engineering and Design Recovery: A Taxonomy. IEEE Software, 7(1):13-18.
★ Robert S.Arnold: "Software reengineering", IEEE Computer Society Press, 1993
★ Object Management Group,
Knowledge Discovery Metamodel (KDM) 1.0 specification, 2007
External links
★
The Program Transformation Wiki
★
The Architecture-Driven Modernization website at OMG