Reengineering & Reverse Engineering Terminology

 

 
 

The many conflicting uses of terms like reverse engineering, reengineering, restructuring, and design recovery in conference papers and vendor presentations used to contribute to confusion. To straighten out the definition of these terms, the Taxonomy Project of the IEEE-CS Technical Council on Software Engineering (TCSE) - Committee on Reverse Engineering has developed a unified taxonomy of the field.

 That taxonomy, published in IEEE Software in 1990 and now widely cited and quoted, provides these definitions:
 
 

Forward engineering

- "the traditional process of moving from high-level abstractions and logical, implementation-independent designs to the physical implementation of a system."
 
 

Reverse engineering

- "the process of analyzing a subject system with two goals in mind:
(1) to identify the system's components and their interrelationships; and,
(2) to create representations of the system in another form or at a higher level of abstraction."
 
 

Reengineering

- "the examination of a subject system to reconstitute it in a new form and the subsequent implementation of the new form."
 
 

Restructuring

- "a transformation from one form of representation to another at the same relative level of abstraction." The new representation is meant to preserve the semantics and external behavior of the original.
 
 

Redocumentation

- "a form of restructuring where the resulting semantically-equivalent representation is an alternate view intended for a human audience."
 
 

Design recovery

- "a subset of reverse engineering in which domain knowledge, external information, and deduction or fuzzy reasoning are added to the observations of the subject system." The objective of design recovery is to identify meaningful higher-level abstractions beyond those obtained directly by examining the system itself.


These terms are defined within the context of software maintenance:
 
 

Software maintenance

- "modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a changed environment." [ANSI/IEEE Std. 729-1983]


If you are interested in participating in the Taxonomy Project, contact:

 James Cross, Auburn University, Computer Science & Engr, 107 Dunstan Hall, Auburn Univ, AL 36849 USA
+1 334-844-4330; fax +1 334-844-6329; james.cross@eng.auburn.edu

 or

 Elliot Chikofsky, META Group, 75 Lexington St, Burlington, MA 01803 USA
+1 781-272-0049; fax +1 781-272-8464; e.chikofsky@computer.org
 
 
 
 

tcse@computer.org

 TCSE
IEEE Computer Society
1730 Massachusetts Avenue N.W.
Washington, DC 20036-1992
USA

TCSE home page


Feedback (email)
http://tcse.org/revengr --- page updated 7 Feb 2000

 Copyright © 1997,2000 IEEE Computer Society TCSE