SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Eclipse Code
Recommenders




 “IDE 2.0”
 Collec&ve	
  Intelligence	
  in	
  So/ware	
  Development	
  
 Leveraging	
  the	
  Wisdom	
  of	
  the	
  Crowds	
  	
  
 Marcel Bruch
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()
“Other	
  developers	
  frequently	
  bought	
  used	
  the	
  following	
  methods…”	
  

INTELLIGENT	
  CODE	
  COMPLETION	
  
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?
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?	
  
Stackoverflow.com	
  –	
  Reloaded!	
  

WHAT	
  CAUSED	
  
THAT	
  STACKTRACE?	
  
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?	
  
    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)
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	
  
	
  
	
  
	
  
	
  
	
  
	
  
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?	
  
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	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemGuardSquare
 
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKEric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKGuardSquare
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......hugo lu
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communicationmsaindane
 
ProGuard / DexGuard Tips and Tricks
ProGuard / DexGuard Tips and TricksProGuard / DexGuard Tips and Tricks
ProGuard / DexGuard Tips and Tricksnetomi
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemGuardSquare
 
Advanced java interview questions
Advanced java interview questionsAdvanced java interview questions
Advanced java interview questionsrithustutorials
 
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...Edge AI and Vision Alliance
 
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Christian Schneider
 
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKEric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKGuardSquare
 
Eric Lafortune - Fighting application size with ProGuard and beyond
Eric Lafortune - Fighting application size with ProGuard and beyondEric Lafortune - Fighting application size with ProGuard and beyond
Eric Lafortune - Fighting application size with ProGuard and beyondGuardSquare
 
openCV and Java - Face Detection
openCV and Java - Face DetectionopenCV and Java - Face Detection
openCV and Java - Face Detectioncmkandemir
 
Clean pragmatic architecture @ devflix
Clean pragmatic architecture @ devflixClean pragmatic architecture @ devflix
Clean pragmatic architecture @ devflixVictor Rentea
 
Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Paris Android User Group
 
Open Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 TutorialOpen Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 Tutorialantiw
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy CodeNaresh Jain
 
Java Faqs useful for freshers and experienced
Java Faqs useful for freshers and experiencedJava Faqs useful for freshers and experienced
Java Faqs useful for freshers and experiencedyearninginjava
 

Was ist angesagt? (20)

Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKEric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communication
 
ProGuard / DexGuard Tips and Tricks
ProGuard / DexGuard Tips and TricksProGuard / DexGuard Tips and Tricks
ProGuard / DexGuard Tips and Tricks
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Advanced java interview questions
Advanced java interview questionsAdvanced java interview questions
Advanced java interview questions
 
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
 
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
 
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDKEric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
Eric Lafortune - ProGuard: Optimizer and obfuscator in the Android SDK
 
Eric Lafortune - Fighting application size with ProGuard and beyond
Eric Lafortune - Fighting application size with ProGuard and beyondEric Lafortune - Fighting application size with ProGuard and beyond
Eric Lafortune - Fighting application size with ProGuard and beyond
 
openCV and Java - Face Detection
openCV and Java - Face DetectionopenCV and Java - Face Detection
openCV and Java - Face Detection
 
Clean pragmatic architecture @ devflix
Clean pragmatic architecture @ devflixClean pragmatic architecture @ devflix
Clean pragmatic architecture @ devflix
 
Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014
 
Facedetect
FacedetectFacedetect
Facedetect
 
Open Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 TutorialOpen Cv 2005 Q4 Tutorial
Open Cv 2005 Q4 Tutorial
 
Concurrency on the JVM
Concurrency on the JVMConcurrency on the JVM
Concurrency on the JVM
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
Java Faqs useful for freshers and experienced
Java Faqs useful for freshers and experiencedJava Faqs useful for freshers and experienced
Java Faqs useful for freshers and experienced
 
Robots in Swift
Robots in SwiftRobots in Swift
Robots in Swift
 

Ähnlich wie Eclipse Indigo DemoCamp Walldorf 2011

SurfClipse-- An IDE based context-aware Meta Search Engine
SurfClipse-- An IDE based context-aware Meta Search EngineSurfClipse-- An IDE based context-aware Meta Search Engine
SurfClipse-- An IDE based context-aware Meta Search EngineMasud Rahman
 
SMI - Introduction to Java
SMI - Introduction to JavaSMI - Introduction to Java
SMI - Introduction to JavaSMIJava
 
JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0
JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0
JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0Marcel Bruch
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesRed Hat Developers
 
Vulnerabilities of machine learning infrastructure
Vulnerabilities of machine learning infrastructureVulnerabilities of machine learning infrastructure
Vulnerabilities of machine learning infrastructureSergey Gordeychik
 
Metaprogramming Rails
Metaprogramming RailsMetaprogramming Rails
Metaprogramming RailsJustus Eapen
 
Orchestrating the Intelligent Web with Apache Mahout
Orchestrating the Intelligent Web with Apache MahoutOrchestrating the Intelligent Web with Apache Mahout
Orchestrating the Intelligent Web with Apache Mahoutaneeshabakharia
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsChristian Heilmann
 
20-Line Lifesavers: Coding simple solutions in the GATK
20-Line Lifesavers: Coding simple solutions in the GATK20-Line Lifesavers: Coding simple solutions in the GATK
20-Line Lifesavers: Coding simple solutions in the GATKDan Bolser
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to javaSujit Majety
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtworks
 
Java for android developers
Java for android developersJava for android developers
Java for android developersAly Abdelkareem
 
2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda MeetupPharo
 
