skip to main content
10.1145/1294325.1294332acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
Article

Searching the library and asking the peers: learning to use Java APIs on demand

Published:05 September 2007Publication History

ABSTRACT

The existence of large API libraries contributes significantly to the programming productivity and quality of Java programmers. The vast number of available library APIs, however, presents a learning challenge for Java programmers. Most Java programmers do not know all the APIs. Whenever their programming task requires API methods they do not yet know, they have to be able to find what they need and learn how to use them on demand. This paper describes a tool called STeP_IN_Java (a <u>S</u>ocio-<u>Te</u>chnical <u>P</u>latform for <u>I</u>n situ <u>N</u>etworking of <u>Java</u> programmers) that helps Java programmers find APIs, and learn from both examples and experts how to use them on demand. STeP_IN_Java features a sophisticated yet easy-to-use search interface that enables programmers to conduct a personalized search and to progressively refine their search by limiting search scopes. Example programs are provided and embedded to assist programmers in using APIs. Furthermore, if a programmer still has questions about a particular API method, he or she can ask peer programmers. The STeP_IN_Java system automatically routes the question to a group of experts who are chosen based on two criteria: they have high expertise on the particular API method and they have a good social relationship with the programmer who is requesting the information.

References

  1. Ackerman, M. S. and T. W. Malone, Answer Garden: A Tool for Growing Organizational Memory, in Proceedings of the ACM Conference on Office Information Systems. 1990: Cambridge MA. p. 31--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Berlin, L. M., Beyond Program Understanding: A Look at Programming Expertise in Industry, in Empirical Studies of Programmers: Fifth Workshop, C. R. Cook, J. C. Scholtz, and J. C. Spohrer, Editors. 1993, Palo Alto, CA: Ablex Publishing Corporation. p. 6--25.Google ScholarGoogle Scholar
  3. Cross, R. and S. P. Borgatti, The Ties That Share: Relational Characteristics That Facilitate Information Seeking, in Social Capital and Information Technology, M. Huysman and V. Wulf, Editors. 2004, Cambridge, MA: The MIT Press. p. 137--161.Google ScholarGoogle Scholar
  4. Davor C. Cubranic and G. C. Murphy, Hipikat: Recommending Pertinent Software Development Artifacts, in Proceedings of the 25th International Conference on Software Engineering (ICSE03). 2003: Portland, OR. p. 408--418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Flammer, A., Towards a Theory of Question Asking. Psychological Research, 1981. 43: p. 407--420.Google ScholarGoogle Scholar
  6. Holmes, R. and G. C. Murphy, Using Structural Context to Recommend Source Code Examples, in Proceedings of 27th International Conference on Software Engineering. 2005. p. 117--125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Illich, I., Deschooling Society. 1971, New York: Harper and Row.Google ScholarGoogle Scholar
  8. Lange, B. M. and T. G. Moher. Some Strategies of Reuse in an Object-oriented Programming Environment, in Proceedings of Human Factors in Computing Systems. 1989. Austin, TX: ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Mandelin, D., et al., Jungloid Mining: Helping to Navigate the API Jungle, in Proceedings of 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation. 2005: Chicago, IL. p. 48--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. McCarey, F., M.Ó. Cinnéide, and N. Kushmerick, Recommending Library Methods: An Evaluation of the Vector Space Model (VSM) and Latent Semantic Indexing (LSI), in Proceedings of 2006 International Conference on Software Reuse. 2006. p. 217--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. McDonald, D. W. and M. S. Ackerman, Expertise Recommender: A Flexible Recommendation System Architecture, in Proceedings of CSCW 2000. 2000. p. 101--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Mili, A., et al., Toward an Engineering Discipline of Software Reuse. IEEE Software, 1999. 16(5): p. 22--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Mockus, A. and J. Herbsleb, Expertise Browser: A Quantitative Approach to Identifying Expertise, in Proceedings of 2002 International Conference on Software Engineering. 2002: Orlando, FL. p. 503--512. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Nahapiet, J. and S. Ghoshal, Social Capital, Intellectual Capital, and the Organizational Advantage. Academy of Management Review, 1998. 23: p. 242--266.Google ScholarGoogle Scholar
  15. Raymond, E. S., The Art of UNIX Programming. 2004, Boston, MA: Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Robertson, S. E., et al., Okapi at TREC-3, in The 3rd Text REtrieval Conference (TREC-3), D. K. Harman, Editor. 1995, National Institute of Standards and Technology: Gaithersburg, MD. p. 109--126.Google ScholarGoogle Scholar
  17. Sahavechaphan, N. and K. Claypool, XSnippet: Mining for Sample Code, in Proceedings of the 21st ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications. 2006: Portland, OR. p. 413--430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Salton, G. and M. J. McGill, Introduction to Modern Information Retrieval. 1983, New York: McGraw-Hill. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. van den Hoff, B., J. de Ridder, and E. Aukema, Exploring the Eagerness to Share Knowledge: The Role of Social Capital and ICT in Knowledge Sharing, in Social Capital and Information Technology, M. Huysman and V. Wulf, Editors. 2004, Cambridge, MA: The MIT Press. p. 163--186.Google ScholarGoogle Scholar
  20. Williams, M. D., What Makes RABBIT Run? in International Journal of Man-Machine Studies. 1984. p. 333--352. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ye, Y. and G. Fischer, Supporting Reuse by Delivering Task-Relevant and Personalized Information, in Proceedings of 2002 International Conference on Software Engineering (ICSE'02). 2002: Orlando, FL. p. 513--523. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ye, Y. and G. Fischer, Reuse-Conducive Development Environments. Automated Software Engineering, 2005. 12(2): p. 199--235. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ye, Y., Y. Yamamoto, and K. Nakakoji, A Socio-Technical Framework for Supporting Programmers, in Proceedings of 2007 ACM Symposium on Foundations of Software Engineering (FSE2007). 2007 (forthcoming). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Searching the library and asking the peers: learning to use Java APIs on demand

              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
                PPPJ '07: Proceedings of the 5th international symposium on Principles and practice of programming in Java
                September 2007
                260 pages
                ISBN:9781595936721
                DOI:10.1145/1294325
                • General Chair:
                • Vasco Amaral

                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 September 2007

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate29of58submissions,50%

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader