skip to main content
10.1145/1321631.1321663acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Parseweb: a programmer assistant for reusing open source code on the web

Published:05 November 2007Publication History

ABSTRACT

Programmers commonly reuse existing frameworks or libraries to reduce software development efforts. One common problem in reusing the existing frameworks or libraries is that the programmers know what type of object that they need, but do not know how to get that object with a specific method sequence. To help programmers to address this issue, we have developed an approach that takes queries of the form "Source object type → Destination object type" as input, and suggests relevant method-invocation sequences that can serve as solutions that yield the destination object from the source object given in the query. Our approach interacts with a code search engine (CSE) to gather relevant code samples and performs static analysis over the gathered samples to extract required sequences. As code samples are collected on demand through CSE, our approach is not limited to queries of any specific set of frameworks or libraries. We have implemented our approach with a tool called PARSEWeb, and conducted four different evaluations to show that our approach is effective in addressing programmer's queries. We also show that PARSEWeb performs better than existing related tools: Prospector and Strathcona

References

  1. J. Anjou, S. Fairbrother, D. Kehn, J. Kellerman, and P. McCarthy. The Java Developer's Guide to Eclipse. Addison-Wesley Professional, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Bajracharya, T. Ngo, E. Linstead, Y. Dou, P. Rigor, P. Baldi, and C. Lopes. Sourcerer: A search engine for open source code supporting structure based search. In Proc. of OOPSLA Companion, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Jakarta BCEL user forum, 2001. http://mail-archives.apache.org/mod_mbox/jakarta-bcel-user/200609.mbox/thread.Google ScholarGoogle Scholar
  4. Dev2Dev Newsgroups by developers, for developers, 2006. http://forums.bea.com/bea/message.jspa? messageID=202265042&tstart=0.Google ScholarGoogle Scholar
  5. Google Code Search Engine, 2006. http://www.google.com/codesearch.Google ScholarGoogle Scholar
  6. R. Holmes and G. Murphy. Using structural context to recommend source code examples. In Proc. of ICSE, pages 117--125, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Jung the Java Universal Network/Graph Framework, 2005. http://jung.sourceforge.net/.Google ScholarGoogle Scholar
  8. The Koders source code search engine, 2005. http://www.koders.com.Google ScholarGoogle Scholar
  9. T. Lethbridge, J. Singer, and A. Forward. How software engineers use documentation: The state of the practice. In IEEE Software, pages 35--39, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Logic Project based on Eclipse GEF, 2006. http://www.eclipse.org/downloads/download.php? file=/tools/gef/downloads/drops/R-3.2.1-&200609211617/GEF-examples-3.2.1.zip.Google ScholarGoogle Scholar
  11. D. Mandelin, L. Xu, R. Bodik, and D. Kimelman. Jungloid mining: helping to navigate the API jungle. In Proc. of PLDI, pages 48--61, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Y. Matsumoto. A Software Factory: An Overall Approach to Software Production. In P. Freeman ed., Software Reusability. IEEE CS Press, 1987.Google ScholarGoogle Scholar
  13. T. Sager, A. Bernstein, M. Pinzger, and C. Kiefer. Detecting similar Java classes using tree algorithms. In Proc. of MSR, pages 65--71, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Sahavechaphan and K. Claypool. XSnippet: Mining for sample code. In Proc. of OOPSLA, pages 413--430, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Xie and J. Pei. MAPO: Mining API usages from open source repositories. In Proc. of MSR, pages 54--57, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Y. Ye and G. Fischer. Supporting reuse by delivering taskrelevant and personalized information. In Proc. of ICSE, pages 513--523, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Parseweb: a programmer assistant for reusing open source code on the web

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering
        November 2007
        590 pages
        ISBN:9781595938824
        DOI:10.1145/1321631

        Copyright © 2007 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 November 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate82of337submissions,24%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader