Eclipse Code Recommenders. Do you s/ll read [source code]? Or are you programming already? Eclipse Day Del,

Size: px
Start display at page:

Download "Eclipse Code Recommenders. Do you s/ll read [source code]? Or are you programming already? Eclipse Day Del,"

Transcription

1 Eclipse Code Recommenders Do you s/ll read [source code]? Or are you programming already? Eclipse Day Del,

2 about.me/mbruch Project Lead of Eclipse Code Recommenders Project Researcher at Darmstadt University of Technology, Eclipse 4 Trainer at vogella.com, Speaker at JavaOne, JAX, EclipseCon US/EU, CEO of Codetrails GmbH in progress (commercial support for Code Recommenders) 2

3 3

4 Project History: Started in 2006 as Framework Understanding Tool - or FrUiT for short Published in 2009 as Eclipse Code Recommenders Became an Eclipse Incubator Project in 2011 Graduated in June own Incubator Part of Eclipse Juno (4.2) - Java and RCP Developer Package Eclipse Marketplace Top 100 3

5 Project History: Started in 2006 as Framework Understanding Tool - or FrUiT for short Published in 2009 as Eclipse Code Recommenders Became an Eclipse Incubator Project in 2011 Graduated in June own Incubator Part of Eclipse Juno (4.2) - Java and RCP Developer Package Eclipse Marketplace Top 100 Awards: Eclipse Community Award as Most InnovaSve Eclipse Project 2012 GFFT Förderpreis für Hervorragende InnovaSonen 2012 Uni- TechSpin IdeenweYbewerb 2010 IBM InnovaSon Award 2006 Nominee JAX InnovaSon Award

6 4

7 Eclipse Code Recommenders All Frameworks Code Code Eclipse Code Recommenders 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() 5

8 Other developers frequently bought used the following methods INTELLIGENT CODE COMPLETION

9 Code protected Control createdialogarea(final Composite parent) { Composite container = (Composite) super.createdialogarea(parent); } swttextwidget = new Text(container, SWT.BORDER); swttextwidget. return container; What does the developer need, i.e., which methods should the code comple/on present to the user? 7

10

11 All 164 Methods of Text?

12 JBuVon? 381 Methods.

13 Code protected Control createdialogarea(final Composite parent) { Composite container = (Composite) super.createdialogarea(parent); } swttextwidget = new Text(container, SWT.BORDER); swttextwidget. return container; What does the developer need, i.e., which methods should the code comple/on present to the user? 10

14 Intelligent Code CompleSon or just the three missing ones? 11

15 Oh SWT - your style bits... RETHINKING ARGUMENT GUESSING

