320 likes | 414 Views
Search and the Crowd: Next-Generation Software Tools. André van der Hoek andre@ics.uci.edu. Long, long ago…. …and then…. …and then…. …and now…. …and now…. …but what about tomorrow?. Two projects. Social-technical code search Crowdsourcing. Google ‘secure key generation Java ’.
E N D
Search and the Crowd:Next-Generation Software Tools André van der Hoekandre@ics.uci.edu
Two projects • Social-technical code search • Crowdsourcing
Google ‘secure key generation Java’ • A sub-page of a longer tutorial that only shows a small portion of the overall code of how to generate a digital signature; • A sub-page in a longer tutorial for keytool, which is entirely unrelated; • The JavaDoc page for class KeyGenerator (listing methods and their signatures only); • A WikiJava page with code encrypting and decrypting a message, together with some user comments, most of which are “thank you’s”, though one, interestingly, links to another WikiJava page containing an adaptation of the sample code; • A java2s.com page that provides an index into seventeen code snippets, each using a different encryption algorithm but otherwise exactly the same; • The code snippet from the first link of the java2s.com page; • A StackOverflow page asking for help with an exception in using the Java crypto libraries; • A StackOverflow page asking for help with an adaptation to some sample code so the same key is generated each time; • A StackOverflow page asking for help with a license key (completely unrelated to programming); and • A StackOverflow page asking how to move a key from one machine to another
Requirements • Search for real code, in real use • Be able to understand the context surrounding the results of the search • Know the history of the code in terms of how it has been adopted and adapted • Work with search results directly in the development environment
Three projects • Social-technical code search • Crowdsourcing
Crowdsourcing: motivation 2 • Microsoft, Facebook, Apple, Lockheed Martin, Department of Homeland Security, Los Alamos National Lab, …
Crowdsourcing: motivation 2 • Microsoft, Facebook, Apple, Lockheed Martin, Department of Homeland Security, Los Alamos National Lab, … • What if, in a time of crisis, … • …our defenses are not strong enough, and critical software is stolen? • …our adversaries act in ways we did not anticipate, or succeed in developing new capabilities that eclipse ours?
Crowdprogramming • Mobilize unprecedented numbers of people to develop new, complex software capabilities, ultrafast • Break the traditional notion of a development task and think of work in microtasks • Fundamentally rethink current development tools, environments, and processes
Key research questions • What is the software equivalent of a microtask? • How to coordinate at massive scale? • How to deal with failure? • What tool infrastructure is needed?
Research areas environment collaboration design education
Research philosophy • Practical… • …with a theoretical basis… • …and (ideally) educational benefits
Other projects • Topic location & software ecosystems • Studying professional software designers • Software design sketching
SDCL Software Design and CollaborationLaboratory sdcl.ics.uci.edu Department of Informatics, UC Irvine