Eclipse Indigo DemoCamp Walldorf 2011

Preview:

Citation preview

Eclipse Code Recommenders

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

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

INTELLIGENT  CODE  COMPLETION  

“Other  developers  frequently  bought  used  the  following  methods…”  

Code  Comple&on…  

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

All 164 Methods of Text ?

JButton? 381 Methods.

Code  Comple&on…  

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

Intelligent  Code  Comple&on  

… or just the three missing ones?

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?  

WHAT  CAUSED  THAT  STACKTRACE?  

Stackoverflow.com  –  Reloaded!  

But  what  if  you  get  this?  

Debugging  –  the  old  way  

Debugging  –  the  old  way  

But  more  o/en  we  get…  

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)

How  about  stacktraces.org?  

From  IDE  1.0  to  IDE  2.0  

(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  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

   

   

 

 

   

 

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?  

It’s  there.  

http://eclipse.org/recommenders

Follow me on twitter: @MarcelBruch

Q  &  A  

Affilia&on  

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

Recommended