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