• DocumentCode
    1451219
  • Title

    Lightweight extraction of object models from bytecode

  • Author

    Jackson, Daniel ; Waingold, Allison

  • Author_Institution
    Lab. for Comput. Sci., MIT, Cambridge, MA, USA
  • Volume
    27
  • Issue
    2
  • fYear
    2001
  • fDate
    2/1/2001 12:00:00 AM
  • Firstpage
    156
  • Lastpage
    169
  • Abstract
    A program´s object model captures the essence of its design. For some programs, no object model was developed during design; for others, an object model exists but may be out-of-sync with the code. This paper describes a tool that automatically extracts an object model from the class-files of a Java program. Unlike existing tools, it handles container classes by inferring the types of elements stored in a container and eliding the container itself. This feature is crucial for obtaining models that show the structure of the abstract state and bear some relation to conceptual models. Although the tool performs only a simple, heuristic analysis that is almost entirely local, the resulting object model is surprisingly accurate. The paper explains what object models are and why they are useful; describes the analysis, its assumptions, and limitations; evaluates the tool for accuracy, and illustrates its use on a suite of sample programs
  • Keywords
    Java; abstract data types; object-oriented programming; reverse engineering; Java program; abstract state; bytecode; class-files; container classes; heuristic analysis; lightweight object model extraction; Computer Society; Computer science; Containers; Feature extraction; Java; Performance analysis; Reverse engineering;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.908960
  • Filename
    908960