Related Work Over 92% of the questions on StackOverflow are answered, and for those 92% the median answer time is 11 minutes. Design lessons from the fastest q&a site in the west L.Mamykina, B.Manoim, M.Mittal, G.Hripcsak, B.Hartmann (2011) Linking StackOverflow data with API usage Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow Chris Parnin, Cristoph Teude, Lars Grammel and Margaret-Anne Storey (2012)
Research Question Q1: Is it possible to use SO for code recommendations ? Q2: Can we improve example usage by supporting actions (searching, comparing)?
Design Objectives Comparing multiple examples Display several code example at once Display only the code snippet itself Minimal context switching If required show additional context at the same place No need to go “forward” or “backwards”
Example Overflow Searching Keyword Search based on TF-IDF Each example is represented as a Document with several parts. Sdoc = [ Wtitle Stitle + Wtag Stag + Wanswer Sanswer + Wquestion Squestion + Wcode Scode ] Smetadata
Rank of a suitable example at the returned search results Data Point Code Repository Tools Google Search Krugle Koders Stack Overflow Example Overflow Dynamic Dimension 4 Not found Not found 1 3 Hover 1 2 1 1 2 Position 3 Not found Not found 4 1 Rounded Corners 2 Not found 3 3 1 Draggable 1 Not found 3 2 1 Dropable 1 Not found 3 1 2 Autocomplete 1 Not found Not Found 1 1 Accordion 1 Not found 12 3 1 Date Picker 1 Not found 3 1 1 Image Scale 2 Not found Not found Not found 3 Avg. Rank 1.7 19.1 9.7778 3.8 1.6
Small Pilot at ICSE12 The search is keyword dependent Sequential Search vs Iterative Search (refine) System performance matters Feedback loop Runnable code
Limitations EO not only enables Example Embedding EcoSystem but also enabled by it. It is unclear whether using SO can scale well Preliminary evaluation is limited and a thorough user study should be conducted.
Future Work User study: Quantative Example Overflow logs every action per user+session: Query used Results viewed Additional pages loaded Result chosen Additional context needed Qualitative User observations