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.
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- Flammer, A., Towards a Theory of Question Asking. Psychological Research, 1981. 43: p. 407--420.Google Scholar
- 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 ScholarDigital Library
- Illich, I., Deschooling Society. 1971, New York: Harper and Row.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- McDonald, D. W. and M. S. Ackerman, Expertise Recommender: A Flexible Recommendation System Architecture, in Proceedings of CSCW 2000. 2000. p. 101--120. Google ScholarDigital Library
- Mili, A., et al., Toward an Engineering Discipline of Software Reuse. IEEE Software, 1999. 16(5): p. 22--31. Google ScholarDigital Library
- 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 ScholarDigital Library
- Nahapiet, J. and S. Ghoshal, Social Capital, Intellectual Capital, and the Organizational Advantage. Academy of Management Review, 1998. 23: p. 242--266.Google Scholar
- Raymond, E. S., The Art of UNIX Programming. 2004, Boston, MA: Addison-Wesley. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Salton, G. and M. J. McGill, Introduction to Modern Information Retrieval. 1983, New York: McGraw-Hill. Google ScholarDigital Library
- 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 Scholar
- Williams, M. D., What Makes RABBIT Run? in International Journal of Man-Machine Studies. 1984. p. 333--352. Google ScholarDigital Library
- 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 ScholarDigital Library
- Ye, Y. and G. Fischer, Reuse-Conducive Development Environments. Automated Software Engineering, 2005. 12(2): p. 199--235. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Searching the library and asking the peers: learning to use Java APIs on demand
Recommendations
API beauty is in the eye of the clients: 2.2 million Maven dependencies reveal the spectrum of client–API usages
AbstractHyrum’s law states a common observation in the software industry: “With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by ...
Highlights- A systematic large-scale analysis of 2,190,525 Maven client–API relations.
- ...
Measuring software library stability through historical version analysis
ICSM '12: Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)Backward compatibility is a major concern for any library developer. In this paper, we evaluate how stable a set of frequently used third-party libraries is in terms of method removals, implementation change, the ratio of change in old methods to change ...
Exploring the use of Bluetooth in building wireless information systems
This paper focuses on the use of Bluetooth wireless technology for building Wireless Information Systems (WIS). Firstly, an introduction to Bluetooth wireless technology is given. Secondly, use of Java Application Programming Interface (API) for ...
Comments