• DocumentCode
    1290058
  • Title

    Two Studies of Framework-Usage Templates Extracted from Dynamic Traces

  • Author

    Heydarnoori, Abbas ; Czarnecki, Krzysztof ; Binder, Walter ; Bartolomei, Thiago Tonelli

  • Author_Institution
    Dept. of Comput. Eng., Sharif Univ. of Technol., Tehran, Iran
  • Volume
    38
  • Issue
    6
  • fYear
    2012
  • Firstpage
    1464
  • Lastpage
    1487
  • Abstract
    Object-oriented frameworks are widely used to develop new applications. They provide reusable concepts that are instantiated in application code through potentially complex implementation steps such as subclassing, implementing interfaces, and calling framework operations. Unfortunately, many modern frameworks are difficult to use because of their large and complex APIs and frequently incomplete user documentation. To cope with these problems, developers often use existing framework applications as a guide. However, locating concept implementations in those sample applications is typically challenging due to code tangling and scattering. To address this challenge, we introduce the notion of concept-implementation templates, which summarize the necessary concept-implementation steps and identify them in the sample application code, and a technique, named FUDA, to automatically extract such templates from dynamic traces of sample applications. This paper further presents the results of two experiments conducted to evaluate the quality and usefulness of FUDA templates. The experimental evaluation of FUDA with 14 concepts in five widely used frameworks suggests that the technique is effective in producing templates with relatively few false positives and false negatives for realistic concepts by using two sample applications. Moreover, we observed in a user study with 28 programmers that the use of templates reduced the concept-implementation time compared to when documentation was used.
  • Keywords
    application program interfaces; object-oriented methods; FUDA templates; application code; calling framework operations; code scattering; code tangling; concept-implementation steps; concept-implementation templates; dynamic traces; framework API understanding through dynamic analysis; framework-usage template extraction; interface implementation; object-oriented frameworks; subclassing operation; user documentation; Application programming interfaces; Documentation; Dynamic programming; Feature extraction; Java; Runtime; Object-oriented application frameworks; application programming interface (API); concept location; concept-implementation templates; dynamic analysis; feature identification; framework comprehension; framework documentation;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2011.77
  • Filename
    5975174