Skip to main content

Supporting Framework Use via Automatically Extracted Concept-Implementation Templates

  • Conference paper
ECOOP 2009 – Object-Oriented Programming (ECOOP 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5653))

Included in the following conference series:

Abstract

Application frameworks provide reusable concepts that are instantiated in application code through potentially complex implementation steps such as subclassing, implementing callbacks, and making calls. Existing applications contain valuable examples of such steps, except that locating them in the application code is often challenging. We propose the notion of concept implementation templates, which summarize the necessary implementation steps, and an approach to automatic extraction of such templates from traces of sample applications. We demonstrate the feasibility of the template extraction with high precision and recall through an empirical study with twelve realistic concepts from four widely-used frameworks. Finally, we report on a user experiment with twelve subjects in which the choice of templates vs. documentation had much less impact on development time than the concept complexity.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Gamma, E., Beck, K.: Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley, Reading (2003)

    Google Scholar 

  2. Holmes, R., Murphy, G.C.: Using structural context to recommend source code examples. In: ICSE (2005)

    Google Scholar 

  3. Bruch, M., Schafer, T., Mezini, M.: FrUiT: IDE support for framework understanding. In: ETX (2006)

    Google Scholar 

  4. Zhao, W., Zhang, L., Liu, Y., Sun, J., Yang, F.: SNIAFL: Towards a static noninteractive approach to feature location. TOSEM 15(2) (2006)

    Google Scholar 

  5. Liu, D., Marcus, A., Poshyvanyk, D., Rajlich, V.: Feature location via information retrieval based filtering of a single scenario execution trace. In: ASE (2007)

    Google Scholar 

  6. Heydarnoori, A.: Supporting Framework Use via Automatically Extracted Concept-Implementation Templates. PhD thesis, University of Waterloo, Canada (February 2009)

    Google Scholar 

  7. Heydarnoori, A., Bartolomei, T.T., Czarnecki, K.: Comprehending object-oriented software frameworks API through dynamic analysis. Technical Report CS-2007-18, School of Computer Science, University of Waterloo (2007)

    Google Scholar 

  8. Montgomery, D.C.: Design and analysis of experiments, 6th edn. Wiley, Chichester (2004)

    Google Scholar 

  9. Hedges, L.V.: Distribution theory for Glass’s estimator of effect size and related estimators. Journal of Educational Statistics 6(2) (1981)

    Google Scholar 

  10. Generative Software Development Lab: FUDA supporting material (2008), http://gsd.uwaterloo.ca/~aheydarn/fuda/

  11. Antkiewicz, M., Bartolomei, T.T., Czarnecki, K.: Automatic extraction of framework-specific models from framework-based application code. In: ASE (2007)

    Google Scholar 

  12. Steyaert, P., Lucas, C., Mens, K., D’Hondt, T.: Reuse contracts: managing the evolution of reusable assets. In: OOPSLA (1996)

    Google Scholar 

  13. Hondt, K.D.: A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. PhD thesis, Vrije Universiteit Brussel, Belgium (1998)

    Google Scholar 

  14. Sahavechaphan, N., Claypool, K.: XSnippet: Mining for sample code. In: OOPSLA (2006)

    Google Scholar 

  15. Mandelin, D., Xu, L., Bodík, R., Kimelman, D.: Jungloid mining: Helping to navigate the API jungle. In: PLDI (2005)

    Google Scholar 

  16. Thummalapenta, S., Xie, T.: PARSEWeb: A programmer assistant for reusing open source code on the web. In: ASE (2007)

    Google Scholar 

  17. Wasylkowski, A., Zeller, A., Lindig, C.: Detecting object usage anomalies. In: FSE (2007)

    Google Scholar 

  18. Ramanathan, M.K., Grama, A., Jagannathan, S.: Path-sensitive inference of function precedence protocols. In: ICSE (2007)

    Google Scholar 

  19. Yang, J., Evans, D., Bhardwaj, D., Bhat, T., Das, M.: Perracotta: Mining temporal API rules from imperfect traces. In: ICSE (2006)

    Google Scholar 

  20. Lo, D., Khoo, S.C., Liu, C.: Efficient mining of iterative patterns for software specification discovery. In: KDD (2007)

    Google Scholar 

  21. Sankaranarayanan, S., Ivanči, F., Gupta, A.: Mining library specifications using inductive logic programming. In: ICSE (2008)

    Google Scholar 

  22. Wilde, N., Scully, M.C.: Software reconnaissance: Mapping program features to code. JSM 7(1) (1995)

    Google Scholar 

  23. Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. TSE 29(3) (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Heydarnoori, A., Czarnecki, K., Bartolomei, T.T. (2009). Supporting Framework Use via Automatically Extracted Concept-Implementation Templates. In: Drossopoulou, S. (eds) ECOOP 2009 – Object-Oriented Programming. ECOOP 2009. Lecture Notes in Computer Science, vol 5653. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03013-0_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-03013-0_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-03012-3

  • Online ISBN: 978-3-642-03013-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics