Skip to main content

Unweaving Code Search Toward Remixing-Centered Programming Support

  • Chapter
Finding Source Code on the Web for Remix and Reuse

Abstract

Recognizing that programming is basically remixing, this chapter looks into the cognitive, social, and practical aspects of searching for and using existing code in a programming task. A code search mechanism undoubtedly plays an essential supporting role in a developer’s search for code in his or her own programming task. Supporting code search activities, however, demands more than code search mechanisms. At the same time, code search mechanisms also help a developer in a wider spectrum of programming activities. We present the anatomy of the cognitive activity in which a developer searches for existing code, and we propose efficacy and attitude as two dimensions depicting code search activity. We discuss areas of necessary technical and socio-technical support for code search activities in addition to code search mechanisms. We conclude the chapter by calling for a developer-centered remixing-oriented development environment.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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 EPUB and 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
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover 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

Similar content being viewed by others

Notes

  1. 1.

    http://www.everythingisaremix.info/.

  2. 2.

    Note that by “code reuse,” we mean a developer’s action of simply using existing code in the developer’s task, and do not necessarily mean a part of more established areas of research on software reuse in software engineering.

  3. 3.

    http://maven.apache.org/.

References

  1. Ackerman, M.S.: Augmenting organizational memory: A field study of Answer Garden. ACM Trans Info Sys, 16(3), 203–224 (1998)

    Article  Google Scholar 

  2. Bajracharya, S.K., Ossher, J., Lopes, C.V.: Leveraging usage similarity for effective retrieval of examples in code repositories. Proc. FSE ’10, ACM, New York, 157–166 (2010)

    Google Scholar 

  3. Bar-Yossef, Z., Gurevich, M.: Mining search engine query logs via suggestion sampling, Proc. VLDB’08, Auckland, New Zealand, 54–65 (2008)

    Google Scholar 

  4. Boardman, R., Sasse, M.A.: Stuff goes into the computer and doesn’t come out: A cross-tool study of personal information management, Proc. CHI ’04, ACM, New York, 583–590 (2004)

    Google Scholar 

  5. Brandt, J., Guo, P.J., Lewenstein, J., Dontcheva, M., Klemmer, S.R.: Two studies of opportunistic programming: interleaving web foraging, learning, and writing code, Proc. CHI ’09, ACM, New York, 1589–1598 (2009)

    Google Scholar 

  6. Brandt, J., Dontcheva, M., Weskamp, M., Klemmer, S.R.: Example-centric programming: integrating web search into the development environment, Proc. CHI ’10, ACM, New York, 513–522 (2010)

    Google Scholar 

  7. Clarke, S.: Measuring API usability. Dr Dobb’s Journal Special Windows/NET Supplement, http://drdobbs.com/cpp/184405654 (2004)

  8. Cross R., Borgatti, S.P.: The ties that share: Relational characteristics that facilitate information seeking. In: Huysman M., Wulf V., Social Capital and Information Technology, pp. 137–161. The MIT Press, Cambridge, MA (2004)

    Google Scholar 

  9. Duala-Ekoko, E., Robillard, M.P.: Clone region descriptors: Representing and tracking duplication in source code. ACM Trans. Softw. Eng. Methodol. 20, 1, Article 3, 3:1–3:31 (July 2010)

    Google Scholar 

  10. Duala-Ekoko, E., Robillard, M.P.: Using structure-based recommendations to facilitate discoverability in APIs, Proc. 25th European Conf. on Object-Oriented Programming, 79–104 (July 2011)

    Google Scholar 

  11. Dumais, S., Cutrell, E., Cadiz, J.J., Jancke, G., Sarin, R., Robbins, D.C.: Stuff I’ve seen: A system for personal information retrieval and re-use, Proc. ACM SIGIR Conference on Research and Development in Information Retrieval, Toronto, Canada, 72–79 (2003)

    Google Scholar 

  12. Eisenberg, D.S., Stylos, J., Myers, B.A.: Apatite: a new interface for exploring APIs. Proc. CHI ’10, ACM, New York, 1331–1334 (2010)

    Google Scholar 

  13. Fourney, A., Mann, R., Terry, M.: Query-feature graphs: Bridging user vocabulary and system functionality, Proc. UIST ’11, ACM, New York, 207–216 (2011)

    Google Scholar 

  14. Fourney, A., Mann, R., Terry, M.: Characterizing the usability of interactive applications through query log analysis, Proc. CHI ’11, ACM, New York, 1817–1826 (2011)

    Google Scholar 

  15. Gallardo-Valencia, R.E., Sim, S.E.: What kinds of development problems can be solved by searching the web?: A field study, Proc. SUITE ’11, ACM, New York, 41–44 (2011)

    Google Scholar 

  16. Gerstberger P.G., Allen T.J.: Criteria used by research and development engineers in the selection of an information source. J. Appl. Psych. 52(4), 272–279 (1968)

    Article  Google Scholar 

  17. Goldhaber M.H.: The attention economy. First Monday 2(4), (1997).

    Google Scholar 

  18. Hartmann, B., MacDougall, D., Brandt, J., Klemmer, S.R.: What would other programmers do: Suggesting solutions to error messages, Proc. CHI ’10, ACM, New York, 1019–1028 (2010)

    Google Scholar 

  19. Henning, M.: API design matters, ACM Queue 5(4), 24–36 (May 2007)

    Article  Google Scholar 

  20. Hou, D., Li, L: Obstacles in using frameworks and APIs: An exploratory study of programmers’ newsgroup discussions, Proc. Program Comprehension (ICPC) 2011, IEEE, 91–100 (June 2011)

    Google Scholar 

  21. Illich, I.: Deschooling sSociety, Harper and Row, New York (1971)

    Google Scholar 

  22. Ko, A.J., Myers, B.A., Coblenz, M.J., Aung, H.H.: An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Transactions on Software Engineering, 33(12),971–987 (December 2006)

    Article  Google Scholar 

  23. Ko, A.J., DeLine, R., Venolia, G.: Information needs in collocated software development teams. Proc. ICSE 2007, 344–353 (May 2007)

    Google Scholar 

  24. Ko, A. J., Riche, Y.: The role of conceptual knowledge in API usability. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Pittsburgh, PA, 173–176 (2011)

    Google Scholar 

  25. Marchionini, G.: Exploratory search: From finding to understanding. Commun. ACM 49(4), 41–46 (April 2006)

    Article  Google Scholar 

  26. Nakakoji, K., Ye, Y., Yamamoto, Y.: Supporting expertise communication in developer-centered collaborative software development environments. In: Finkelstein, A., Grundy, J., van den Hoek, A., Mistrik, I., Whitehead, J. (eds.), Collaborative Software Engineering, chap. 11, pp. 152–169. Springer-Verlag, (May 2010)

    Google Scholar 

  27. Nakakoji, K., Ye, Y., Yamamoto, Y.: Comparison of coordination communication and expertise communication in software development: Motives, characteristics, and needs, In: Nakakoji, K., Murakami, Y., McCready, E. (eds.) New Frontiers in Artificial Intelligence, pp. 147–155. Springer-Verlag, LNAI6284 (August 2010)

    Google Scholar 

  28. Robillard, M.P., DeLine, R.: A field study of API learning obstacles. Empirical Software Engineering, 16(6), 703–732 (2011)

    Article  Google Scholar 

  29. Shirai, Y., Yamamoto, Y., Nakakoji, K.: A history-centric approach for enhancing Web browsing experiences, Extended Abstracts of CHI2006, 1319–1324 (April 2006)

    Google Scholar 

  30. Stylos, J., Myers, B.A.: Mica: A Web-search tool for finding API components and examples. Proc. VLHCC ’06, IEEE Computer Society, Washington, DC, 195–202 (2006)

    Google Scholar 

  31. Terry, M., Mynatt, E.D., Nakakoji, K., Yamamoto, Y.: Variation in element and action: Supporting simultaneous development of alternative solutions, Proc. CHI2004, ACM, New York, 711–718 (2004)

    Google Scholar 

  32. Ye, Y., Fischer G.: Supporting reuse by delivering task-relevant and personalized information. Proc. ICSE ’02, ACM, New York, 513–523 (2002)

    Google Scholar 

  33. Ye, Y., Fischer G.: Reuse-conducive development environments. Int. J. Automat. Softw. Eng. 12(2), 199–235 (2005)

    Article  Google Scholar 

  34. Ye, Y., Yamamoto, Y., Nakakoji, K.: A socio-technical framework for supporting programmers, Proc. ESEC/FSE 2007, ACM Press, Dubrovnik, Croatia, 351–360 (September 2007)

    Google Scholar 

  35. Ye, Y., Yamamoto, Y., Nakakoji, K., Nishinaka, Y., Asada, M.: Searching the library and asking the peers: Learning to use Java APIs on demand, Proc. PPPJ2007, ACM Press, Lisbon, Portugal, 41–50 (September 2007)

    Google Scholar 

  36. Ye, Y., Nakakoji, K., Yamamoto, Y.: Understanding and improving collective attention economy for expertise sharing, Proc. CAiSE 2008, Montpellier, France, 167–181, Lecture Notes in Computer Science, Vol. 5074, Springer, Berlin, Heidelberg (June 2008)

    Google Scholar 

  37. Ye, Y., Nakakoji, K.: CodeDepot: A one-stop code search environment based on the character and structural search methods, J. Digital Practices, Information Processing Society of Japan, 2(2), 117–124 (in Japanese) (April 2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kumiyo Nakakoji .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer Science+Business Media New York

About this chapter

Cite this chapter

Nakakoji, K., Yamamoto, Y., Nishinaka, Y. (2013). Unweaving Code Search Toward Remixing-Centered Programming Support. 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_2

Download citation

  • DOI: https://doi.org/10.1007/978-1-4614-6596-6_2

  • 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)

Publish with us

Policies and ethics