search and the crowd: next-generation software tools

32
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Search and the Crowd: Next-Generation Software Tools André van der Hoek [email protected]

Upload: livana

Post on 25-Feb-2016

25 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Search  and the  Crowd: Next-Generation  Software Tools

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]

Page 2: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 2

Long, long ago…

Page 3: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 3

…and then…

Page 4: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 4

…and then…

Page 5: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 5

…and now…

Page 6: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 6

…and now…

Page 7: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 7

…but what about tomorrow?

Page 8: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 8

Two projects

• Social-technical code search

• Crowdsourcing

Page 9: Search  and the  Crowd: Next-Generation  Software Tools

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

Page 10: Search  and the  Crowd: Next-Generation  Software Tools

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

Page 11: Search  and the  Crowd: Next-Generation  Software Tools

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

Page 12: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 12

Interface design #1

Page 13: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 13

Interface design #2

Page 14: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 14

CodeExchange prototype

Page 15: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 15

CodeExchange prototype

Page 16: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 16

Three projects

• Social-technical code search

• Crowdsourcing

Page 17: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 17

Crowdsourcing: motivation 1

Page 18: Search  and the  Crowd: Next-Generation  Software Tools

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, …

Page 19: Search  and the  Crowd: Next-Generation  Software Tools

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?

Page 20: Search  and the  Crowd: Next-Generation  Software Tools

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

Page 21: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 21

Crowdcode

Page 22: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 22

Crowdcode

Page 23: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 23

Crowdcode

Page 24: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 24

Crowdcode

Page 25: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 25

Crowdcode

Page 26: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 26

Crowdcode

Page 27: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 27

Crowdcode

Page 28: Search  and the  Crowd: Next-Generation  Software Tools

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?

Page 29: Search  and the  Crowd: Next-Generation  Software Tools

Department of Informatics, UC IrvineSDCL Collaboration LaboratorySoftware Design and

sdcl.ics.uci.edu 29

Research areas

environment

collaboration design

education

Page 30: Search  and the  Crowd: Next-Generation  Software Tools

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

Page 31: Search  and the  Crowd: Next-Generation  Software Tools

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

Page 32: Search  and the  Crowd: Next-Generation  Software Tools

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