Reverse Engineering 2007-11-27

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite & 1 Group

    Reverse Engineering 2007-11-27 - Presentation Transcript

    1. Introduction to reverse engineering Tudor Gîrba www.tudorgirba.com
    2. Reference
    3. Reverse engineering is analyzing a subject system to: identify components and their relationships, and create more abstract representations. Chikofky & Cross, 90
    4. Why reverse engineer?
    5. In 1944, 3 B-29 had to land in Russia
    6. Requirement: Copy everything fast!
    7. Approach disassemble run test
    8. TU-4 Result: 105,000 pieces reassembled in 2 years
    9. Why reverse engineer software systems?
    10. 1946
    11. 1956
    12. 1956
    13. 1956
    14. 1956 2006
    15. 1956 2006
    16. 1956 2006
    17. 1956 2006 ?
    18. Software is complex. 29% Succeeded 18% Failed 53% Challenged The Standish Group, 2004
    19. How large is your project?
    20. How large is your project? 1’000’000 lines of code
    21. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds
    22. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds / 3600 = 560 hours
    23. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds / 3600 = 560 hours / 8 = 70 days
    24. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds / 3600 = 560 hours / 8 = 70 days / 20 = 3 months
    25. How development happens fo rw ar d en gin ee rin g { { { { { { } { { } } actual development } } } { } } }
    26. Reengineering is needed to regain control fo rw g rin ar ee d gin en gin en ee se rin erv g re { { { { { { } { { } } program transformation } } } { } } }
    27. Reverse engineering is creating high level views g rin ee gin en se erv re { { { { } } } } { }
    28. Legacy a sum of money, or a specified article, given to another by will; anything handed down by an ancestor or predecessor. Oxford English Dictionary
    29. A legacy system is piece of software that you have inherited, and is valuable to you.
    30. Reverse engineering is creating high level views g rin ee gin en se erv re { { { { } } } } { }
    31. Setting direction First contact g rin ee gin Initial understanding en se Detailed model capture erv re
    32. What is a pattern?
    33. Setting direction g First contact rin ee gin Initial understanding en se er Detailed model capture v re
    34. You got to be careful if you don't know where you're going, because you might not get there. Yogi Berra
    35. Setting direction patterns Set Where direction to start Agree Most valuable on maxims first Maintain Coordinate What not What direction direction to do to do Appoint Speak to the If it ain’t broke Fix problems a navigator round table don’t fix it not symptoms How to do Keep it simple
    36. Setting direction First contact g rin ee gin Initial understanding en se er Detailed model capture v re
    37. First contact patterns Talk with Talk with developers users Talk Chat with Interview about it maintainers during demo Verify what Read Read about Compile you hear the code the code the code Read all code Skim Do a mock in one hour documentation installation
    38. Interview Chat during demo with maintainers What is the usage? What is the history? Users complain Developers Users are enthusiastic protect their job Who to choose? What to ask?
    39. Interview Chat during demo with maintainers What is the usage? What is the history? Users complain Developers Users are enthusiastic protect their job Who to choose? What to ask? Remember, they are all humans :)
    40. What to ask a maintainer? How long was your project going on? Who worked on the project? What was the most interesting bug you had to fix? Why was the reengineering effort started? How do you release? How do you plan what to do? How do you test?
    41. Read all code in one hour
    42. Read all code in one hour
    43. Read all code in one hour I took a course in speed reading and read “War and Peace” in twenty minutes. It’s about Russia. Woody Allen
    44. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds / 3600 = 560 hours / 8 = 70 days / 20 = 3 months
    45. Why read all code in one hour?
    46. Setting direction First contact g rin ee gin Initial understanding en se er Detailed model capture v re
    47. Initial understanding patterns Top down Recover design Speculate about design Iteration Analyze Study persistent data exceptional entities Recover Identify database problems Bottom up
    48. Identify exceptional entities
    49. Speculate about design
    50. Speculate about design Layout Abstract Item Graph Node Edge
    51. Setting direction First contact g rin ee gin Initial understanding en se Detailed model capture erv re
    52. Detailed model capture patterns Tie code and questions Track your Expose understanding design Refactor to understand Expose Encode collaborations assumptions Step through Write tests execution to understand Expose contracts Expose evolution Look for Learn from the contracts the past
    53. Why refactor? To understand
    54. Write tests to understand and to ensure later refactorings
    55. Example: Visualization does not guarantee understanding
    56. Learn from the past
    57. Setting direction First contact g rin ee gin Initial understanding en se Detailed model capture erv re
    58. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/

    + Tudor GirbaTudor Girba, 2 years ago

    custom

    1156 views, 1 favs, 0 embeds more stats

    I used this set of slides for a lecture at Hasso Pl more

    More info about this document

    CC Attribution License

    Go to text version

    • Total Views 1156
      • 1156 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 53
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events