Eclipse. Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen



Similar documents
Introduction to Eclipse

MSWL Development & Tool. Eclipse IDE

Tutorial 5: Developing Java applications

Java with Eclipse: Setup & Getting Started

Android Programming: Installation, Setup, and Getting Started

SAP's Integrated Development Environment for Java. Karl Kessler, SAP AG

Java Application Development using Eclipse. Jezz Kelway Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Web Development with the Eclipse Platform

Duke University Program Design & Construction Course

How To Run A Hello World On Android (Jdk) On A Microsoft Ds.Io (Windows) Or Android Or Android On A Pc Or Android 4 (

A Tutorial on installing and using Eclipse

How to Install Eclipse. Windows

Android Environment SDK

Content. Development Tools 2(63)

Eclipse Distilled: A Quick Start to Agile Development

Fahim Uddin 1. Java SDK

Build management & Continuous integration. with Maven & Hudson

Practical Eclipse Rich Client Platform Projects

Sabre Red Apps. Developer Toolkit Overview. October 2014

Easing embedded Linux software development for SBCs

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Netbeans 6.0. José Maria Silveira Neto. Sun Campus Ambassador

Introduction to Programming Tools. Anjana & Shankar September,2010

Developing Parallel Applications with the Eclipse Parallel Tools Platform

NetBeans IDE Field Guide

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by:

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

Installing Eclipse C++ for Windows

OMNeT++ IDE Developers Guide. Version 5.0

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

Profiling and Testing with Test and Performance Tools Platform (TPTP)

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Braindumps.C questions

Maven or how to automate java builds, tests and version management with open source tools

RedTigerSoftware. WEB DEVELOPERS Introduction & Portfolio

THE OPEN SOURCE DEVELOPER REPORT

Developing with Android Studio

2011 Marty Hall An Overview of Servlet & JSP Technology Customized Java EE Training:

Modern Software Development Tools on OpenVMS

EMC Documentum Composer

Android Environment SDK

Eclipse Platform Technical Overview

Software infrastructure for Java development projects

<Insert Picture Here> What's New in NetBeans IDE 7.2

IBM Rational Web Developer for WebSphere Software Version 6.0

Eclipse Web Tools Platform. Naci Dai (Eteration), WTP JST Lead

Department of Veterans Affairs. Open Source Electronic Health Record Services

Developing Web Services with Eclipse

Building OWASP ZAP Using Eclipse IDE

tools that make every developer a quality expert

IDE s for Java, C, C++ David Rey - DREAM

Oracle FLEXCUBE Direct Banking Android Tab Client Installation Guide Release

Beginning with SubclipseSVN

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project.

soapui Product Comparison

Android Development Tools for Eclipse

ORACLE APPLICATION EXPRESS 5.0

Informatics for Integrating Biology & the Bedside. i2b2 Workbench Developer s Guide. Document Version: 1.0 i2b2 Software Release: 1.3.

Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins

Running a Program on an AVD

Operational Decision Manager Worklight Integration

POOSL IDE User Manual

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Developing In Eclipse, with ADT

1 Building, Deploying and Testing DPES application

What servlets and JSP are all about

L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development. Lab Exercise

SIM900 Eclipse environment install Application Note_V1.00

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

POOSL IDE Installation Manual

Application Development With Data Studio

IOIO for Android Beginners Guide Introduction

A Cost Effective GPS-GPRS Based Women Tracking System and Women Safety Application using Android Mobile

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC

TeamCity A Professional Solution for Delivering Quality Software, on Time

AJAX Toolkit Framework

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

Installing IBM WDT with Web Development Extension for Power Systems Software

Apache Directory Studio. User's Guide

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3 SP02

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

Android Development Setup [Revision Date: 02/16/11]

OXAGILE RESUMES SUMMARY OF QUALIFICATIONS TECHNICAL SKILLS SENIOR JAVA SOFTWARE ENGINEER

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Eclipse installation, configuration and operation

ADT Plugin for Eclipse

Metamodels and Modeling Multiple Kinds of Information Systems

Tutorial on Basic Android Setup

How To Develop An Application Developer For An Ubio Websphere Studio 5.1.1

Robotium Automated Testing for Android

Integrate your tools to help integrate your stakeholders

Introduction to Android Programming (CS5248 Fall 2015)

How To Write An Ria Application

Java Web Programming with Eclipse

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Transcription:

Eclipse Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen

Agenda What is eclipse and why bother? - An introduction to eclipse. eclipse fundamentals (Java) development with eclipse reading code writing code build and run code debugging testing collaborative work with eclipse task management version control beyond Java programming extending eclipse plug-ins and equinox Java Development Toolkit APIs eclipse modeling framework further reading 2

introduction

What is eclipse? Eclipse started as a proprietary IBM product (IBM Visual age for Smalltalk/Java). Eclipse is open source - it is a general purpose open platform that facilitates and encourages the development of third party plug-ins. Eclipse is best known as an Integrated Development Environment (IDE). Eclipse was originally designed for Java, now supports many other languages. C, C++, Python, PHP, Ruby XML, HTML, CSS ant, maven, and many more 4

What is eclipse not? Eclipse is not a programming language. Eclipse is not a software modeling tool; but it can be used as one. 5

Integrated Development Environments (IDEs) In this lecture we manly see eclipse as an IDE. Programming requires the use of many tools: editors (vim, emacs) compilers (gcc, javac) code analyzers (lyn) debuggers (gdb, jdb) build-tools (make, ant, maven) version control (cvs, svn, git, ClearCase) IDEs integrate those tools into a single coherent environment. one rich graphical user interface one configuration scheme The different tools are connected with each other. 6

Why bother? IDEs are omnipresent. Many software engineering tools only have rudimentary interfaces. IDEs can automate many processes in software engineering: building, testing generation of boiler-plate code 7

fundamentals

Installation (I) download: http://www.eclipse.org/downloads/ Eclipse 3.x releases are: Callisto, Europa, Ganymede, Galileo, Helios, Indigo (3.7, recommended), Juno (4.2) There is a 32- and 64-bit version for Windows, MacOS, and Linux/Unix. Eclipse is java-based but uses SWT, a GUI-toolkit with platform specific versions. There are different packages (different collections of plug-ins) for different use-case. Download Eclipse IDE for Java Developers when in doubt. 9

Installation (II) after download: You have a.zip- or.tar.gz-file. unzip The unzipped folder contains an executable eclipse(.exe) start eclipse: You will have to choose a workspace. The workspace is the place were eclipse will store all your work and configurations. Workspaces can be switched later. Choose a new directory somewhere in your home folder. You leave the welcome screen with the right-hand-side arrow. 10

The Workspace... shows your current work.... is fully configurable, (via Window menu). Views can be moved, removed, added. You can switch between perspectives (specific arrangement of views). Views can be very general (e.g. Problems, Outline) or specific (e.g. Package Explorer (java), Task List (mylyn)) The workspace has a menu bar (top) and status bar (bottom) The workspace and views have action bars The space in the middle contains open editors. Editors may change the menu bar. 11

Eclipse Vocabulary Workbench, Perspective, Editor, View Project organizational unit for your work corresponds to a folder on your hard-drive, by default in the workspace directory is a resource Resource generic term for folders, files, and sometimes file-like (virtual resources) entities Preferences eclipse wide configuration organized by plug-ins Properties project specific configuration allows to create project specific settings for large parts of the preferences 12

Java Development Tools (JDT)

Java Development Tools (JDT)... is a set of plug-ins that turn eclipse into a Java-IDE JDT comprises of: Java editor with syntax highlighting, code-completion, templates, refactorings, navigation,... Package explorer Java specific views for documentation debugging type-hierarchies outline Java search Java builder 14

Java Projects A Java project is a special project. A Java project contains: source folders with your sources other folders and files you add (e.g. jars, ant-scripts, etc.) the compiled.class-files (hidden) references to used libraries Projects can be configured through a property editor Most configurations are projects specific changes to the global eclipse wide configuration. Most important for java projects is the Java Build Path: source folders and class folder dependencies (other Java projects you need resources from, e.g. classes) libraries (internal and external jars and system libraries) 15

Anagrams, a Simple Programming Exercise Dave Thomas (aka pragmatic Dave) defines Code Katas as fundamental training exercises for programming: http://codekata.pragprog.com Anagrams are sets of words that are made up from the same letters. Problem: Find all anagrams in a list of words. We use a small word list from Kevin's Word List Page(http://wordlist.sourceforge.net) as example. 16

Write Java Create Classes, Interfaces, and Package from the Project Explorer. Use code-completion and templates with crtl-space. Use refactorings from the refactor context-menu. Use quick-fixes to deal with errors (crtl-1). Generate code (e.g. getter and setter) from the source context-menu. Organize imports from the source context-menu. Extract interface from the refactor context-menu. 17

Read Java Navigate with F3 Search for references and declarations View type-hierarchies and call-hierachies with the context-menu Use the outline-view Use the Java search Lookup Java-Doc with hovers Mark Occurrences from the action bar 18

Build and Run Java Builds automatically for simple project configurations. Run from the context-menu. Look at run-configurations from the action bar and change the arguments. Add an external.jar library to your project. 19

Debug Java Use debug instead of run. Add breakpoints. Switch to the debug-perspective as offered. Step-in, step-over, step-return, and resume (F5-F8) Look at variables in the variable view. Inspect expressions from the context-menu. Use the expressions view (show view first from the Window menu). Add exception break points. Switch frames in the debug view. Use hot-deploy (i.e. change the code and save it while running). 20

Testing with JUnit Create a test-case from the Package Explorer. Run the test-case from the context menu. Navigate through failing test from the JUnit view. Debug a test-case from the context menu. Inspect run-/debug-configurations for JUnit. Run all test-cases in a project from the Package Explorer. 21

collaborative work with eclipse

Task management (with Mylyn) Problems to solve: Information overload Slow context switches Import and manage tasks (e.g. bugs and feature requests) in eclipse Workspace state (e.g. open editors) is bound to the active task You can switch between task and automatically switch between workspace states 23

Version Control (with SVN) Install subversive, using the eclipse Marketplace use the latest pure Java svn connector Open the repositories view and create a new repository. Share a project via the Package Explorer. Notices the differences in the Package Explorer s resource presentation. Change a file and compare it with the latest version from the repository via the Package Explorer. Use the comparison editor to revert changes. Commit your changes via the Package Explorer. Explore the history view. 24

beyond Java programming

Popular Official Eclipse Projects http://www.eclipse.org/projects/listofprojects.php Eclipse Platform, JDT, PDE Eclipse Modeling Project Eclipse Modeling Framework (EMF) EMF EMF compare relational database mappings Graphical Modeling Framework Xtext Model-2-Model and Model-2-Text UML/OCL tools Mylyn task management Service Oriented Architecture (SOA) Languages: C/C++, Python, Scala Eclipse Web Tools Platform J2EE Javascript XML Web Services 26

Popular Non-Eclipse Products diverse UML and other modeling plug-ins (just search the Marketplace) Google Plug-in (http://code.google.com/eclipse/): Google Web Toolkit Google App Engine Android programming Spring s Source Tool Suite (http://www.springsource.com/developer/sts) J2EE Grails 27

Install new plug-ins. the eclipse Marketplace the traditional way Update sites (identified by URLs) provide plug-ins via HTTP. Eclipse update site provides all plug-ins of the various official eclipse projects. Update-sites of third party vendors can be added and their plug-ins installed. install plug-ins manually Eclipse manages plugins (typically as.jars and.zips) in its internal folder structure. 28

extending eclipse

Eclipse is...... not a monolithic piece of software... an extendable platform... a collection of plug-ins all functionally we saw is deployed in a plug-in... a hierarchy of plugins plug-ins use each other (plug-in dependencies) eclipse has abstract plug-in (e.g. the team plug-ins) therefore all specific plug-ins (e.g. JDT/CDT, CVS/subclipse) have the same look and feel... is a Rich Client Platform (RCP) for developing noneclipse rich clients 30

31

Bundles and Plug-ins two mechanisms: Equinox(OSGi)-based bundles eclipse plug-ins 32

Equinox Bundles What happens when different vendors program code running in the same JVM? different classes with same package and name collide same classes in different versions with same package name collide when one vendor wants to use classes of another it is not clear which class one intends to use What is the solution? classes are organized in bundles each bundle gets its own class loader that only sees the classes in that bundle bundles can use other bundles and user their classes: class loaders of dependent bundles are used when the own class loader does not find a used class 33

Eclipse plug-ins Plug-ins define extension points and use extension points creating extensions. Popular extension points are: commands editor popup-menu additions property pages views project builders additions to the help system 34

Writing your own plug-ins Steep learning curve due to numerous techniques and existing plug-ins: plug-in and bundle mechanisms SWT JFace views, editors, property views How to succeed? Use how-tos and tutorials. Apply monkey sees, monkey does. Use similar, existing plug-ins as starting points. 35

Writing RCPs RCPs are build from features, features are build from plug-ins Typically a mix of existing eclipse plug-ins and your own plug-ins. Of course you finally define splash screen and about box. Eclipse can build binaries for all platforms (cross platform development). 36

Popular Frameworks for Writing Plug-ins Eclipse Modeling Framework (EMF) Graphical Editing Framework (GEF) Graphiti based on EMF GMF Xtext 37

Write a Plug-in install the Platform Development Environment (PDE) create a plug-in and use an extension wizzard inspect the generated code run the plug-in modify and re-run the plug-in learn more about plug-in writing and deployment: http://www.vogella.de/articles/eclipseplugin/article.html 38

further reading

Books Eclipse, Steve Holzner, O Reilly Programmieren mit Eclipse 3: Universelle Entwicklungsplattform für Java, PHP, C/C++, SQL, XML, XSLT, XSL-FO, JSP, Servlets, JEE, UML, HTML, CSS, JavaScript, Michael Seeboerger- Weichselbaumm, mitp Eclipse Plug-ins, Eric Clayberg and Dan Rubel, Addison-Wesley EMF - Eclipse Modeling Framework, Dave Steinberg et al., Addison-Wesley 40

Internet Resources http://help.eclipse.org/indigo/index.jsp http://www.eclipse.org/articles/ http://wiki.eclipse.org http://eclipse.org/projects/ http://www.planeteclipse.org/planet/ 41