Reverse Engineering: A Roadmap
#1


ABSTRACT
By the early 1990s the need for reengineering legacy systemswas already acute, but recently the demand has increased significantlywith the shift toward web-based user interfaces.The demand by all business sectors to adapt their informationsystems to the Web has created a tremendous need formethods, tools, and infrastructures to evolve and exploit existingapplications efficiently and cost-effectively. Reverseengineering has been heralded as one of the most promisingtechnologies to combat this legacy systems problem.This paper presents a roadmap for reverse engineering researchfor the first decade of the new millennium, buildingon the program comprehension theories of the 1980s and thereverse engineering technology of the 1990s.
KeywordsSoftware engineering, reverse engineering, data reverse engineering,program understanding, program comprehension,software analysis, software evolution, software maintenance,software reengineering, software migration, software tools,tool adoption, tool evaluation.
1 INTRODUCTION
The notion of computers automatically finding useful informationis an exciting and promising aspect of just about anyapplication intended to be of practical use [55]. A decadeago, following up on the successes of the early CASE tools,Chikofsky and Cross introduced a taxonomy for reverse engineeringand design recovery [20]. They defined reverse engineeringto be “analyzing a subject system to identify its currentcomponents and their dependencies, and to extract andcreate system abstractions and design information.”Over the past ten years, researchers have produced a numberof capabilities to explore, manipulate, analyze, summarize,hyperlink, synthesize, componentize, and visualize softwareartifacts. These capabilities include documentation in manyforms and intermediate representations for code, data, and architecture.Many reverse engineering tools focus on extractingthe structure of a legacy system with the goal of transferringthis information into the minds of the software engineerstrying to reengineer or reuse it. In corporate settings, reverseengineering tools still have a long way to go before becomingan effective and integral part of the standard toolset thata typical software engineer uses day-to-day.The vitality of the field has been demonstrated by three annualconferences that helped to spark interest in the field andshape its ideas and focus: the Working Conference on ReverseEngineering (WCRE), the International Workshop onProgram Comprehension (IWPC), and theWorkshop on ProgramAnalysis for Software Tools and Engineering (PASTE).This paper presents a roadmap for reverse engineering researchfor the first decade of the new millennium, buildingon the program comprehension theories of the 1980s and thereverse engineering technology of the 1990s. We describe selectedresearch agendas for code and data reverse engineering,as well as research strategies for tool development andevaluation. Investing in program understanding technologyis critical for the software and information technology industryto control the inherent high costs and risks of legacy systemevolution. Reverse engineering is a truly exciting field ofresearch that is ready to be taught in computer science, computerengineering, and software engineering curricula [68].In summarizing the major research trends, accomplishments,and unanswered needs, this paper is divided into four majorparts. Section 2 concentrates on code reverse engineering,which has been the main focus of attention in this fieldover the past decade. In contrast, data reverse engineering,the topic of Section 3, is not as well established, but is expectedto gain prominence in the new millennium. Section 4explores the spectrum of reverse engineering tools. Section 5deals with the question of why software reverse engineeringtools are not more widely used, and Section 6 concludes thepaper.
2 CODE REVERSE ENGINEERING
In current research and practice, the focus of both forwardand reverse engineering is at the code level. Forward engineeringprocesses are geared toward producing quality code.The importance of the code level is underscored in legacysystems where important business rules are actually buried inthe code [86]. During the evolution of software, change is appliedto the source code, to add function, fix defects, and enhancequality. In systems with poor documentation, the codeis the only reliable source of information about the system.As a result, the process of reverse engineering has focusedon understanding the code.Over the past ten years, reverse engineering research has produceda number of capabilities for analyzing code, includingsubsystem decomposition [13, 86], concept synthesis [8], design,program and change pattern matching [16, 31, 59, 76],program slicing and dicing [89], analysis of static and dynamicdependencies [80], object-oriented metrics [19], andsoftware exploration and visualization [65]. In general, theseanalyses have been successful at treating the software at thesyntactic level to address specific information needs and tospan relatively narrow information gaps.However, the code does not contain all the information thatis needed. Typically, knowledge about architecture and designtradeoffs, engineering constraints, and the applicationdomain only exists in the minds of the software engineers [3].Over time, memories fade, people leave, documents decay,and complexity increases [46]. Consequently, an understandinggap arises between known, useful information andthe required information needed to enable software change.At some point, the gap may become too wide to be easilyspanned by the syntactic, semantic, and dynamic analysesprovided by traditional programming tools.Thus when we focus only at the low levels of abstraction, wemiss the big picture behind the evolution of a software system[42]. There is a need to focus future research on the moresignificant levels of the business processes and the softwarearchitecture. For example, knowledge of software architecturefrom multiple user perspectives is needed to make largescale,structural changes [91], and the capability to performarchitecture reconstruction is becoming increasingly important[3]. Developers need information about the impacts ofpotential changes. Managers need information to assign andcoordinate their personnel. If the information to create thisknowledge can be maintained continuously, we could generatethe required perspectives on a continuous basis withoutcostly reverse engineering efforts.Because such analyses are rarely performed today, currentsystem evolution efforts often experience a time of crisis atwhich the gap between desired information and available informationbecomes critical. At that point reverse engineeringtechniques are inserted in a “big bang” attempt to regain usefulunderstanding and insight. The structural, functional, andbehavioral code analyses [58], however, require intensive humaninput to construct from scratch. These analyses are difficultto interpret, and are costly efforts with high risk.
Continuous Program Understanding
To avoid a crisis, it is important to address information needsmore effectively throughout the software lifecycle. We needto better support the forward and backward traceability ofsoftware artifacts. For example, in the forward direction,given a design module, it is important to be able to obtainthe code elements that implement it. In the backward direction,given a source or object file, we need to be able to obtainthe business rule to which it contributes. In addition it is importantto determine when it is most appropriate to focus theanalysis at different levels of abstraction [7, 43].For understanding purposes, traceability is especially important.We need to be able to take a pattern of change, suchas updating a tax law, and map this law explicitly into softwarestructures. Part of program comprehension is to reconstructmappings between the application and implementationdomains [14]. Thus, to ease long-term understanding, thesemappings must be made explicit, recorded, reused, and updatedcontinuously. The vision is that reverse engineeringwould be applied incrementally, in small loops with forwardengineering, rather than as a desperate attempt at resurrectinga poorly understood system.Several research issues, formulated as questions, need to beaddressed to enable this capability for “continuous programunderstanding” [90].• What are the long-term information needs of a softwaresystem?• What patterns of change do software systems undergo?• What mappings need to be explicitly recorded?• What kind of software repository could represent the requiredinformation?• What are the requirements of tool support to produceand manipulate the mappings?• How can this support coexist with traditional, codedominatedtools, users, and processes?



