• DocumentCode
    2769465
  • Title

    Reverse Engineering of Design Patterns from Java Source Code

  • Author

    Shi, Nija ; Olsson, Ronald A.

  • Author_Institution
    Dept. of Comput. Sci., California Univ., Davis, CA
  • fYear
    2006
  • fDate
    18-22 Sept. 2006
  • Firstpage
    123
  • Lastpage
    134
  • Abstract
    Recovering design patterns can enhance existing source code analysis tools by bringing program understanding to the design level. This paper presents a new, fully automated pattern detection approach. The new approach is based on our reclassification of the GoF patterns by their pattern intent. We argue that the GoF pattern catalog classifies design patterns in the forward-engineering sense; our reclassification is better suited for reverse engineering. Our approach uses lightweight static program analysis techniques to capture program intent. This paper also describes our tool, PINOT, that implements this new approach. PINOT detects all the GoF patterns that have concrete definitions driven by code structure or system behavior. Our tool is faster, more accurate, and targets more patterns than existing pattern detection tools. PINOT has been used successfully in detecting patterns in Java AWT, JHotDraw, Swing, Apache Ant, and many other programs and packages
  • Keywords
    Java; object-oriented programming; program compilers; program diagnostics; reverse engineering; Apache Ant; JHotDraw; Java AWT; Java source code; PINOT; Swing; code structure; design pattern classification; design pattern recovery; pattern detection; program understanding; reverse engineering; source code analysis; static program analysis; system behavior; Concrete; Data mining; Java; Packaging; Pattern analysis; Pattern classification; Pattern recognition; Prototypes; Reverse engineering; Software design;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Automated Software Engineering, 2006. ASE '06. 21st IEEE/ACM International Conference on
  • Conference_Location
    Tokyo
  • ISSN
    1938-4300
  • Print_ISBN
    0-7695-2579-2
  • Type

    conf

  • DOI
    10.1109/ASE.2006.57
  • Filename
    4019568