1 / 13

Object Oriented Reverse Engineering

Learn about the process of reverse engineering and its importance in analyzing and understanding object-oriented software systems. Explore various approaches and techniques to cope with complexity, detect side effects, recover lost information, and facilitate system maintenance and reengineering.

nancyd
Download Presentation

Object Oriented Reverse Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented Reverse Engineering Jatan Patel

  2. What is Reverse Engineering? • It is the process of analyzing a subject system to identify the system’s components and their interrelationships and create representations of the system in another form or at a higher level of abstraction. • Goals • Cope with complexity • Generate alternative views • Recover lost information • Detect side effects • Synthesize higher abstraction • Facilitate reuse

  3. Why Reverse Engineering? Object Oriented Software Systems require : • Maintenance • Reengineering • Evolution Most systems with time tend to gradually decay in quality, unless the systems are maintained and adapted to the evolving requirements • Adaption to new requirements • Extension of lifetime • To increase the return of investment

  4. Decision Making High Enhance Maintain Modifiability Discard Reengineer Low High Low Business Value

  5. Challenges • Sheer size of the systems • Complexity • Domain Specificity • Bad state – decreased quality

  6. Different Approaches to Reverse Engineering • Program Comprehension • Extracting Design Patterns • Knowledge Based • Domain Analysis • Program Slicing • Other Automated Approaches • Like GRASPR – Graph based System for Program Recognition

  7. Design Pattern Extraction • Two phases for extracting structural design patterns: 1) Extract structural metrics from the source code 2) Aggregations and Associations are identified

  8. Sample Program

  9. Metrics Calculation

  10. UML Notations

  11. Results • Detected Patterns: 1) Bridge Pattern 2) Composite Pattern

  12. Conclusions • Reverse Engineering is a new research area among software maintenance • RE includes activities of understanding the system and recovery info from system • Program understanding is the most important subset of Reverse Engineering

  13. Thank You

More Related