16 Oh SWT, your style protected Control createcontrol(final Composite parent) {!! textwidget = new Text(parent, SWT.BORDER);!! textwidget.addlistener(eventtype, listener) Which event type, i.e., which int constant defined somewhere, should he insert here? 0? 13

17

18 SWT.<^Space>? 454

19 SWT.<^Space>? 454 ± 3

20 What you d like to see protected Control createcontrol(final Composite parent) {!! textwidget = new Text(parent, SWT.BORDER);!! textwidget.addlistener(swt.modify, listener) 15

21 BecausePureCamelCaseMatching****s! SUBWORDS COMPLETION

22 Use speaking names...?

23 When leyers become just guidelines... Source: hyp://vimeo.com/ I Like? 18

24 When leyers become just guidelines... Source: hyp://vimeo.com/ I Like? 18

25 Welcome to the jungle... CALL- CHAIN COMPLETION

26 How to obtain an instance of... public class MyView extends ViewPart { public void updatemessage(final String newmessage) { } // How do I get an instance of IStatusLineManager? final IStatusLineManager manager = There is no trivial solution anymore. Again, what should code completion return?

27 What we need... ViewPart public void updatemessage(final String newmessage) { getviewsite() } // How do I get an instance of final IStatusLineManager manager = this.getviewsite().getactionbars().getstatuslinemanager(); manager.setmessage(newmessage); IViewSite getac-onbars() IAc-onBars getstatuslinemanager() IStatusLineManager 21

28 ViewPart Image IConfigura9onElemen IWorkbenchPartSite IViewSite Color ImageData Device Rectangle IContributor IExtension Shell IWorkbenchPart IKeyBindingService IWorkbenchPage ISelec9onProvider IWorkbenchWindow IAc9onBars Point Region Composite Menu Listener Layout IME Display ScrollBar Control IEditorPart IMenuManager IServiceLocator IAdaptable ISelec9on IWorkbenchWindow INaviga9onHistory IWorkingSet IExtensionTracker IViewReference IViewPart IEditorReference IPartService IWorkbench ISelec9onService IServiceLocator IMenuManager IStatusLineManager IAc9on IToolBarManager

29 However, somesmes you get... Here, implicit user feedbacks ( clicks ) help to find the right (i.e. the most commonly used ) paths.

30 Developers who bought overwrote this method typically also overwrote... EXTENDING API DOCUMENTATION

31 In good documentason we trust... /** * Rollsback the transaction if any and clears different lists to * start with an empty resource again. * Note that the super.dounload is not called because that clears * the list resulting in all kinds of undesirable inverseremoves. protected void dounload() { super.dounload(); } 25

32 In good documentason we trust... /** * Rollsback the transaction if any and clears different lists to * start with an empty resource again. * Note that the super.dounload is not called because that clears * the list resulting in all kinds of undesirable inverseremoves. protected void dounload() { super.dounload(); } 25

33 In good documentason we trust... /** * Rollsback the transaction if any and clears different lists to * start with an empty resource again. * Note that the super.dounload is not called because that clears * the list resulting in all kinds of undesirable inverseremoves. protected void dounload() { super.dounload(); } No? Are you sure? 25

34 In good documentason we trust... /** * Rollsback the transaction if any and clears different lists to * start with an empty resource again. * Note that the super.dounload is not called because that clears * the list resulting in all kinds of undesirable inverseremoves. protected void dounload() { super.dounload(); } No? Are you sure? 25

35 GeneraSng high- quality API documentason 26

36 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

37 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

38 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

39 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

40 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

41 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

42 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 26

43 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 27

44 GeneraSng high- quality API documentason /** * The number of questions. */ private int numberofquestions; /** * Sets the number of questions. * numberofquestions the number of questions IllegalArgumentException the illegal argument exception */ public void setnumberofquestions(int numberofquestions) throws IllegalArgumentException { if (numberofquestions < 0) { throw new IllegalArgumentException("numberOfQuestions < 0"); } this.numberofquestions = numberofquestions; } 27

45 What people say about JAutodoc... 28

46 What people say about JAutodoc... User: Anonymous Rating: :32:37 Wow exactly what I needed! 28

47 What people say about JAutodoc... User: Anonymous Rating: :32:37 Wow exactly what I needed! User: Anonymous Rating: :58:32 Thank you... this plugin rocks! 28

48 What people say about JAutodoc... User: Anonymous Rating: :32:37 Wow exactly what I needed! User: Anonymous Rating: :58:32 Thank you... this plugin rocks! User: Anonymous Rating: :58:32 Works perfectly. Smarter than I expected! 28

49 What people say about JAutodoc... User: Anonymous Rating: :32:37 Wow exactly what I needed! User: Anonymous Rating: :58:32 Thank you... this plugin rocks! User: Anonymous Rating: :58:32 Works perfectly. Smarter than I expected! WTH? What did you expect?! 28

50 How Recommenders is coming to rescue... 29

51 What documentason would you expect when subclassing Dialog? package org.eclipse.recommenders.examples.demo; import org.eclipse.jface.*; public class MyDialog extends Dialog { } protected MyDialog(final IShellProvider parentshell) { super(parentshell); } 30

52 What Javadoc gives you... org.eclipse.jface.dialogs.dialog 31

53 What Javadoc gives you... org.eclipse.jface.dialogs.dialog A dialog is a specialized window used for narrow- focused communicason with the user. 31

54 What Javadoc gives you... org.eclipse.jface.dialogs.dialog A dialog is a specialized window used for narrow- focused communicason with the user. Dialogs are usually modal. Consequently, it is generally bad pracsce to open a dialog without a parent. A modal dialog without a parent is not prevented from disappearing behind the applicason's other windows, making it very confusing for the user. 31

55 What Javadoc gives you... org.eclipse.jface.dialogs.dialog A dialog is a specialized window used for narrow- focused communicason with the user. Dialogs are usually modal. Consequently, it is generally bad pracsce to open a dialog without a parent. A modal dialog without a parent is not prevented from disappearing behind the applicason's other windows, making it very confusing for the user. If there is more than one modal dialog is open the second one should be parented off of the shell of the first one otherwise it is possible that the OS will cus to the first dialog potensally blocking the UI. 31

56 What Javadoc gives you... org.eclipse.jface.dialogs.dialog A dialog is a specialized window used for narrow- focused communicason with the user. Dialogs are usually modal. Consequently, it is generally bad pracsce to open a dialog without a parent. A modal dialog without a parent is not prevented from disappearing behind the applicason's other windows, making it very confusing for the user. But what are the hot-spots of Dialog? If there is more than one modal dialog is open the second one should be parented off of the shell of the first one otherwise it is possible that the OS will cus to the first dialog potensally blocking the UI. 31

57 What code compleson offers... 32

58 What code compleson offers... Which of the 56 methods should we override? 32

59 Recommending method overrides... public class MyDialog extends Dialog { 33

60 Recommending Self- Calls public class MyWizard extends Wizard public void addpages() { }; 34

61 Mining for Subclassing payerns public class MyViewerSorter extends ViewerComparator { 35

62 Mining example code snippets public class MyDialog extends Dialog protected Control createdialogarea(composite parent) { 36

63 Extended (API) DocumentaSon 37

64 So Code Recommenders is mining code repositories. Why do you call it IDE IDE AMAZON FOR SOFTWARE DEVELOPERS

65 So much code out there that shows how to use an API correctly... ❶ Analyze source code ❷ Mine data, extract code payerns, create recommendason models Code Recommenders Knowledge Base ❸ deliver mined knowledge to Eclipse users 39

66 but in future we could leverage... 40

67 but in future we could leverage... project environment 40

68 but in future we could leverage... context project environment 40

69 but in future we could leverage... context object usage project environment 40

70 but in future we could leverage... context object usage project environment selected proposals 40

71 but in future we could leverage... context object usage project environment selected proposals click feedback 40

72 but in future we could leverage... context object usage project environment selected proposals click feedback stacktraces 40

73 Leverage what happens in your IDE to build IDE 2.0. That s Amazon for Soqware Developers! Code Recommenders Knowledge Base ❹ users share implicit usage data (clicks, selecsons, stacktraces...) 41

74 Crowd- sourcing... 42

75 Code Recommenders is... Intelligent Code CompleSon Usage- Driven Javadocs Stacktrace Search Engine Smart Bug DetecSon Code Example Recommender What have I missed? x= What caused that stacktrace? How do I get an instance of? 43

76 Q & A 44

77 hyp://eclipse.org/recommenders/ Follow me on google+: +Marcel Bruch 45

Workbench Selection 2/15

Workbench Selection 2/15 W o r k b e n c h S e l e c t i o n U s i n g S e l e c t i o n S e r v i c e w i t h a C u s t o m V i e w Table of Contents 1 Introduction... 3 2 Defining A View... 4 3 Implementing SelectionView...

More information

I A D P A T A B L E A N D W O R K B E N C H

I A D P A T A B L E A N D W O R K B E N C H I A D P A T A B L E A N D W O R K B E N C H I m p l e m e n t i n g a W o r k b e n c h V i e w a n d U s i n g I A d a p t a b l e 1 9 A u g u s t 2 0 0 8 TABLE OF CONTENTS 1 Goals...3 2 Defining A View...4

More information

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 About me Initiator of the Automated Error Reporting Initiative Project Lead of Eclipse Code Recommenders Eclipse Committer since 2010 Plug-in Developer

More information

FrUiT: IDE Support for Framework Understanding

FrUiT: IDE Support for Framework Understanding FrUiT: IDE Support for Framework Understanding Marcel Bruch Thorsten Schäfer Mira Mezini Software Technology Group Department of Computer Science Darmstadt University of Technology {bruch,schaefer,mezini}@st.informatik.tu-darmstadt.de

More information

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék The New Generation of the Eclipse Platform Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Eclipse RCP For developing client applications o Based on the Eclipse

More information

Leveraging the Model-View- Presenter Pattern in Rich Client Applications

Leveraging the Model-View- Presenter Pattern in Rich Client Applications Leveraging the Model-View- Presenter Pattern in Rich Client Applications Patrick Paulin Eclipse RCP Trainer and Consultant RCP Quickstart patrick@rcpquickstart.com www.rcpquickstart.com/training/presentations/mvp-and-rcp-ew2008

More information

Testing Eclipse plug-ins: Tips & Tricks

Testing Eclipse plug-ins: Tips & Tricks Testing Eclipse plug-ins: Tips & Tricks Lorenzo Bettini DISIA University Firenze, Italy Vincenzo Caselli Francesco Guidieri RCP-Vision, Firenze, Italy EclipseCon Europe 2017 Project Quality Day Motivations

More information

Keep on Swinging. Productivity layers on top of SWT. Karsten Schmidt SAP AG.

Keep on Swinging. Productivity layers on top of SWT. Karsten Schmidt SAP AG. Keep on Swinging Productivity layers on top of SWT Karsten Schmidt SAP AG k.schmidt@sap.com Keep on Swinging - Agenda! Background! SAP NetWeaver Developer Studio! The UI (Container) Framework! The SAP

More information

eclipse rich ajax platform (rap)

eclipse rich ajax platform (rap) eclipse rich ajax platform (rap) winner Jochen Krause CEO Innoopract Member of the Board of Directors Eclipse Foundation jkrause@innoopract.com GmbH outline rich ajax platform project status and background

More information

TestingofScout Application. Ludwigsburg,

TestingofScout Application. Ludwigsburg, TestingofScout Application Ludwigsburg, 27.10.2014 The Tools approach The Testing Theory approach Unit testing White box testing Black box testing Integration testing Functional testing System testing

More information

Common Navigator Framework

Common Navigator Framework Common Navigator Framework file://c:\d\workspaces\eclipsecnf\org.eclipse.platform.doc.isv\guide\cnf.htm Page 1 of 3 Common Navigator Framework A Viewer provides the user with a view of objects using a

More information

Eclipse + Html: A Journey

Eclipse + Html: A Journey Eclipse + Html: A Journey Kris De Volder , Pivotal Software Martin Lippert , Pivotal Software 1 Outline Goal Motivation Case Studies The Journey API Comparison

More information

Eclipse 4. Brian de Alwis. Abstract

Eclipse 4. Brian de Alwis. Abstract Eclipse 4 Brian de Alwis Abstract This year's Juno release sees the mainstream deployment of Eclipse 4, the new application platform from the Eclipse Foundation. Over four years in the making, Eclipse

More information

Advanced User Interface Programming Using the Eclipse Rich Client Platform

Advanced User Interface Programming Using the Eclipse Rich Client Platform Advanced User Interface Programming Using the Eclipse Rich Client Platform Tod Creasey IBM Canada Tod Creasey Advanced User Interface Programming Using the Eclipse Rich Client Platform Page 1 About the

More information

Android Essentials with Java

Android Essentials with Java Android Essentials with Java Before You Program o Exercise in algorithm generation Getting Started o Using IntelliJ CE Using Variables and Values o Store data in typed variables Static Methods o Write

More information

Creating an Eclipse View

Creating an Eclipse View Copyright 2001 Object Technology International, Inc. Eclipse Corner Article Creating an Eclipse View Summary In the Eclipse Platform a view is typically used to navigate a hierarchy of information, open

More information

API Tooling in the Eclipse SDK

API Tooling in the Eclipse SDK API Tooling in the Eclipse SDK Olivier Thomann Darin Wright Michael Rennie IBM Rational March 17 th, 2008 1 Overview The need for tooling Tooling features Tooling architecture Future work Summary Q&A 2

More information

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council State of Eclipse 4.x Tom Schindl - BestSolution Systemhaus GmbH, Eric Moffatt IBM Leuven October 2011 About Tom CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead: UFaceKit,

More information

Documenting, Using, and Testing Utility Classes

Documenting, Using, and Testing Utility Classes Documenting, Using, and Testing Utility Classes Readings: Chapter 2 of the Course Notes EECS2030: Advanced Object Oriented Programming Fall 2017 CHEN-WEI WANG Structure of Project: Packages and Classes

More information

Workbench and JFace Foundations. Part One, of a two part tutorial series

Workbench and JFace Foundations. Part One, of a two part tutorial series Workbench and JFace Foundations Part One, of a two part tutorial series 2005 by IBM; made available under the EPL v1.0 Date: February 28, 2005 About the Speakers Tod Creasey Senior Software Developer,

More information

Lesson learned from using EMF to build Desktop & Web Applications. Ludwigsburg, Oct

Lesson learned from using EMF to build Desktop & Web Applications. Ludwigsburg, Oct Lesson learned from using EMF to build Desktop & Web Applications Ludwigsburg, Oct 26 2017 About us Lorenzo Bettini Dip. Informatica, Univ. Firenze, Italy bettini@disia.unifi.it @lorenzo_bettini www.lorenzobettini.it

More information

CISC-124. Passing Parameters. A Java method cannot change the value of any of the arguments passed to its parameters.

CISC-124. Passing Parameters. A Java method cannot change the value of any of the arguments passed to its parameters. CISC-124 20180215 These notes are intended to summarize and clarify some of the topics that have been covered recently in class. The posted code samples also have extensive explanations of the material.

More information

/ / JAVA TRAINING

/ / JAVA TRAINING www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.

More information

JDirectoryChooser Documentation

JDirectoryChooser Documentation JDirectoryChooser Documentation Page 1 of 7 How to Use JDirectoryChooser The JDirectoryChooser provides user-friendly GUI for manipulating directories from Java application. User can either simply choose

More information

Classes, interfaces, & documentation. Review of basic building blocks

Classes, interfaces, & documentation. Review of basic building blocks Classes, interfaces, & documentation Review of basic building blocks Objects Data structures literally, storage containers for data constitute object knowledge or state Operations an object can perform

More information

Painless Persistence. Some guidelines for creating persistent Java applications that work

Painless Persistence. Some guidelines for creating persistent Java applications that work Painless Persistence Some guidelines for creating persistent Java applications that work The Authors Anthony Patricio Senior JBoss Certification Developer Highest volume poster on early Hibernate forums

More information

WindowBuilder Graduation & Release Review

WindowBuilder Graduation & Release Review WindowBuilder Graduation & 1.0.0 Release Review http://www.eclipse.org/windowbuilder Planned Review Date: June 2011 Communication Channel: WindowBuilder Forum Eric Clayberg (Project Lead) 1 History Smalltalk

More information

Extending the JavaScript Development Toolkit

Extending the JavaScript Development Toolkit Extending the JavaScript Development Toolkit Bradley Childs IBM Software Group childsb@us.ibm.com 3/19/2008 Agenda Overview JSDT Feature Highlights Benefit of Extending JSDT JSDT Platform What can you

More information

Automated JAVA GUI Testing. Challenges and Experiences

Automated JAVA GUI Testing. Challenges and Experiences Automated JAVA GUI Testing Challenges and Experiences Java Forum Stuttgart 2008 About me Reginald Stadlbauer Co-founder and CEO of froglogic GmbH, Hamburg, Germany Former Senior

More information

Eclipse on Cell phones?

Eclipse on Cell phones? Eclipse on Cell phones? An Introduction to the ercp ~ Chris Aniszczyk ~ 1 Agenda Overview (~10 mins) eswt (~20 mins) Introduction Mobile Extensions Working with Devices (~10 minutes) Troubleshooting

More information

A Design Recovery View - JFace vs. SWT. Abstract

A Design Recovery View - JFace vs. SWT. Abstract A Design Recovery View - JFace vs. SWT Technical Report 2009-564 Manar Alalfi School of computing- Queen s University Kingston, Ontario, Canada alalfi@cs.queensu.ca Abstract This paper presents an experience

More information

Single Sourceing for Eclipse 4.x and 3.x

Single Sourceing for Eclipse 4.x and 3.x Single Sourceing for Eclipse 4.x and 3.x Tom Schindl - BestSolution Systemhaus GmbH EclipseCon 2011 - March 21st 2011 About Me CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead:

More information

Eclipse as a Web 2.0 Application Position Paper

Eclipse as a Web 2.0 Application Position Paper Eclipse Summit Europe Server-side Eclipse 11 12 October 2006 Eclipse as a Web 2.0 Application Position Paper Automatic Web 2.0 - enabling of any RCP-application with Xplosion Introduction If todays Web

More information

Equinox Project 3.6 Release Review

Equinox Project 3.6 Release Review Equinox Project 3.6 Release Review Equinox Project Leadership 1 Highlights 3.6 new features: Introduction of p2 API Multiple instances of p2 in one VM New Discovery UI Multi-locale support in extension

More information

XWT Declarative UI for Eclipse

XWT Declarative UI for Eclipse XWT Declarative UI for Eclipse Yves YANG (Soyatec) Contents What is XWT? Architecture XWT Fundamentals JFace integration Component and Data View Management Integration with Existing Application Binding

More information

DTP Help-Helper for Dynamic Context-Sensitive Help

DTP Help-Helper for Dynamic Context-Sensitive Help DTP Help-Helper for Dynamic Context-Sensitive Help This document introduces the Data Tools Platform (DTP) help-helper plug-in, which is provided in the Eclipse DTP project, since version 1.5 (released

More information

Eclipse Memory Analyzer Release Review 0.8

Eclipse Memory Analyzer Release Review 0.8 Eclipse Memory Analyzer Release Review 0.8 Review Date: May 29, 2008 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.memory-analyzer

More information

Programming with assertions Oracle guidelines

Programming with assertions Oracle guidelines Programming with assertions Oracle guidelines J.Serrat 102759 Software Design October 27, 2015 Index 1 Preliminaries 2 When not to use assertions 3 When to use assertions 4 Post-conditions 5 Requiring

More information

Web Applica+on Development. Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Web Applica+on Development. Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Web Applica+on Development Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék UI Development Trends Desktop applica+ons Opera+ng system integra+on Rich set of

More information

Software Engineering Design & Construction

Software Engineering Design & Construction Winter Semester 16/17 Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Liskov Substitution Principle 2 Liskov Substitution Principle

More information

Eclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab

Eclipse and Java 8. Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 Daniel Megert Platform and JDT Lead Eclipse PMC Member IBM Rational Zurich Research Lab Eclipse and Java 8 New Java language features Eclipse features for Java 8 (demo) Behind the scenes

More information

public static void negate2(list<integer> t)

public static void negate2(list<integer> t) See the 2 APIs attached at the end of this worksheet. 1. Methods: Javadoc Complete the Javadoc comments for the following two methods from the API: (a) / @param @param @param @return @pre. / public static

More information

Kai Tödter Siemens Corporate Technology

Kai Tödter Siemens Corporate Technology Kai Tödter Siemens Corporate Technology Objectives of e4 e4 Workbench Model Models & Rendering Other UI Models Services CSS Styling Demo Discussion 2 Making it easier to write plug-ins Allowing better

More information

CSE 143. More ArrayIntList; pre/post; exceptions; debugging. Computer Programming II. CSE 143: Computer Programming II

CSE 143. More ArrayIntList; pre/post; exceptions; debugging. Computer Programming II. CSE 143: Computer Programming II Adam Blank Lecture 3 Autumn 201 CSE 143 CSE 143: Computer Programming II More ArrayIntList; pre/post; exceptions; debugging Computer Programming II Drawings 1 Drawings 2 Drawings 3 Drawings 4 Drawings

More information

Extending the Cmpware CMP-DK (Version 2.0 for Eclipse 3.1)

Extending the Cmpware CMP-DK (Version 2.0 for Eclipse 3.1) Extending the Cmpware CMP-DK Page 1 Extending the Cmpware CMP-DK (Version 2.0 for Eclipse 3.1) Cmpware, Inc. Introduction The Cmpware Configurable Multiprocessor Development Kit (CMP-DK) is a multiprocessor

More information

Adam Blank Lecture 3 Autumn 2016 CSE 143. Computer Programming II

Adam Blank Lecture 3 Autumn 2016 CSE 143. Computer Programming II Adam Blank Lecture 3 Autumn 2016 CSE 143 Computer Programming II CSE 143: Computer Programming II More ArrayIntList; pre/post; exceptions; debugging Drawings 1 Drawings 2 Drawings 3 Drawings 4 Drawings

More information

Syllabus- Java + Android. Java Fundamentals

Syllabus- Java + Android. Java Fundamentals Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing

More information

Lab 3. Accessing GSM Functions on an Android Smartphone

Lab 3. Accessing GSM Functions on an Android Smartphone Lab 3 Accessing GSM Functions on an Android Smartphone 1 Lab Overview 1.1 Goals The objective of this practical exercise is to create an application for a smartphone with the Android mobile operating system,

More information

The Composite State Visitor Pattern

The Composite State Visitor Pattern Design Patterns for Data Structures Chapter 8 he Composite State Visitor Pattern Design Patterns for Data Structures Chapter 8 he Composite State Binary ree with the Visitor Pattern BireeCSV Design Patterns

More information

public static boolean isoutside(int min, int max, int value)

public static boolean isoutside(int min, int max, int value) See the 2 APIs attached at the end of this worksheet. 1. Methods: Javadoc Complete the Javadoc comments for the following two methods from the API: (a) / @param @param @param @return @pre. / public static

More information

Background: This programming assignment focuses on implementation and usage of a graph data structure.

Background: This programming assignment focuses on implementation and usage of a graph data structure. CSE 373, Spring 2012 Homework #7: Six Degrees of Kevin Bacon (75 points) Step 0: Due Wednesday, May 23, 2012, 2:30 PM Steps 1 and 2: Due Wednesday, May 30, 2012, 2:30 PM This programming assignment focuses

More information

Background: This programming assignment focuses on implementation and usage of a graph data structure.

Background: This programming assignment focuses on implementation and usage of a graph data structure. CSE 373, Winter 2011 Programming Project #4: Six Degrees of Kevin Bacon (75 points) Step 0: Due Sunday, March 6, 2011, 10:00 PM Steps 1 and 2: Due Sunday, March 13, 2011, 10:00 PM This programming assignment

More information

Dali JPA Tools Project Graduation Review

Dali JPA Tools Project Graduation Review Dali JPA Tools Project Graduation Review February 28, 2007 Neil Hauge Project Lead Oracle 2007 by Neil Hauge; made available under the EPL v1.0 2007-02-28 Review Topics Project Overview What is the Dali

More information

Component-Based Development

Component-Based Development Component-Based Development 2004-2005 Marco Scotto (Marco.Scotto@unibz.it) Outline Views Introduction View Declaration View Model Content Provider Label Provider 2 Introduction (1/5) Many plug-ins either

More information

Graphiti Release Review

Graphiti Release Review Graphiti 0.10.0 Release Review Planned Review Date: June 2013 Communcation Channel: eclipse.graphiti Christian Brand Matthias Gorning Tim Kaiser Jürgen Pasch Félix Velasco Michael Wenz 1 Introduction Graphiti

More information

Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7

Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7 Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7 1 Problem Ralph owns the Trinidad Fruit Stand that sells its fruit on the street, and he wants to use a computer

More information

Eclipse Memory Analyzer Graduation, Move and 1.0 Release Review

Eclipse Memory Analyzer Graduation, Move and 1.0 Release Review Eclipse Memory Analyzer Graduation, Move and 1.0 Release Review Review Date: 28 April 2010 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/forums/index.php?t=thread&frm_id=62& Author:

More information

Technical Debt in Eclipse Development. Eclipse Con France 2018

Technical Debt in Eclipse Development. Eclipse Con France 2018 Technical Debt in Eclipse Development Eclipse Con France 2018 13 June 2018 Table of content I - Technical debt in your RCP application 5, June 2018 3 Technical debt in your RCP application I- I Who?

More information

EECS2030 Week 7 worksheet Tue Feb 28, 2017

EECS2030 Week 7 worksheet Tue Feb 28, 2017 1. Interfaces The Comparator interface provides a way to control how a sort method (such as Collections.sort) sorts elements of a collection. For example, the following main method sorts a list of strings

More information

10 Java Collections; Equality, JUnit

10 Java Collections; Equality, JUnit 10 Java Collections; Equality, JUnit Activities 1. Familiarize yourself with some of the Java Collections Framework. 2. Learn the basics of overriding the hashcode and equals methods. 3. Learn the basics

More information

The Eclipse Rich Ajax Platform

The Eclipse Rich Ajax Platform The Eclipse Rich Ajax Platform Frank Appel RAP Tech Lead fappel@innoopract.com Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 1 The Innoopract pitch Integration & delivery

More information

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:

More information

Goal. Generic Programming and Inner classes. Minor rewrite of linear search. Obvious linear search code. Intuitive idea of generic linear search

Goal. Generic Programming and Inner classes. Minor rewrite of linear search. Obvious linear search code. Intuitive idea of generic linear search Goal Generic Programming and Inner classes First version of linear search Input was array of int More generic version of linear search Input was array of Comparable Can we write a still more generic version

More information

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009 First Steps in RCP Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany February 19th, 2009 Agenda» About us» RCP Architecture and Bundles» Extension Points and Views» Bundle Dependencies 2 Jan Blankenhorn»

More information

Google Web Toolkit (GWT)

Google Web Toolkit (GWT) Google Web Toolkit (GWT) What is GWT? GWT is a development toolkit for building and optimizing complex browser-based applications You can develop all code, both client and server in Java (or with a different

More information

CoDocent: Support API Usage with Code Example and API Documentation

CoDocent: Support API Usage with Code Example and API Documentation CoDocent: Support API Usage with Code Example and API Documentation Ye-Chi Wu Lee Wei Mar Hewijin Christine Jiau Institute of Computer and Communication Engineering Department of Electrical Engineering

More information

Eclipse Europa: New Features and Technical Integrations

Eclipse Europa: New Features and Technical Integrations TS-9920 Eclipse Europa: New Features and Technical Integrations Mike Milinkovich and Bjorn Freeman-Benson Executive Director and Director, Process Eclipse Foundation http://www.eclipse.org/ 2007 JavaOne

More information

Composite Pattern - Shapes Example - Java Sourcecode

Composite Pattern - Shapes Example - Java Sourcecode Composite Pattern - Shapes Example - Java Sourcecode In graphics editors a shape can be basic or complex. An example of a simple shape is a line, where a complex shape is a rectangle which is made of four

More information

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Summer Semester 2015 Liskov Substitution Principle External resource: The Liskov

More information

20. Eclipse and Framework Extension Languages

20. Eclipse and Framework Extension Languages 20. Eclipse and Framework Extension Languages Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie Version 11-1.0, 12/17/11 Design Patterns and Frameworks,

More information

Eclipse 4 Application Platform

Eclipse 4 Application Platform Eclipse 4 Application Platform Tom Schindl - BestSolution Systemhaus GmbH EclipseCon Nov 2011 About Tom CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Projectlead: UFaceKit, Nebula

More information

The Past, Present, and Future of SWT

The Past, Present, and Future of SWT The Past, Present, and Future of SWT Eric Williams Email: ericwill@redhat.com Twitter: @yyzericwill About me: Eric Williams - Studied computer science at the University of Toronto - Intern at Red Hat from

More information

ActiveSpaces Transactions. Quick Start Guide. Software Release Published May 25, 2015

ActiveSpaces Transactions. Quick Start Guide. Software Release Published May 25, 2015 ActiveSpaces Transactions Quick Start Guide Software Release 2.5.0 Published May 25, 2015 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED

More information

e4 Project 0.9 Release Review

e4 Project 0.9 Release Review e4 Project 0.9 Release Review July 30, 2009 Review communication channel: e4-dev@eclipse.org 1 Highlights 0.9 is a technology preview of interesting work happening in the e4 incubator This is not a commercial

More information

Inheritance (Part 2) Notes Chapter 6

Inheritance (Part 2) Notes Chapter 6 Inheritance (Part 2) Notes Chapter 6 1 Object Dog extends Object Dog PureBreed extends Dog PureBreed Mix BloodHound Komondor... Komondor extends PureBreed 2 Implementing Inheritance suppose you want to

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Goulwen Le Fur Obeo EclipseCon NA 2014

Goulwen Le Fur Obeo EclipseCon NA 2014 Goulwen Le Fur Obeo EclipseCon NA 2014 Most of the Eclipse RCP developers need to design GUIs Thank you Captain Obvious! Fortunately, the Eclipse community can help you! The very large... and very prolific

More information

Exceptions and Libraries

Exceptions and Libraries Exceptions and Libraries RS 9.3, 6.4 Some slides created by Marty Stepp http://www.cs.washington.edu/143/ Edited by Sarah Heckman 1 Exceptions exception: An object representing an error or unusual condition.

More information

Creating an Object Design Document with Javadoc

Creating an Object Design Document with Javadoc TUM Creating an Object Design Document with Javadoc Thomas Funck Why Object Design Documents? All elements (subsystems, classes, members), even private ones, have to be documented to facilitate communication

More information

CS 11 java track: lecture 3

CS 11 java track: lecture 3 CS 11 java track: lecture 3 This week: documentation (javadoc) exception handling more on object-oriented programming (OOP) inheritance and polymorphism abstract classes and interfaces graphical user interfaces

More information

Developing Eclipse Rich-Client Applications Tutorial

Developing Eclipse Rich-Client Applications Tutorial Developing Eclipse Rich-Client Applications Tutorial Dr. Frank Gerhardt Gerhardt Informatics Kft. fg@gerhardtinformatics.com Michael Scharf Wind River eclipsecon@scharf.gr 2008 by Frank Gerhardt and Michael

More information

Documenting Advanced Programming Techniques

Documenting Advanced Programming Techniques Documenting Advanced Programming Techniques https://no.wikipedia.org/wiki/tastatur#/media/file:computer_keyboard.png Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Agenda 1. Documenting

More information

News in RSA-RTE 10.0 updated for sprint Mattias Mohlin/Anders Ek, June 2016

News in RSA-RTE 10.0 updated for sprint Mattias Mohlin/Anders Ek, June 2016 News in RSA-RTE 10.0 updated for sprint 2016.29 Mattias Mohlin/Anders Ek, June 2016 Overview of Improvements (1/3) Now based on Eclipse Mars (4.5.2) New installation scheme RSARTE is now installed as a

More information

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5. Page 1 of 5 6.170 Laboratory in Software Engineering Java Style Guide Contents: Overview Descriptive names Consistent indentation and spacing Informative comments Commenting code TODO comments 6.170 Javadocs

More information

Subclassing for ADTs Implementation

Subclassing for ADTs Implementation Object-Oriented Design Lecture 8 CS 3500 Fall 2009 (Pucella) Tuesday, Oct 6, 2009 Subclassing for ADTs Implementation An interesting use of subclassing is to implement some forms of ADTs more cleanly,

More information

39 Intelligent Code Completion with Bayesian Networks

39 Intelligent Code Completion with Bayesian Networks 39 Intelligent Code Completion with Bayesian Networks SEBASTIAN PROKSCH, Technische Universität Darmstadt JOHANNES LERCH, Technische Universität Darmstadt MIRA MEZINI, Technische Universität Darmstadt

More information

Foundations of User Interface Programming Using the Eclipse Rich Client Platform

Foundations of User Interface Programming Using the Eclipse Rich Client Platform Foundations of User Interface Programming Using the Eclipse Rich Client Platform Tod Creasey IBM Canada Tod Creasey Foundations of User Interface Programming Using the Eclipse Rich Client Platform Page

More information

Write for your audience

Write for your audience Comments Write for your audience Program documentation is for programmers, not end users There are two groups of programmers, and they need different kinds of documentation Some programmers need to use

More information

Good Coding Practices Spring 2018

Good Coding Practices Spring 2018 CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Good Coding Practices Spring 2018 1 Introduction 1 2 The Don ts 1 3 The Dos 4 4 CS 18-Specific Practices 5 5 Style 6 1 Introduction

More information

Software Development Kit

Software Development Kit Software Development Kit Informatica MDM - Product 360 Version: 8.1.1 07/04/2018 English 1 Table of Contents 1 Table of Contents...2 2 SDK Package...3 3 Prerequisites...3 3.1 Database...3 3.2 Java Development

More information

SpringSource Tool Suites 3.0.0

SpringSource Tool Suites 3.0.0 SpringSource Tool Suites 3.0.0 - New and Noteworthy - Martin Lippert 3.0.0 August 13, 2012 Updated for 3.0.0.RELEASE ENHANCEMENTS 3.0.0 General Updates Spring Tool Suite & Groovy/Grails Tool Suite Starting

More information

Eclipse 4.x Compatibility Layer: What's hot? What's not?

Eclipse 4.x Compatibility Layer: What's hot? What's not? Eclipse 4.x Compatibility Layer: What's hot? What's not? Remy Suen, IBM Rational Boris Bokowski, IBM Rational What's in the compatibility layer? A reimplementation of the org.eclipse.ui.workbench bundle

More information

Utilities (Part 3) Implementing static features

Utilities (Part 3) Implementing static features Utilities (Part 3) Implementing static features 1 Goals for Today learn about preconditions versus validation introduction to documentation introduction to testing 2 Yahtzee class so far recall our implementation

More information

Java Test Runner. Francesco Russo

Java Test Runner.  Francesco Russo Java Test Runner http://jtrunner.sourceforge.net Francesco Russo Testing matters... What is an error? "Error is a difference between the desired and actual behavior or performance of a system or object"

More information

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, January 2018

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, January 2018 News in RSA-RTE 10.2 updated for sprint 2018.03 Mattias Mohlin, January 2018 Overview Now based on Eclipse Oxygen.2 (4.7.2) Contains everything from RSARTE 10.1 and also additional features and bug fixes

More information

DB Programming - Cont. Database Systems

DB Programming - Cont. Database Systems DB Programming - Cont Database Systems 1 Agenda SWT Updating the UI (Why do we need Threads?) 2 SWT (Standard Widget Toolkit) Developed by IBM, maintained today by Eclipse Easy implementation Not portable

More information

CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM

CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM Objectives The objectives of this assignment are: to get your first experience with Java to become familiar with Eclipse Java

More information

Documentation (and midterm review)

Documentation (and midterm review) Documentation (and midterm review) Comp-303 : Programming Techniques Lecture 13 Alexandre Denault Computer Science McGill University Winter 2004 February 16, 2004 Lecture 13 Comp 303 : Programming Techniques

More information

An Introduction to ECF

An Introduction to ECF IBM Rational Software Development Conference 2006 An Introduction to ECF Chris Aniszczyk Software Engineer IBM Lotus 2006 IBM Corporation Agenda Background ~15 minutes Demos ~10 minutes

More information

CSE 143: Computer Programming II Spring 2015 HW7: 20 Questions (due Thursday, May 28, :30pm)

CSE 143: Computer Programming II Spring 2015 HW7: 20 Questions (due Thursday, May 28, :30pm) CSE 143: Computer Programming II Spring 2015 HW7: 20 Questions (due Thursday, May 28, 2015 11:30pm) This program focuses on binary trees and recursion. Turn in the following files using the link on the

More information