1 / 32

Search and the Crowd: Next-Generation Software Tools

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 ’.

livana
Download Presentation

Search and the Crowd: Next-Generation Software Tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Search and the Crowd:Next-Generation Software Tools André van der Hoekandre@ics.uci.edu

  2. Long, long ago…

  3. …and then…

  4. …and then…

  5. …and now…

  6. …and now…

  7. …but what about tomorrow?

  8. Two projects • Social-technical code search • Crowdsourcing

  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

  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

  11. Context

  12. Interface design #1

  13. Interface design #2

  14. CodeExchange prototype

  15. CodeExchange prototype

  16. Three projects • Social-technical code search • Crowdsourcing

  17. Crowdsourcing: motivation 1

  18. Crowdsourcing: motivation 2 • Microsoft, Facebook, Apple, Lockheed Martin, Department of Homeland Security, Los Alamos National Lab, …

  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?

  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

  21. Crowdcode

  22. Crowdcode

  23. Crowdcode

  24. Crowdcode

  25. Crowdcode

  26. Crowdcode

  27. Crowdcode

  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?

  29. Research areas environment collaboration design education

  30. Research philosophy • Practical… • …with a theoretical basis… • …and (ideally) educational benefits

  31. Other projects • Topic location & software ecosystems • Studying professional software designers • Software design sketching

  32. SDCL Software Design and CollaborationLaboratory sdcl.ics.uci.edu Department of Informatics, UC Irvine

More Related