1. Eclipse Code
Recommenders
“IDE 2.0”
Collec&ve
Intelligence
in
So/ware
Development
Leveraging
the
Wisdom
of
the
Crowds
Marcel Bruch
2.
3. Eclipse Code Recommenders
All Frameworks Code
Code
Eclipse Code Recommenders
– do what most people do! (where appropriate)
Developers Who Called “new Text()” Method Also Called
setText() addListener() setLayout() setFont()
89% 53% 99% 35%
What Do Developers Ultimately Override After Extending This Class?
100 % overwrote
PreferencePage.createContents()
96 % overwrote
PreferencePage.performOk()
5 % overwrote
PreferencePage.performCancel()
10. Demo:
Tools
Outline
Intelligent
Code
Comple&on
Usage-‐Driven
Javadocs
Stacktrace
Search
Engine
Code
Example
Recommender
Smart
Bug
Detec&on
What
caused
that
stacktrace?
How
do
I
get
an
instance
of…?
What
have
I
missed?
16. How
can
we
fix
that?
Don’t
stacktraces
share
some
commonali&es?
ExceptionType Feature
(evaluates identical exception type) Message Similarity Feature
(counts of similar words)
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)
TraceDiff Similarity Feature
(counts similar stackframes per trace)
19. (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
20. Summary
Intelligent
Code
Comple&on
Usage-‐Driven
Javadocs
Stacktrace
Search
Engine
Code
Example
Recommender
Smart
Bug
Detec&on
What
caused
that
stacktrace?
How
do
I
get
an
instance
of…?
What
have
I
missed?