Reverse engineering and design recovery: a taxonomy

  title={Reverse engineering and design recovery: a taxonomy},
  author={Elliot J. Chikofsky and James H. Cross},
  journal={IEEE Software},
The key to applying computer-aided software engineering to the maintenance and enhancement of existing systems lies in applying reverse-engineering approaches. However, there is considerable confusion over the terminology used in both technical and marketplace discussions. The authors define and relate six terms: forward engineering, reverse engineering, redocumentation, design recovery, restructuring, and reengineering. The objective is not to create new terms but to rationalize the terms… Expand
Reverse Engineering: Why and How to Reverse Engineer Software
This paper introduces the basic concepts of reverse engineering, clarifies related terms and indicates important reverse engineering approaches, and a particular reverse engineering methodology for re-architecturing legacy applications is introduced and its impact on software engineering is discussed. Expand
Reverse engineering: resolving conflicts between expected and actual software designs
These experiments used a method of reverse engineering, called synchronized refinement, that analyzes a program, describing its behavior in the vocabulary of the application domain and its structure in terms of design decisions, to provide insight into the role of domain knowledge in this type of analysis. Expand
Reverse Engineering : Resolving Con icts between Expected andActual Software
A real-time embedded system was the subject of a series of experiments in reverse engineering. These experiments employed a method of reverse engineering , called Synchronized Reenement, thatExpand
Software Re-engineering: A Technology Maturation St udy
The most quoted definition of software -engineering is “the examination and alteration of a software system to reconstitute it in a new form and the sub sequent implementation of the new form”Expand
Reverse engineering & design recovery: An evaluation of design recovery techniques
  • Jawaria Sadiq, T. Waheed
  • Engineering
  • International Conference on Computer Networks and Information Technology
  • 2011
Software maintenance and reuse has become an important business goal in recent years. Reverse engineering provides a way to achieve this goal by extracting useful information. This extractedExpand
An Assistant for Re-Engineering Legacy Systems
An AI application to one special area in software maintenance-upgmdiig existing software to new technology standards by automating the tedious and knowledgeintensive conversion process. Expand
Instability is the nature of any application. An Application may strive for and helps a business or company for some time (may be 10 or 15 years), during that time it has been corrected, adapted andExpand
A formal approach for reverse engineering: a case study
  • G. Gannod, B. Cheng
  • Computer Science
  • Sixth Working Conference on Reverse Engineering (Cat. No.PR00303)
  • 1999
This paper presents an approach to reverse engineering that combines the use of both informal and formal methods and describes a case study project involving the reverse engineering of a mission control system used by the NASA Jet Propulsion Laboratory to command unmanned spacecraft. Expand
New Frontiers of Reverse Engineering
An overview of the field of reverse engineering is presented, main achievements and areas of application are reviewed, and key open research issues for the future are highlighted. Expand
A Two-Phase Approach to Reverse Engineering Using Formal Methods
  • G. Gannod, B. Cheng
  • Computer Science
  • Formal Methods in Programming and Their Applications
  • 1993
This paper presents a two-phase approach to reverse engineering, the results of which can be used to guide the re-implementation of an object-oriented version of the system. Expand


Design recovery for maintenance and reuse
The author explains the concept of design recovery, proposes an architecture to implement the concept, illustrates how the architecture operates, describes progress toward implementing it, and compares this work with other similar work such as reverse engineering and program understanding. Expand
On reverse engineering
  • M. M. Rekoff
  • Computer Science
  • IEEE Transactions on Systems, Man, and Cybernetics
  • 1985
A reverse engineering method is described that is based on the premise that a complex hardware system can be characterized as a hierarchical structure and the key feature of this method is that when it is applied to a specific level in the hardware structural hierarchy, it is used to uncover the internal particulars of a specific item of that level. Expand
Design Recovery for Main- Chikofsky is an associate editor-inchief of tenance and Reuse Complter lEl% Sofhuar, vice chairman for membership pp. 3649. of the Computer Society's Technical Commit- 3
  • Guide Pub. tee on Software Engineering, president of the GPP-208, Guide Int'l Corp
  • 1989
Design Recovery for Main- Chikofsky is an associate editor-inchief of tenance and Reuse,
  • Complter,
  • 1989
Guide Int'l Corp
  • Guide Int'l Corp
  • 1989
LEtX Trans. Systems, Man, and Cybernetics
  • LEtX Trans. Systems, Man, and Cybernetics
  • 1985
On Reverse Engineering,” technology at Index Technology Corp. and a LEtX Trans. Systems, Man, and Cybernetics, lecturer in industrial engineering and inforMarch-April
  • 1985
Address questions about this article to Chikofsky at Index Technology, 1 Main St, Cambridge, MA 02 142 or to Cross at Computer Science and Engineering Dept
  • Address questions about this article to Chikofsky at Index Technology, 1 Main St, Cambridge, MA 02 142 or to Cross at Computer Science and Engineering Dept
On Reverse Engineering, " technology at Index Technology Corp
  • On Reverse Engineering, " technology at Index Technology Corp