Neural Networks, Spark MLlib, Deep Learning
Neural Networks, Spark MLlib, Deep LearningNeural Networks, Spark MLlib, Deep Learning
Neural Networks, Spark MLlib, Deep LearningAsim Jalis
 
Tikal's Backbone_js introduction workshop
Tikal's Backbone_js introduction workshopTikal's Backbone_js introduction workshop
Tikal's Backbone_js introduction workshopTikal Knowledge
 

Ähnlich wie Eclipse Indigo DemoCamp Walldorf 2011 (20)

Need 4 Speed FI
Need 4 Speed FINeed 4 Speed FI
Need 4 Speed FI
 
Railway Route Optimizer
Railway Route OptimizerRailway Route Optimizer
Railway Route Optimizer
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
 
SurfClipse-- An IDE based context-aware Meta Search Engine
SurfClipse-- An IDE based context-aware Meta Search EngineSurfClipse-- An IDE based context-aware Meta Search Engine
SurfClipse-- An IDE based context-aware Meta Search Engine
 
SMI - Introduction to Java
SMI - Introduction to JavaSMI - Introduction to Java
SMI - Introduction to Java
 
JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0
JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0
JUG Münster 2014 - Code Recommenders & Codetrails - Wissenstransfer 2.0
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
 
Vulnerabilities of machine learning infrastructure
Vulnerabilities of machine learning infrastructureVulnerabilities of machine learning infrastructure
Vulnerabilities of machine learning infrastructure
 
Metaprogramming Rails
Metaprogramming RailsMetaprogramming Rails
Metaprogramming Rails
 
Orchestrating the Intelligent Web with Apache Mahout
Orchestrating the Intelligent Web with Apache MahoutOrchestrating the Intelligent Web with Apache Mahout
Orchestrating the Intelligent Web with Apache Mahout
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
20-Line Lifesavers: Coding simple solutions in the GATK
20-Line Lifesavers: Coding simple solutions in the GATK20-Line Lifesavers: Coding simple solutions in the GATK
20-Line Lifesavers: Coding simple solutions in the GATK
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Neal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary ArchitectureNeal Ford Emergent Design And Evolutionary Architecture
Neal Ford Emergent Design And Evolutionary Architecture
 
Unleash The Monkeys
Unleash The MonkeysUnleash The Monkeys
Unleash The Monkeys
 
Java for android developers
Java for android developersJava for android developers
Java for android developers
 
2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup
 
Neural Networks, Spark MLlib, Deep Learning
Neural Networks, Spark MLlib, Deep LearningNeural Networks, Spark MLlib, Deep Learning
Neural Networks, Spark MLlib, Deep Learning
 
Tikal's Backbone_js introduction workshop
Tikal's Backbone_js introduction workshopTikal's Backbone_js introduction workshop
Tikal's Backbone_js introduction workshop
 

Mehr von Marcel Bruch

Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Marcel Bruch
 
Eclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error ReportingEclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error ReportingMarcel Bruch
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Marcel Bruch
 
The Sin City of Code - No Images
The Sin City of Code - No ImagesThe Sin City of Code - No Images
The Sin City of Code - No ImagesMarcel Bruch
 
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1Marcel Bruch
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Marcel Bruch
 
Snipmatch - Snippets for the World
Snipmatch - Snippets for the WorldSnipmatch - Snippets for the World
Snipmatch - Snippets for the WorldMarcel Bruch
 
2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler DemocampsMarcel Bruch
 
IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011Marcel Bruch
 

Mehr von Marcel Bruch (9)

Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
Setting up Automated Error Reporting for your Eclipse RCP App and Eclipse IDE...
 
Eclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error ReportingEclipse Neon Webinar Automated Error Reporting
Eclipse Neon Webinar Automated Error Reporting
 
Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...Because you can’t fix what you don’t know is broken...
Because you can’t fix what you don’t know is broken...
 
The Sin City of Code - No Images
The Sin City of Code - No ImagesThe Sin City of Code - No Images
The Sin City of Code - No Images
 
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
Eclipse DemoCamp Zurich - SnipMatch in Recommenders 2.1
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
 
Snipmatch - Snippets for the World
Snipmatch - Snippets for the WorldSnipmatch - Snippets for the World
Snipmatch - Snippets for the World
 
2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps
 
IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011
 

Eclipse Indigo DemoCamp Walldorf 2011

  • 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()
  • 4. “Other  developers  frequently  bought  used  the  following  methods…”   INTELLIGENT  CODE  COMPLETION  
  • 5. Code  Comple&on…   What does the developer need, i.e., which methods should the code completion present to the user?
  • 6. All 164 Methods of Text ?
  • 8. Code  Comple&on…   What does the developer need, i.e., which methods should the code completion present to the user?
  • 9. Intelligent  Code  Comple&on   … or just the three missing ones?
  • 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?  
  • 11. Stackoverflow.com  –  Reloaded!   WHAT  CAUSED   THAT  STACKTRACE?  
  • 12. But  what  if  you  get  this?  
  • 13. Debugging  –  the  old  way  
  • 14. Debugging  –  the  old  way  
  • 15. But  more  o/en  we  get…  
  • 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)
  • 18. From  IDE  1.0  to  IDE  2.0  
  • 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?  
  • 21. It’s  there.   http://eclipse.org/recommenders Follow me on twitter: @MarcelBruch
  • 22. Q  &  A  
  • 23. Affilia&on   Prof.  Dr.  Mira  Mezini   So/ware  Technology  Group   Fachbereich  Informa&k   Technische  Universität  Darmstadt