Reverse Engineering

Authored by: Hausi A. Müller , Holger M. Kienle

Encyclopedia of Software Engineering

Print publication date:  November  2010
Online publication date:  November  2010

Print ISBN: 9781420059779
eBook ISBN: 9781351249270
Adobe ISBN:

10.1081/E-ESE-120044308

 Download Chapter

 

Abstract

Software reverse engineering is a subfield of software engineering that is concerned with the analysis of an existing software system—often legacy—with the goal to synthesize information about the target system so that certain aspects of it can be reasoned about. System artifacts such as requirements specification, design documents, source code, version histories, documentation, use cases, or execution traces are analyzed with the goal to reveal or synthesize abstractions and to generate visualizations that expose call graphs, subsystem structures, high-level architectures, functional decompositions, code duplications, metrics, and run-time behavior. An important aspect of reverse engineering is that it generates information about the subject system at various levels of abstraction, ranging from code-centric views such as program slices to domain knowledge such as business rules. This synthesized information includes mappings and concept assignments between abstraction layers. Thus, reverse engineering provides valuable input for evolving software systems including activities such as program comprehension, reengineering, or maintenance.

 Cite
Search for more...
Back to top

Use of cookies on this website

We are using cookies to provide statistics that help us give you the best experience of our site. You can find out more in our Privacy Policy. By continuing to use the site you are agreeing to our use of cookies.