Yogendra Singh
M.Tech (C.S.E) IInd Sem 1120104
What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Different Approaches RE tools Conclusions
You have an unexpected case:
You finished one course project using Java Your program runs OK
But, by accident, you delete the java file
How to hand in your project?
You have an unexpected case:
You finished one course project using Java Your program runs OK
But, by accident, you delete the java file
How to hand in your project?
Reverse Engineering
Waterfall Model of software development
Requirement analysis design
Implementation
Testing and Maintenance
Forward Engineering Requirements Design
Source Code
Behavior
Forward Engineering
Reverse Engineering
Requirements Design
Source Code
Behavior
Abstraction System
Reverse Engineering Abstraction Forward Engineering Re-Implementation
Old system
New System
RE encompasses any activity that is done to determine how a product works, to learn the ideas and technology that were used in developing that product. RE can be done at many levels RE generally belongs to Software Maintenance .
Recovery of lost information
providing proper system documentation
Assisting with maintenance
identification of side effects and anomalies
Migration to another hw/sw platform Facilitating software reuse Malware research & defence Review and audit of software/security system
Benefits
maintenance cost savings quality improvements
competitive advantages
software reuse facilitation
Gap between problem/solution domain
DJ java decompiler Tool 3.8 Altova Umodel 2010 EclipseUML 2.3 (Omondo ) Visual Paradigm for UML 8.3 Sparx Systems Enterprise Architect 9.0 IBM Rational Software architect 7.0