Reverse Engineering Techniques 2007-11-29

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 Group

    Reverse Engineering Techniques 2007-11-29 - Presentation Transcript

    1. Reverse engineering techniques Tudor Gîrba www.tudorgirba.com
    2. fo rw ar d en gin ee rin g { { { { { { } { { } } actual development } } } { } } }
    3. fo rw g rin ar ee d gin en gin en ee se rin erv g re { { { { { { } { { } } actual development } } } { } } }
    4. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    5. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    6. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    7. What are software metrics?
    8. Youcannot control what you cannot measure. Tom de Marco
    9. Software metrics are measurements which relate to software systems, processes or related documents
    10. Examples of size metrics NOM - number of methods NOA - number of attributes LOC - number of lines of code NOS - number of statements NOC - number of children Lorentz, Kidd, 1994 Chidamber, 1994
    11. McCabe cyclomatic complexity counts the number of possible paths through the code of a function. McCabe, 1977
    12. Metrics compress the system into numbers
    13. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    14. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    15. Queries reduce the analysis space
    16. Detection Strategies are metric-based queries to detect design flaws Class uses directly more than a few attributes of other classes ATFD > FEW Functional complexity of the class is very high AND GodClass WMC ! VERY HIGH Class cohesion is low TCC < ONE THIRD
    17. Flaw: a God Class centralizes too much intelligence in the system Class uses directly more than a few attributes of other classes ATFD > FEW Functional complexity of the class is very high AND GodClass WMC ! VERY HIGH Class cohesion is low TCC < ONE THIRD
    18. Flaw: a Data Class provides data to other classes, but little or no functionality of its own
    19. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    20. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    21. Visualization compresses the system into pictures
    22. 1854, London cholera epidemic
    23. a picture is worth a thousand words
    24. UML took it literally :)
    25. We are visual beings
    26. How many groups do you see?
    27. How many groups do you see?
    28. How many groups do you see?
    29. How many groups do you see?
    30. Gestalt principles proximity similarity enclosure connectivity
    31. More Gestalt principles closure continuity
    32. We are visual beings
    33. a picture is worth a thousand words
    34. example: what is ?
    35. Polymetric views show up to 5 metrics Lanza, 2003 Width metric Height metric Position metrics Color metric
    36. System Complexity shows class hierarchies Lanza, Ducasse, 2003 attributes methods lines
    37. Class Blueprint shows class internals Lanza, Ducasse, 2005 Initialize Interface Internal Accessor Attribute invocation and access direction
    38. Class Blueprint has a rich vocabulary internal access Access external Attribute access Invocation Regular Constant invocations Overriding Delegating lines Method Extending Setter Abstract Getter
    39. Class Blueprint shows class internals
    40. Distribution Map shows properties Ducasse etal, 2006
    41. fo rw g rin ar ee d gin en gin en ee se rin erv g re { { { { { { } { { } } actual development } } } { } } }
    42. { { } } } { { { } } re v er se en gin ee rin g reverse engineering fo rw ar actual development d en gin ee rin g { { } } { { } }
    43. Spectographs show change activity Wu etal, 2004 commit time
    44. Evolution Matrix shows changes in classes Lanza, Ducasse, 2002 Idle class Pulsar class Supernova class White dwarf class
    45. Evolution Matrix shows changes in classes
    46. What happens with inheritance? A A A A A B C B C B C B B D D D E ver .1 ver. 2 ver. 3 ver. 4 ver. 5
    47. History contains too much data A A A A A A A A A A A A A A A A A A A A B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B D D D E D D D E D D D E D D D E ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 A A A A A A A A A A A A A A A A A A A A B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B D D D E D D D E D D D E D D D E ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 A A A A A A A A A A A A A A A A A A A A B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B D D D E D D D E D D D E D D D E ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 A A A A A A A A A A A A A A A A A A A A B C B C B C B B B C B C B C B B B C B C B C B B B C B C B C B B D D D E D D D E D D D E D D D E ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5 ver .1 ver. 2 ver. 3 ver. 4 ver. 5
    48. History contains too much data A A A A A B C B C B C B B D D D E ver .1 ver. 2 ver. 3 ver. 4 ver. 5 A is persistent, B is stable, C was removed, E is newborn ...
    49. Hierarchy Evolution encapsulates time Girba etal, 2005 A changed methods changed age lines C B Removed Removed D E A is persistent, B is stable, C was removed, E is newborn ...
    50. Hierarchy Evolution View reveals patterns
    51. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    52. But, what actually happens behind the scene?
    53. Example: CVS shows activity
    54. Who did this?
    55. Alphabetical order is no order Kuhn
    56. Ownership Map orders histories Girba etal, 2006
    57. McCabe = 21 NOM 0 = 102 3 ,00 75 = C LO Metrics Queries Visualizations ... { { { { } } } } { }
    58. McCabe = 21 NOM 0 = 102 3 ,00 75 = C ... LO Metrics Queries Visualizations { { { { } } } } { }
    59. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/

    + Tudor GirbaTudor Girba, 2 years ago

    custom

    1081 views, 0 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 1081
      • 1081 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 37
    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