Abstract
In this introductory chapter, we map out “code retrieval on the web” as a research area and the organizational of this book. Code retrieval on the web is concerned with the algorithms, systems, and tools to allow programmers to search for source code on the web and the empirical studies of these inventions and practices. It is a label that we apply to a set of related research from a software engineering, information retrieval, human-computer interaction, management, as well as commercial products. The division of code retrieval on the web into snippet remixing and component reuse is driven both by empirical data, and analysis of existing search engines and tools.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Alexander Aiken and Brian R. Murphy. Implementing regular tree expressions. In Proceedings of the 1991 Conference on Functional Programming Languages and Computer Architecture, pages 427–447. Springer-Verlag, 1991.
Sushil Bajracharya, Joel Ossher, and Cristina Lopes. Searching API usage examples in code repositories with sourcerer api search. In Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation, pages 5–8, Cape Town, South Africa, 2010. ACM.
Joel Brandt, Mira Dontcheva, Marcos Weskamp, and Scott R. Klemmer. Example-centric programming: Integrating web search into the development environment. In Proceedings of the 28th International Conference on Human Factors in Computing Systems, pages 513–522, Atlanta, Georgia, USA, 2010. ACM.
Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, and Scott R. Klemmer. Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In Proceedings of the 27th international conference on Human factors in computing systems, pages 1589–1598, Boston, MA, USA, 2009. ACM.
Shaunak Chatterjee, Sudeep Juvekar, and Koushik Sen. SNIFF: A search engine for Java using free-form queries. In Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering, Lecture Notes in Computer Science, pages 385–400, Berlin/Heidelberg, 2009. Springer.
Y.-F. Chen, M.Y. Nishimoto, and C.V. Ramamoorthy. The C information abstraction system. IEEE Transactions on Software Engineering, 16(3):325–334, 1990.
Rylan Cottrell, Robert J. Walker, and Jorg Denzinger. Jigsaw: a tool for the small-scale reuse of source code. In Companion of the 30th International Conference on Software Engineering, pages 933–934, Leipzig, Germany, 2008. ACM.
Barthélémy Dagenais and Harold Ossher. Automatically locating framework extension examples. In Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 203–213, Atlanta, Georgia, 2008. ACM.
Bernhard Ganter, Gerd Stumme, and Rudolf Wille. Formal Concept Analysis: foundations and applications, volume 3626 of Lecture Notes in Artificial Intelligence. Springer Verlag, 2005.
Max Goldman and Robert C. Miller. Codetrail: Connecting source code and web resources. Journal of Visual Languages and Computing. Special Issue on Best Papers from VL/HCC 2008, 20(4):223–235, 2009.
Mark Grechanik, Chen Fu, Qing Xie, Collin McMillan, Denys Poshyvanyk, and Chad Cumby. A search engine for finding highly relevant applications. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, pages 475–484, Cape Town, South Africa, 2010. ACM.
F. Gysin. Improved social trustability of code search results. In Proceedings of the International Conference on Software Engineering, Cape Town, South Africa, 2010.
Raphael Hoffmann, James Fogarty, and Daniel S. Weld. Assieme: finding and leveraging implicit references in a web search interface for programmers. In Proceedings of the 20th Annual ACM Symposium on User Interface Software and Technology, Newport, Rhode Island, USA, 2007. ACM.
Reid Holmes, R. J. Walker, and G. C. Murphy. Approximate structural context matching: An approach to recommend relevant examples. IEEE Transactions on Software Engineering, 32(12):952–970, 2006.
Reid Holmes and Robert J. Walker. Supporting the Investigation and Planning of Pragmatic Reuse Tasks. In Proceedings of the 29th International Conference on Software Engineering, pages 447–457, Los Alamitos, CA, 2007. IEEE Computer Society Press.
O. Hummel and C. Atkinson. Extreme harvesting: test driven discovery and reuse of software components. In Proceedings of the 2004 IEEE International Conference on Information Reuse and Integration, pages 66–72, Las Vegas, Nevada, USA, 2004. IEEE.
Oliver Hummel, Werner Janjic, and Colin Atkinson. Code conjurer: Pulling reusable software out of thin air. IEEE Software, 25(5):45–52, 2008.
K. Inoue, R. Yokomori, T. Yamamoto, M. Matsushita, and S. Kusumoto. Ranking significance of software components based on use relations. IEEE Transactions on Software Engineering, 31(3):213–225, 2005.
Mehdi Kaytoue-Uberall, Sébastien Duplessis, and Amedeo Napoli. Using formal concept analysis for the extraction of groups of co-expressed genes. Modelling, Computation and Optimization in Information Systems and Management Sciences, pages 439–449, 2008.
Otavio Augusto Lazzarini Lemos, Sushil Bajracharya, Joel Ossher, Paulo Cesar Masiero, and Cristina Lopes. Applying test-driven code search to the reuse of auxiliary functionality. In Proceedings of the 2009 ACM symposium on Applied Computing, pages 476–482, Honolulu, Hawaii, 2009. ACM.
Christian Lindig and Gregor Snelting. Assessing modular structure of legacy code based on mathematical concept analysis. In Proceedings of the 19th international conference on Software engineering, pages 349–359. ACM, 1997.
Erik Linstead, Sushil Bajracharya, Trung Ngo, Paul Rigor, Cristina Lopes, and Pierre Baldi. Sourcerer: mining and searching internet-scale software repositories. Data Mining and Knowledge Discovery, 18(2):300–336, 2009.
M.A. Linton. Implementing relational views of programs. ACM SIGPLAN Notices, 19(5):132–140, 1984.
David Mandelin, Lin Xu, Rastislav Bodik, and Doug Kimelman. Jungloid mining: helping to navigate the api jungle. ACM SIGPLAN Notices, 40(6):48–61, 2005.
Frank McCarey, Mel Ó Cinnéide, and Nicholas Kushmerick. Knowledge reuse for software reuse. Web Intelligence and Agent Systems, 6(1):59–81, 2008.
Gail C. Murphy and David Notkin. Lightweight lexical source model extraction. ACM Transactions on Software Engineering and Methodology, 5:262–292, July 1996.
Santanu Paul and Atul Prakash. A framework for source code search using program patterns. IEEE Transactions on Software Engineering, 20(6):463–475, 1994.
Susan Elliott Sim, Charles L. A. Clarke, and Richard C. Holt. Archetypal source code searches: A survey of software developers and maintainers. In Proceedings of the Sixth International Workshop on Program Comprehension, pages 180, Los Alamitos, CA, 1998. IEEE Computer Society.
Denys Poshyvanyk, Andrian Marcus, and Yubo Dong. JIRiSS - an eclipse plug-in for source code exploration. In Proceedings of the 14th IEEE International Conference on Program Comprehension, pages 252–255, Athens, Greece, 2006. IEEE Computer Society.
Ute Priss. Formal concept analysis in information science. Annual review of information science and technology, 40(1):521–543, 2006.
Steven P. Reiss. Semantics-based code search. In Proceedings of the 2009 IEEE 31st International Conference on Software Engineering, pages 243–253, Vancouver, Canada, 2009. IEEE Computer Society.
Naiyana Sahavechaphan and Kajal T. Claypool. XSnippet: mining for sample code. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 413–430, New York, NY, 2006. ACM Press.
R. C. Seacord, S. A. Hissam, and K. C. Wallnau. Agora: A search engine for software components. IEEE Internet Computing, 2(6):62–70, 1998.
Renuka Sindhgatta. Using an information retrieval system to retrieve source code samples. In Proceedings of the 28th international conference on Software engineering, pages 905–908, Shanghai, China, 2006. ACM.
Janice Singer, Timothy Lethbridge, Norman Vinson, and Nicolas Anquetil. An examination of software engineering work practices. In Proceedings of the 1997 Conference of the Centre for Advanced Studies on Collaborative Research, page 21. IBM Press, 1997.
Jeffrey Stylos and Brad A. Myers. Mica: A web-search tool for finding api components and examples. In IEEE Symposium on Visual Languages and Human-Centric Computing, 2006. VL/HCC 2006, pages 195–202, Brighton, United Kingdom, 2006. IEEE.
Ken Thompson. Programming techniques: Regular expression search algorithm. Communications of the ACM, 11(6):419–422, 1968.
Suresh Thummalapenta and Tao Xie. Parseweb: a programmer assistant for reusing open source code on the web. In Proceedings of the Twenty-second IEEE/ACM International Conference on Automated Software Engineering, pages 204–213, New York, NY, 2007. ACM Press.
Tao Xie and Jian Pei. MAPO: Mining API usages from open source repositories. In Proceedings of the 2006 International Workshop on Mining Software Repositories, pages 54–57, Shanghai, China, 2006. ACM.
Yunwen Ye and Gerhard Fischer. Supporting reuse by delivering task-relevant and personalized information. In Proceedings of the 24th Interntional Conference on Software Engineering, pages 513–523, New York, NY, 2002. ACM Press.
Yunwen Ye, Yasuhiro Yamamoto, and Kumiyo Nakakoji. A socio-technical framework for supporting programmers. In ESEC/SIGSOFT FSE, pages 351–360, New York, NY, USA, 2007. ACM.
Yunwen Ye, Yasuhiro Yamamoto, Kumiyo Nakakoji, Yoshiyuki Nishinaka, and Mitsuhiro Asada. Searching the library and asking the peers: Learning to use Java APIs on demand. In Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, pages 41–50, Lisboa, Portugal, 2007. ACM
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer Science+Business Media New York
About this chapter
Cite this chapter
Sim, S.E., Gallardo-Valencia, R.E. (2013). Introduction: Remixing Snippets and Reusing Components. In: Sim, S.E., Gallardo-Valencia, R.E. (eds) Finding Source Code on the Web for Remix and Reuse. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-6596-6_1
Download citation
DOI: https://doi.org/10.1007/978-1-4614-6596-6_1
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4614-6595-9
Online ISBN: 978-1-4614-6596-6
eBook Packages: Computer ScienceComputer Science (R0)