search and the crowd: next-generation software tools
DESCRIPTION
Search and the Crowd: Next-Generation Software Tools. André van der Hoek [email protected]. 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 ’. - PowerPoint PPT PresentationTRANSCRIPT
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 1
Search and the Crowd:Next-Generation Software Tools
André van der [email protected]
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 2
Long, long ago…
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 3
…and then…
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 4
…and then…
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 5
…and now…
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 6
…and now…
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 7
…but what about tomorrow?
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 8
Two projects
• Social-technical code search
• Crowdsourcing
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 9
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
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 10
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
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 11
Context
Information type Specific data elementStatic information - which project
- which authors- source language- OS
Derived information - code churn- past buggyness- number of authors- test coverage
Code history - projects that adopted the code- how the code was adapted
Adaptation effort - number of edits- number of build/test failures- time estimate
Social environment - network of colleagues- network of friends- recommendations
Social feedback - reputation- tags
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 12
Interface design #1
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 13
Interface design #2
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 14
CodeExchange prototype
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 15
CodeExchange prototype
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 16
Three projects
• Social-technical code search
• Crowdsourcing
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 17
Crowdsourcing: motivation 1
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 18
Crowdsourcing: motivation 2
• Microsoft, Facebook, Apple, Lockheed Martin, Department of Homeland Security, Los Alamos National Lab, …
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 19
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?
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 20
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
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 21
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 22
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 23
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 24
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 25
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 26
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 27
Crowdcode
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 28
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?
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 29
Research areas
environment
collaboration design
education
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 30
Research philosophy
• Practical…
• …with a theoretical basis…
• …and (ideally) educational benefits
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 31
Other projects
• Topic location & software ecosystems
• Studying professional software designers
• Software design sketching
Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu 32
SDCL Collaboration LaboratorySoftware Design and
sdcl.ics.uci.edu
Department of Informatics, UC Irvine