19. Tools
Outline
Intelligent
Code
Comple8on Usage-‐Driven
Javadocs
Code
Example
Recommender
How
do
I
get
an
instance
of…?
11
Donnerstag, 28. Juli 2011
20. Tools
Outline
Intelligent
Code
Comple8on Usage-‐Driven
Javadocs
Code
Example
Recommender Smart
Bug
Detec8on
How
do
I
get
an
instance
of…? What
have
I
missed?
11
Donnerstag, 28. Juli 2011
21. Tools
Outline
Intelligent
Code
Comple8on Usage-‐Driven
Javadocs
Stacktrace
Search
Engine
Code
Example
Recommender Smart
Bug
Detec8on
What
caused
that
stacktrace?
How
do
I
get
an
instance
of…? What
have
I
missed?
11
Donnerstag, 28. Juli 2011
22. “Why
is
Google
Codesearch
not
‘google
for
code
search’?
”
Leveraging
User
Feedback
to
Improve
Code
Search
Engines
Donnerstag, 28. Juli 2011
33. So
far
we
have…
Intelligent
Code
Comple8on Usage-‐Driven
Javadocs
Code
Example
Recommender Smart
Bug
Detec8on
How
do
I
get
an
instance
of…? What
have
I
missed?
Donnerstag, 28. Juli 2011
34. But
what
if
you
get
this?
Donnerstag, 28. Juli 2011
39. How
can
we
fix
that?
Don’t
stacktraces
share
some
commonali8es?
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)
Donnerstag, 28. Juli 2011
40. How
can
we
fix
that?
Don’t
stacktraces
share
some
commonali8es?
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)
Donnerstag, 28. Juli 2011
41. “IDE
2.0?
Leveraging
the
wisdom
of
the
(Eclipse)
community…”
Eclipse
Code
Recommenders
Donnerstag, 28. Juli 2011
42. From
IDE
1.0
to
IDE
2.0
24
Donnerstag, 28. Juli 2011
43. From
IDE
1.0
to
IDE
2.0
24
Donnerstag, 28. Juli 2011
54. font
size
≈
#
cita8ons
Google
Scholar
40
Research
Tools
on
SoQware
Engineering...
FindBugs Abbrevia8on
Comple8on
Exper>se
Browser
eRose
PopCon GrouMiner
Code
Recommenders
Ala]n
Jadet
FrUiT Exemplar PR-‐Miner
Dhruv Marie
eXoaDocs
Kagdi DynaMine Hipikat
CodeWeb SemDiff
Mapo
Mylyn Error
Specs
CodeBroker
SNIFF CP-‐Miner
SpotWeb
Mica
Hill
and
Rideout
Suade Altair
Prospector
Jadeite
MUDABlue StrathCona
ParseWeb
OComple8on Sourcerer xSnippet 29
Donnerstag, 28. Juli 2011
55. Tools
actually
used
by
Programmers....
FindBugs Abbrevia8on
Comple8on Exper8se
Browser
PopCon GrouMiner
eRose Code
Recommenders
Ala]n
FrUiT Exemplar PR-‐Miner
Jadet
Dhruv Marie
eXoaDocs
DynaMine
Kagdi Hipikat
CodeWeb
SemDiff
Mapo Mylyn Error
Specs
CodeBroker
CP-‐Miner
SNIFF
SpotWeb
Mica
Hill
and
Rideout
Suade
Altair
Prospector
Jadeite
MUDABlue StrathCona
ParseWeb
OComple8on Sourcerer xSnippet 30
Donnerstag, 28. Juli 2011
56. “How
many
papers
could
I
write
instead...?”
What
prevents
you
from
doing?
Donnerstag, 28. Juli 2011
57. Maturity
Levels
Start of Research Usable Industry-ready
Research Prototype Prototype Tool
t
32
Donnerstag, 28. Juli 2011
58. Maturity
Levels
Start of Research Usable Industry-ready
Research Prototype Prototype Tool
t
Infrastructure: Homepage Mailing List IP Checks
Primitive GUI Homepage Community
Source Tarballs Blog Release Plans
Issue Tracker Multi-Branches
Marketplace Continuous Integration
33
Donnerstag, 28. Juli 2011
59. Maturity
Levels
Start of Research Usable Industry-ready
Research Prototype Prototype Tool
t
Infrastructure: Homepage Mailing List IP Checks
Primitive GUI Homepage Community
Source Tarballs Blog Release Plans
Issue Tracker Multi-Branches
Marketplace Continuous Integration
Research: Paper Large-scale Evaluation
Data New Tools
New Papers
33
Donnerstag, 28. Juli 2011
60. Maturity
Levels
Start of Research Usable Industry-ready
Research Prototype Prototype Tool
t
Infrastructure: Homepage Mailing List IP Checks
Primitive GUI Homepage Community
Source Tarballs Blog Release Plans
Issue Tracker Multi-Branches
Marketplace Continuous Integration
Research: Paper Large-scale Evaluation
Data New Tools
New Papers
33
Donnerstag, 28. Juli 2011
61. Maturity
Levels
Start of Research Usable Industry-ready
Research Prototype Prototype Tool
t
Infrastructure: Homepage Mailing List IP Checks
Primitive GUI Homepage Community
Source Tarballs Blog Release Plans
Issue Tracker Multi-Branches
Marketplace Continuous Integration
Research: Paper Large-scale Evaluation
Data New Tools
New Papers
Perception: Research Community Early Adopters in Business
Companies
33
Donnerstag, 28. Juli 2011
62. Maturity
Levels
Start of Research Usable Industry-ready
Research Prototype Prototype Tool
t
Infrastructure: Homepage Mailing List IP Checks
Primitive GUI Homepage Community
Source Tarballs Blog Release Plans
Issue Tracker Multi-Branches
Marketplace Continuous Integration
Research: Paper Large-scale Evaluation
Data New Tools
New Papers
Perception: Research Community Early Adopters in Business
Companies
33
Donnerstag, 28. Juli 2011
63. “There
is
sSll
no
free
lunch.
Community
needs
work...”
Retrospec>ve:
Building
a
Community
Donnerstag, 28. Juli 2011
69. Future
Research
Coopera8ons?
Topic University
Abbrevia8on
Comple8on Massachuchetss
Ins8tute
of
Technology,
US
Subwords
Comple8on
Engine Paul
Emanuel
Faidherbe,
private
Stacktrace
Search Federal
University
of
Rio
de
Janeiro
“API
Groups”
Comple8on
Engine Munich
University
of
Technology,
Germany
Module
Exper8se
Recommender University
of
Kassel,
Germany
40
Donnerstag, 28. Juli 2011
70. “Warning:
They
might
look
different
to
what
you
expect...”
Some
Numbers
Donnerstag, 28. Juli 2011
71. Mileage
Location Time(s) Attendees Distance
Darmstadt 4x 250 0 km
Frankfurt 2x 140 40 km
Walldorf 1x 150 70 km
Karlsruhe 3x 180 110 km
Ludwigsburg 2x 100 160 km
Bonn 1x 50 180 km
Kassel 1x 30 220 km
Dortmund 1x 50 250 km
Zurich 1x 10 390 km
Munich 1x 170 400 km
Total 15x 1130 4480 km
42
Donnerstag, 28. Juli 2011
88. You
write
tools
in
Eclipse?
We
provide
a
plaqorm:
• Eclipselabs
Git
Repository
• Build
System
• Database
• Infrastructure
in
Eclipse
and
Servers
(Selec8ons,
Code
Comple8on,
Codesearch,
Stacktraces,
Extended
Javadocs)
56
Donnerstag, 28. Juli 2011
89. You
write
tools
in
Eclipse?
We
provide
a
plaqorm:
• Eclipselabs
Git
Repository
• Build
System
• Database
• Infrastructure
in
Eclipse
and
Servers
(Selec8ons,
Code
Comple8on,
Codesearch,
Stacktraces,
Extended
Javadocs)
We
build
a
community:
• DemoCamps,
• Industry
Conferences,
• Magazine
Ar8cles
/
Interviews,
• Blog,
• Twiner,
• ...
56
Donnerstag, 28. Juli 2011
90. Tools
actually
used
by
Programmers....
FindBugs Abbrevia8on
Comple8on Exper8se
Browser
Mylyn
Code
Recommenders
PopCon GrouMiner
eRose
Ala]n PR-‐Miner
Exemplar
“Your
tool”
FrUiT
Jadet
Dhruv Marie
eXoaDocs
DynaMine
Kagdi Hipikat
CodeWeb
“Your
tool”
SemDiff
Mapo
Error
Specs
CodeBroker
CP-‐Miner
SNIFF
SpotWeb
Mica
Hill
and
Rideout
Suade
Altair
“Your
tool” Jadeite
Prospector
MUDABlue StrathCona
ParseWeb
OComple8on Sourcerer xSnippet 57
Donnerstag, 28. Juli 2011