1 / 8

Reverse Engineering

Reverse Engineering. When is it the most cost effective?. Raymond Utz. The Problem. When is Reverse Engineering the correct choice over Forward Engineering?. Terminology.

Download Presentation

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.


Presentation Transcript

  1. Reverse Engineering When is it the most cost effective? Raymond Utz

  2. The Problem • When is Reverse Engineering the correct choice over Forward Engineering?

  3. Terminology • Reverse Engineering - the process of recovering the design conditions of a legacy system that is currently being used and that is not fully documented. • Forward Engineering - is the process of moving from high-level abstractions and models to the physical implementation of a system.

  4. There is already a working system in place If tools are available then process can be automated to an extent The legacy system could be very hard to follow The lead software engineers for the legacy system are usually not around Benefits and Drawbacks of Reverse Engineering

  5. What and How to measure • Looked at the Algorithmic Model: • Effort = A x SizeB x M • “A” is a constant factor for all local projects of the same type • “Size” is the number of lines of code or function points • “B” is usually assigned the values between 1 and 1.5 • “M” is a multiplier that consists of the sum of process, product, and development attributes

  6. Effort = A x SizeB x M • The main difference between Reverse and Forward Engineering in this model would be the “Size” • “M” would also vary because of the many factors it is based on

  7. Ethics • Therac 25 system • They Reverse Engineered code for different hardware due to the cheaper cost • A lot of the problems could have been stopped by just Forward Engineering a new system

  8. Conclusion • To improve a system’s maintainability no matter the size Reverse Engineering would be the best choice • To try and migrate a small system to new hardware it would be beneficial to Reverse Engineer the design as a means to Reengineer the system. • For a larger system Forward Engineering would be beneficial

More Related