• DocumentCode
    1013515
  • Title

    Automatic Extraction of Heap Reference Properties in Object-Oriented Programs

  • Author

    Demsky, Brian ; Rinard, Martin

  • Author_Institution
    Univ. of California, Irvine, CA
  • Volume
    35
  • Issue
    3
  • fYear
    2009
  • Firstpage
    305
  • Lastpage
    324
  • Abstract
    We present a new technique for helping developers understand heap referencing properties of object-oriented programs and how the actions of the program affect these properties. Our dynamic analysis uses the aliasing properties of objects to synthesize a set of roles; each role represents an abstract object state intended to be of interest to the developer. We allow the developer to customize the analysis to explore the object states and behavior of the program at multiple different and potentially complementary levels of abstraction. The analysis uses roles as the basis for three abstractions: role transition diagrams, which present the observed transitions between roles and the methods responsible for the transitions; role relationship diagrams, which present the observed referencing relationships between objects playing different roles; and enhanced method interfaces, which present the observed roles of method parameters. Together, these abstractions provide useful information about important object and data structure properties and how the actions of the program affect these properties. We have implemented the role analysis and have used this implementation to explore the behavior of several Java programs. Our experience indicates that, when combined with a powerful graphical user interface, roles are a useful abstraction for helping developers explore and understand the behavior of object-oriented programs.
  • Keywords
    Java; data structures; diagrams; graphical user interfaces; object-oriented programming; reverse engineering; Java program; automatic extraction; data structure; enhanced method interface; graphical user interface; heap reference property; object-oriented program; program understanding; role relationship diagram; role transition diagram; Design Tools and Techniques; Program understanding; Requirements/Specifications; Software Engineering; Software/Software Engineering; Testing and Debugging; design recovery.; roles;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2008.91
  • Filename
    4693716