ide 2.0 & research at eclipse - ecoop 2011

Post on 28-Dec-2014

781 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Demo slides + some statistics such as visits, downloads, milage, etc. + some motivation why to become an Eclipse project.

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