23
Eclipse Code Recommenders “IDE 2.0” Collec&ve Intelligence in So/ware Development Leveraging the Wisdom of the Crowds Marcel Bruch

Eclipse Indigo DemoCamp Walldorf 2011

Embed Size (px)

Citation preview

Page 1: Eclipse Indigo DemoCamp Walldorf 2011

Eclipse Code Recommenders

“IDE 2.0” Collec&ve  Intelligence  in  So/ware  Development  Leveraging  the  Wisdom  of  the  Crowds    Marcel Bruch

Page 2: Eclipse Indigo DemoCamp Walldorf 2011
Page 3: Eclipse Indigo DemoCamp Walldorf 2011

Developers Who Called “new Text()” Method Also Called

What Do Developers Ultimately Override After Extending This Class?

setText()

89%

addListener()

53%

setLayout()

99%

setFont()

35%

100 % overwrote PreferencePage.createContents()

96 % overwrote PreferencePage.performOk()

5 % overwrote PreferencePage.performCancel()

Eclipse Code Recommenders – do what most people do! (where appropriate)

Code All Frameworks

Eclipse Code Recommenders

Code

Page 4: Eclipse Indigo DemoCamp Walldorf 2011

INTELLIGENT  CODE  COMPLETION  

“Other  developers  frequently  bought  used  the  following  methods…”  

Page 5: Eclipse Indigo DemoCamp Walldorf 2011

Code  Comple&on…  

What does the developer need, i.e., which methods should the code completion present to the user?

Page 6: Eclipse Indigo DemoCamp Walldorf 2011

All 164 Methods of Text ?

Page 7: Eclipse Indigo DemoCamp Walldorf 2011

JButton? 381 Methods.

Page 8: Eclipse Indigo DemoCamp Walldorf 2011

Code  Comple&on…  

What does the developer need, i.e., which methods should the code completion present to the user?

Page 9: Eclipse Indigo DemoCamp Walldorf 2011

Intelligent  Code  Comple&on  

… or just the three missing ones?

Page 10: Eclipse Indigo DemoCamp Walldorf 2011

Smart  Bug  Detec&on  

What  have  I  missed?  

Demo:  Tools  Outline  

Usage-­‐Driven  Javadocs  Intelligent  Code  Comple&on  

Code  Example  Recommender  

How  do  I  get  an  instance  of…?  

Stacktrace  Search  Engine  

What  caused  that  stacktrace?  

Page 11: Eclipse Indigo DemoCamp Walldorf 2011

WHAT  CAUSED  THAT  STACKTRACE?  

Stackoverflow.com  –  Reloaded!  

Page 12: Eclipse Indigo DemoCamp Walldorf 2011

But  what  if  you  get  this?  

Page 13: Eclipse Indigo DemoCamp Walldorf 2011

Debugging  –  the  old  way  

Page 14: Eclipse Indigo DemoCamp Walldorf 2011

Debugging  –  the  old  way  

Page 15: Eclipse Indigo DemoCamp Walldorf 2011

But  more  o/en  we  get…  

Page 16: Eclipse Indigo DemoCamp Walldorf 2011

How  can  we  fix  that?    Don’t  stacktraces  share  some  commonali&es?  

org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.SWT.error(SWT.java:3770) at org.eclipse.swt.widgets.Widget.error(Widget.java:463) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:355) at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:317) at org.eclipselabs.cr.stacktraces.demo.ThreadDemo$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:619)

ExceptionType Feature (evaluates identical exception type) Message Similarity Feature

(counts of similar words)

TraceDiff Similarity Feature (counts similar stackframes per trace)

Page 17: Eclipse Indigo DemoCamp Walldorf 2011

How  about  stacktraces.org?  

Page 18: Eclipse Indigo DemoCamp Walldorf 2011

From  IDE  1.0  to  IDE  2.0  

Page 19: Eclipse Indigo DemoCamp Walldorf 2011

(Student)  Contributors  so  far…  Jan  Kassens,    Peter  Schroeder,  Daniel  Glöckner,  Maik  Görtz,  Johannes  Lerch,  Johannes  Born,   Mohsen   Parisay,   Andreas   Sewe,   SebasPan   Ahlfeld,   SebasPan   Kasten,   Daniel  Staesche,  David  Kalnischkies,  SebasPan  Wörner,  Boyan  Yurukov,  Jan  Stolzenburg,  Nico  Wombacher,   Dirk   Kröhan,   Florian   Jakob,   Julius   Rückert,   Steffen   Remus,   Christopher  Mann,  Stefan  Henss,  Andreas  Kaluza,  Nikolay  Shindov,  Michael  Novotny,  KrisPn  Arand,  Sinem  Emeröz,  Michael  Kutschke,  SebasPan  Proksch,  Tomasz  Kalbarczyk,  Marko  MarPn,  Sheip  Dargutev,  David  Schuld,  Jens  Krause,  KrisPjan  Madunic,  Daniel  Brandtner,  Roman  GeWo,  ChrisPan  Kilb,  Johannes  Kastl,  Dennis  Sänger,  Annie  Liu,  Markus  Migenda,  Tjark  Vandommele,   SebasPan   Denel,   Florian   Nöll,   Gary   Fritz,   Dennis   Siebert,   Peter   Sinzig,  Laura   Altmüller,   Paul   Schatygin,   Jan-­‐Michael   Heller,   Minh   Hoang   Nguyen,   Sascha  Nordquist  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

   

   

 

 

   

 

Page 20: Eclipse Indigo DemoCamp Walldorf 2011

Smart  Bug  Detec&on  

What  have  I  missed?  

Summary  

Usage-­‐Driven  Javadocs  Intelligent  Code  Comple&on  

Code  Example  Recommender  

How  do  I  get  an  instance  of…?  

Stacktrace  Search  Engine  

What  caused  that  stacktrace?  

Page 21: Eclipse Indigo DemoCamp Walldorf 2011

It’s  there.  

http://eclipse.org/recommenders

Follow me on twitter: @MarcelBruch

Page 22: Eclipse Indigo DemoCamp Walldorf 2011

Q  &  A  

Page 23: Eclipse Indigo DemoCamp Walldorf 2011

Affilia&on  

Prof.  Dr.  Mira  Mezini  So/ware  Technology  Group  Fachbereich  Informa&k  Technische  Universität  Darmstadt