Introduction: Remixing Snippets and Reusing Components.- Unweaving Code Search toward Remixing-Centered Programming Support.- Archetypal Internet-Scale Source Code Searching.- A Controlled Experiment on the Process Used by Developers During Internet-Scale Code Search.- Artifact Representation Techniques for Large-Scale Software Search Engines.- Krugle Code Search Architecture.- Experiences and Lessons Learned with the Development of a Source Code Search Engine.- Infrastructure for Building Code Search Applications for Developers.- Developing Software with Open Source Software Components.- Open Source Reuse and Strategic Imperatives.- Applying Program Analysis to Code Retrieval.- Test-Driven Reuse: Key to Improving Precision of Search Engines for Software Reuse.- Software Problems that Motivate Web Searches.- Novel and Applied Algorithms in a Search Engine for Java Code Snippets.- Facilitating Crowd Sourced Software Engineering via Stack Overflow.- Intellectual Property Law in Source Code Reuse and Remix.- Richie Boss: Private Investigator Manager.
In recent years, searching for source code on the web has become increasingly common among professional software developers and is emerging as an area of academic research. This volume surveys past research and presents the state of the art in the area of "code retrieval on the web." This work 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 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. Contributors include leading researchers from human-computer interaction, software engineering, programming languages, and management.
"Finding Source Code on the Web for Remix and Reuse" consists of five parts. Part I is titled "Programmers and Practices," and consists of a retrospective chapter and two empirical studies on how programmers search the web for source code. Part II is titled "From Data Structures to Infrastructures," and covers the creation of ground-breaking search engines for code retrieval required ingenuity in the adaptation of existing technology and in the creation of new algorithms and data structures. Part III focuses on "Reuse: Components and Projects," which are reused with minimal modification. Part IV is on "Remix: Snippets and Answers," which examines how source code from the web can also be used as solutions to problems and answers to questions. The book concludes with Part V, "Looking Ahead," that looks at future programming and the legalities of software reuse and remix and the implications of current intellectual property law on
First comprehensive treatment of the topic, bringing together results from multiple research areas including information retrieval, programming, software tools, software reuse, testing, and social aspects
Presents essential reading for researchers new to the area
Includes contributions from leading companies and experts in data structure, software engineering, and HCI