ide 2.0 & research at eclipse - ecoop 2011
Post on 28-Dec-2014
781 Views
Preview:
DESCRIPTION
TRANSCRIPT
How do you share knowledge?
1
Donnerstag, 28. Juli 2011
How do you share knowledge?
Pairs0
Pair ProgrammingReviews
1
Donnerstag, 28. Juli 2011
How do you share knowledge?
Pairs0
Pair ProgrammingReviews
Mee8ngsEmailsChats
Colleagues5
1
Donnerstag, 28. Juli 2011
How do you share knowledge?
Pairs0
Pair ProgrammingReviews
Mee8ngsEmailsChats
Colleagues5
PhoneEmails
Mailing Lists
Remote Collabs42
1
Donnerstag, 28. Juli 2011
How do you share knowledge?
Pairs0
Pair ProgrammingReviews
Mee8ngsEmailsChats
Colleagues5
ForumsStackoverflow.com
Community1927
PhoneEmails
Mailing Lists
Remote Collabs42
1
Donnerstag, 28. Juli 2011
Eclipse Code Recommenders
“IDE 2.0”Research at Eclipse.org@MarcelBruch
Agile@
ECOOP
Donnerstag, 28. Juli 2011
3
Donnerstag, 28. Juli 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 % overwrotePreferencePage.createContents()
96 % overwrotePreferencePage.performOk()
5 % overwrotePreferencePage.performCancel()
Eclipse Code
CodeAll Frameworks
Eclipse Code RecommendersCode
4
Donnerstag, 28. Juli 2011
Intelligent Code Comple>on“Other developers frequently bought used the following methods…”
Donnerstag, 28. Juli 2011
Code Comple8on…
What does the developer need, i.e., which methods should the code comple>on present to the user?
6
Donnerstag, 28. Juli 2011
Donnerstag, 28. Juli 2011
All 164 Methods of Text ?
Donnerstag, 28. Juli 2011
JBuOon? 381 Methods.
Donnerstag, 28. Juli 2011
Code Comple8on…
What does the developer need, i.e., which methods should the code comple>on present to the user?
9
Donnerstag, 28. Juli 2011
Intelligent Code Comple8on
… or just the three missing ones?
10
Donnerstag, 28. Juli 2011
Tools Outline
11
Donnerstag, 28. Juli 2011
Tools Outline
Intelligent Code Comple8on
11
Donnerstag, 28. Juli 2011
Tools Outline
Usage-‐Driven JavadocsIntelligent Code Comple8on
11
Donnerstag, 28. Juli 2011
Tools Outline
Usage-‐Driven JavadocsIntelligent Code Comple8on
Code Example Recommender
How do I get an instance of…?
11
Donnerstag, 28. Juli 2011
Smart Bug Detec8on
What have I missed?
Tools Outline
Usage-‐Driven JavadocsIntelligent Code Comple8on
Code Example Recommender
How do I get an instance of…?
11
Donnerstag, 28. Juli 2011
Smart Bug Detec8on
What have I missed?
Tools Outline
Usage-‐Driven JavadocsIntelligent Code Comple8on
Code Example Recommender
How do I get an instance of…?
Stacktrace Search Engine
What caused that stacktrace?
11
Donnerstag, 28. Juli 2011
Leveraging User Feedback toImprove Code Search Engines
“Why is Google Codesearch not ‘google for code search’? ”
Donnerstag, 28. Juli 2011
Leveraging user feedback
13
...
...
...
...
Donnerstag, 28. Juli 2011
Leveraging user feedback
13
...
...
...
...
Donnerstag, 28. Juli 2011
Refine the ranking based on feedback
Donnerstag, 28. Juli 2011
Refine the ranking based on feedback
Donnerstag, 28. Juli 2011
Learning how to rank…
15
Donnerstag, 28. Juli 2011
Learning how to rank…
15
1
3
2
Donnerstag, 28. Juli 2011
Learning how to rank…
15
1
3
2
2
3
1
Donnerstag, 28. Juli 2011
Learning how to rank…
15
1
3
2
Support Vector Machine
2
3
1
Donnerstag, 28. Juli 2011
Learning how to rank…
15
1
3
2
Support Vector MachineSVMRank
2
3
1
Donnerstag, 28. Juli 2011
What Caused that Stacktrace?Stackoverflow.com – Reloaded!
Donnerstag, 28. Juli 2011
So far we have…
Smart Bug Detec8on
What have I missed?
Usage-‐Driven JavadocsIntelligent Code Comple8on
Code Example Recommender
How do I get an instance of…?
Donnerstag, 28. Juli 2011
But what if you get this?
Donnerstag, 28. Juli 2011
Debugging – the old way
Donnerstag, 28. Juli 2011
Debugging – the old way
Donnerstag, 28. Juli 2011
Debugging – the old way
Donnerstag, 28. Juli 2011
But more oQen we get…
Donnerstag, 28. Juli 2011
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
How can we fix that? Don’t stacktraces share some commonali8es?
ExceptionType Feature(evaluates identical exception type) Message Similarity Feature
(counts of similar words)
TraceDiff Similarity Feature(counts similar stackframes per trace)
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
Eclipse Code Recommenders“IDE 2.0? Leveraging the wisdom of the (Eclipse) community…”
Donnerstag, 28. Juli 2011
From IDE 1.0 to IDE 2.0
24
Donnerstag, 28. Juli 2011
From IDE 1.0 to IDE 2.0
24
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
25
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
project environment
25
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
project environment
context
25
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
object usage
project environment
context
25
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
object usage
selectedproposals
project environment
context
25
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
object usage
selectedproposals
project environment
context
clickfeedback
25
Donnerstag, 28. Juli 2011
Leveraging your IDE’s build environment
object usage
selectedproposals
project environment
context
Stacktraces
clickfeedback
25
Donnerstag, 28. Juli 2011
26
Donnerstag, 28. Juli 2011
Part II: Experience Report “Going Eclipse”
Donnerstag, 28. Juli 2011
Why?
Donnerstag, 28. Juli 2011
40 Research Tools on SoQware Engineering...
Code Recommenders
Mylyn
Abbrevia8on Comple8on
Prospector
xSnippetOComple8on
Hill and RideoutAltairSuade
eXoaDocs
SemDiffCodeWeb
Exemplar
Jadeite
FrUiT
Hipikat
SpotWeb
Exper>se BrowserPopConeRose
Dhruv Marie
Sourcerer
Mapo
Mica
MUDABlueParseWeb
StrathCona
CodeBrokerSNIFF CP-‐Miner
Jadet
GrouMiner
Error Specs
DynaMine
PR-‐MinerAla]n
Kagdi
FindBugs
font size ≈ # cita8ons Google Scholar
29
Donnerstag, 28. Juli 2011
Tools actually used by Programmers....
Code Recommenders
Mylyn
Abbrevia8on Comple8on
Prospector
xSnippetOComple8on
Hill and Rideout
AltairSuade
eXoaDocs
SemDiffCodeWeb
Exemplar
Jadeite
FrUiT
Hipikat
SpotWeb
Exper8se Browser
PopConeRose
Dhruv Marie
Sourcerer
Mapo
Mica
MUDABlue
ParseWebStrathCona
CodeBroker
SNIFFCP-‐Miner
Jadet
GrouMiner
Error Specs
DynaMine
PR-‐Miner
Ala]n
Kagdi
FindBugs
30
Donnerstag, 28. Juli 2011
What prevents you from doing?“How many papers could I write instead...?”
Donnerstag, 28. Juli 2011
Maturity Levels
Industry-readyTool
UsablePrototype
ResearchPrototype
t
Start ofResearch
32
Donnerstag, 28. Juli 2011
Maturity Levels
33
Infrastructure: HomepagePrimitive GUISource Tarballs
Mailing ListHomepageBlogIssue TrackerMarketplace
IP ChecksCommunityRelease PlansMulti-BranchesContinuous Integration
Industry-readyTool
UsablePrototype
ResearchPrototype
t
Start ofResearch
Donnerstag, 28. Juli 2011
Maturity Levels
33
Infrastructure: HomepagePrimitive GUISource Tarballs
Mailing ListHomepageBlogIssue TrackerMarketplace
IP ChecksCommunityRelease PlansMulti-BranchesContinuous Integration
Research: PaperData
Large-scale EvaluationNew ToolsNew Papers
Industry-readyTool
UsablePrototype
ResearchPrototype
t
Start ofResearch
Donnerstag, 28. Juli 2011
Maturity Levels
33
Infrastructure: HomepagePrimitive GUISource Tarballs
Mailing ListHomepageBlogIssue TrackerMarketplace
IP ChecksCommunityRelease PlansMulti-BranchesContinuous Integration
Research: PaperData
Large-scale EvaluationNew ToolsNew Papers
Industry-readyTool
UsablePrototype
ResearchPrototype
t
Start ofResearch
Donnerstag, 28. Juli 2011
Maturity Levels
33
Infrastructure: HomepagePrimitive GUISource Tarballs
Mailing ListHomepageBlogIssue TrackerMarketplace
IP ChecksCommunityRelease PlansMulti-BranchesContinuous Integration
Perception: Research Community Early Adopters in Companies
Business
Research: PaperData
Large-scale EvaluationNew ToolsNew Papers
Industry-readyTool
UsablePrototype
ResearchPrototype
t
Start ofResearch
Donnerstag, 28. Juli 2011
Maturity Levels
33
Infrastructure: HomepagePrimitive GUISource Tarballs
Mailing ListHomepageBlogIssue TrackerMarketplace
IP ChecksCommunityRelease PlansMulti-BranchesContinuous Integration
Perception: Research Community Early Adopters in Companies
Business
Research: PaperData
Large-scale EvaluationNew ToolsNew Papers
Industry-readyTool
UsablePrototype
ResearchPrototype
t
Start ofResearch
Donnerstag, 28. Juli 2011
Retrospec>ve: Building a Community“There is sSll no free lunch. Community needs work...”
Donnerstag, 28. Juli 2011
Eclipse DemoCamps
Galileo: 2x 2009
Helios: 5x 2010
Indigo: 3x 2011
35
Donnerstag, 28. Juli 2011
Eclipse Magazine Ar8cles [de]
36
Donnerstag, 28. Juli 2011
Industry Conference Talks
1x 2010
1x 2009,1x 2010
1x 2010
37
Donnerstag, 28. Juli 2011
Company Talks
38
Donnerstag, 28. Juli 2011
Beginning Coopera8ons
?
Eclipse JDT
not yet :)
39
Donnerstag, 28. Juli 2011
Future Research Coopera8ons?
40
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
Donnerstag, 28. Juli 2011
Some Numbers“Warning: They might look different to what you expect...”
Donnerstag, 28. Juli 2011
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
43
Webpage Visits
0
500
1000
1500
2000
1.3.09 1.5.09 1.7.09 1.9.09 1.11.09 1.1.10 1.3.10 1.5.10 1.7.10 1.9.10 1.11.10 1.1.11 1.3.11 1.5.11
63
11551015
818
1096982
183284
197 209 166267
142278
491692
546647 606
499 521 475
884
507
1529
1021 939
630 682
1650 0 0 0
University Eclipse.org
EclipseMagazin
1st Blog
Move toEclipselabs
DZone Ar8cle“IDE 2.0”
Move toEclipse
Registered EclipseMarketplace
1. DemoCamp
Eclipse Summit2. DemoCamp
Eclipse SummitDemoCamps
DemoCamps
23,000 Visits from 01.03.2009 until 26.07.201.
Donnerstag, 28. Juli 2011
44
Google Analy8cs StatsUniversity:23 Months01.03.2009 -‐ 01.02.2011
Eclipse:5 Months 15.02.2011-‐ 26.07.2011
Donnerstag, 28. Juli 2011
45
Visits for code-‐recommenders.blogspot.com
Not counting aggregators such as planeteclipse.org...
Donnerstag, 28. Juli 2011
46
Twiner
Donnerstag, 28. Juli 2011
Downloads 15.02.-‐25.07.
47
Donnerstag, 28. Juli 2011
Downloads 15.02.-‐25.07.
0
375
750
1125
1500
1433
310
11197
11
CompletionCodesearch
ExtdocsSubwords
StacktracesBugs
47
Donnerstag, 28. Juli 2011
Downloads 15.02.-‐25.07.
0
375
750
1125
1500
1433
310
11197
11
CompletionCodesearch
ExtdocsSubwords
StacktracesBugs
47
Donnerstag, 28. Juli 2011
Annoying liOle things...“Not everything is rosy.”
Donnerstag, 28. Juli 2011
Time Effort
49
Donnerstag, 28. Juli 2011
License Restric8ons
50
Donnerstag, 28. Juli 2011
Intellectual Property Checks
51
Donnerstag, 28. Juli 2011
Elec8ng Comminers
52
Donnerstag, 28. Juli 2011
All this feels overly complicated from academia perspective.
Yes, I know - there is a need for this...
53
Donnerstag, 28. Juli 2011
Why shouldn’t you stop?
Donnerstag, 28. Juli 2011
Because you want peopleto use your soQware!
55
Donnerstag, 28. Juli 2011
You write tools in Eclipse?
56
Donnerstag, 28. Juli 2011
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
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
We build a community:• DemoCamps,• Industry Conferences,• Magazine Ar8cles / Interviews,• Blog,• Twiner,• ...
Donnerstag, 28. Juli 2011
Tools actually used by Programmers....
Code Recommenders
“Your tool”
Abbrevia8on Comple8on
Prospector
xSnippetOComple8on
Hill and Rideout
AltairSuade
eXoaDocs
SemDiffCodeWeb
Exemplar
Jadeite
FrUiT
Hipikat
SpotWeb
Exper8se Browser
PopConeRose
Dhruv Marie
Sourcerer
Mapo
Mica
MUDABlue
ParseWebStrathCona
CodeBroker
SNIFFCP-‐Miner
Jadet
GrouMiner
Error Specs
DynaMine
PR-‐MinerAla]n
Kagdi
FindBugs Mylyn
“Your tool”
“Your tool”
57
Donnerstag, 28. Juli 2011
Thanks.
Donnerstag, 28. Juli 2011
top related