download full report
http://googleurl?sa=t&source=web&cd=1&ve....1.43.4982%26rep%3Drep1%26type%3Dpdf&ei=mM6STZaPNsnCcYuAqYkH&usg=AFQjCNEDR6AinVPpkf1RmkxP4oz-Q5CrTg&sig2=VbEnQgp9HpDuQZsbL1f0_Q
Reply
#2
to get information about the topic reverse engineering full report,ppt and related topic refer the page link bellow

http://studentbank.in/report-reverse-engineering--13912

http://studentbank.in/report-reverse-eng...ull-report

http://studentbank.in/report-reverse-eng...al-devices

http://studentbank.in/report-reverse-eng...-nanoscale

http://studentbank.in/report-reverse-eng...-a-roadmap
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: c reverse engineering, seminar on reverse engineering, powerpoint themes for reverse engineering seminar, training roadmap for managers, java uml reverse, how reengineering, reverse engineering project topics,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  Particle Swarm Optimization Algorithm and Its Application in Engineering Design Optim computer science crazy 3 5,472 03-05-2013, 10:28 AM
Last Post: computer topic
  mini Project Ideas & Seminar Topics for CS & IT Engineering computer science crazy 9 34,024 13-03-2012, 09:59 AM
Last Post: seminar paper
  REVERSE ENGINEERING INVESTIGATING THE NANOSCALE computer science technology 1 1,549 07-02-2012, 10:43 AM
Last Post: seminar addict
  Reverse Engineering seminar surveyer 1 2,203 07-02-2012, 10:42 AM
Last Post: seminar addict
  computer science projects for engineering students kasarla vinitha 0 961 28-01-2012, 06:32 PM
Last Post: kasarla vinitha
  Genetic engineering computer science crazy 2 3,167 20-06-2011, 12:21 PM
Last Post: smart paper boy
  Client Server Software Engineering Full Download Seminar Report and Paper Presentatio computer science crazy 1 3,483 24-12-2010, 12:24 PM
Last Post: seminar surveyer
  Reverse Engineering nit_cal 0 1,564 30-10-2009, 04:05 PM
Last Post: nit_cal
Tongue Security Engineering Electrical Fan 0 1,184 10-09-2009, 05:16 PM
Last Post: Electrical Fan
  Software Engineering for Embedded Systems: Design and Evaluation Electrical Fan 0 1,272 03-09-2009, 02:02 AM
Last Post: Electrical Fan

Forum Jump: