Search and the Crowd: Next-Generation Software Tools

Preview:

DESCRIPTION

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 ’. - PowerPoint PPT Presentation

Citation preview

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 Hoekandre@ics.uci.edu

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

Recommended