duke university program design & construction course application development tools sherry shavor...

21
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor [email protected]

Upload: rolf-nelson

Post on 27-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Duke University Program Design & Construction Course

Application Development ToolsSherry Shavor

[email protected]

Software Tools• Design

– Rational Design tools• Code

– Integrated Development Environments• Eclipse• Visual Studio• WebSphere Studio

– Editors– Specialized tools

• User Interface• Database• Embedded• Transaction• Security

• Change Management / Source code control– CVS– Rational ClearCase– PVCS

Software Tools• Test

– JUnit– JProbe

• Documentation– Help – online help, contextual help– Hardcopy– Web sites

• Build– Ant, home grown tools

Eclipse

• Eclipse– Open Source– Java development environment– Integration platform, frameworks– Plug-in development

• IBM WebSphere application development tools are built on Eclipse– WebSphere Application Developer

Eclipse Terminology

• Plug-in - smallest unit of Eclipse function– Big example: HTML editor– Small example: Action to create zip files– Demo – (night light component)

• Extension - a contribution– Example: specific HTML editor preferences– Demo – (night light)

• Extension point - named entity for collecting “contributions”– Example: extension point for workbench preference UI– Demo – (socket)

• Eclipse platform– Demo – (power strip)

Eclipse demo

• Can you see the common function?

• Functions provided by plug-ins– Views (panes)– Editors– Preference pages– Dialogs– Help– Etc.

Platform Runtime

Workspace

Help

Team

Workbench

JFace

SWT

Eclipse Project

JavaDevelopment

Tools(JDT)

Their Tool

Your Tool

AnotherTool

Eclipse Overview

Plug-inDevelopmen

tEnvironment

(PDE)

Eclipse Platform

Debug

Registration and Implementation

XML

Java Code<plugin id="com.ibm version="1.0.0" provider-name="IBM"</plugin>

Eclipse Plug-in Architecture

• Each plug-in– Contributes to 1 or more extension points– Optionally declares new extension points– Depends on a set of other plug-ins– Contains Java code libraries and other files– May export Java-based APIs for downstream plug-ins– Lives in its own plug-in subdirectory

• Details spelled out in the plug-in manifest– Manifest declares contributions

– Code implements contributions and provides API– plugin.xml file in root of plug-in subdirectory

Plug-in Manifest

<plugin id = “com.example.tool" name = “Example Plug-in Tool" class = "com.example.tool.ToolPlugin"> <requires> <import plugin = "org.eclipse.core.resources"/> <import plugin = "org.eclipse.ui"/> </requires> <runtime> <library name = “tool.jar"/> </runtime> <extension point = "org.eclipse.ui.preferencepages"> <page id = "com.example.tool.preferences" icon = "icons/knob.gif" title = “Tool Knobs" class = "com.example.tool.ToolPreferenceWizard“/> </extension> <extension-point name = “Frob Providers“ id = "com.example.tool.frobProvider"/></plugin>

Declare contributionthis plug-in makes

Declare new extension point open to contributions from other plug-ins

Location of plug-in’s code

Other plug-ins needed

Plug-in identification

plugin.xml

Using an Existing Extension Point

• Find the appropriate extension point (XML)

• Find out the requirements of that extension point (XML)

• Write code in Java

Plug-in Development Environment

• Goal: – To make it easier to develop Eclipse plug-ins– Support self-hosted Eclipse development

• Plug-in development environment (PDE)– Specialized tools for developing Eclipse plug-ins– Built on Eclipse Platform and JDT– Implemented as Eclipse plug-ins– Included in Eclipse Project releases

• Separately installable feature

• Part of Eclipse SDK drops

• Demo of PDE

PDE

• Specialized PDE editor for plug-in manifest files

Plug-in Code Generator

Generates a plug-in with zero or more extensions.

For Example:

•Menus

•Editors

•Views

Fill-in the Blank Generation

PDE• PDE runs and debugs another Eclipse workbench

1. Workbenchrunning PDE

(host)

2. Run-timeworkbench

(target)

Eclipse Platform Architecture

• Eclipse Platform Runtime is micro-kernel– All functionality supplied by plug-ins

• Eclipse Platform Runtime handles start up– Discovers plug-ins installed on disk– Matches up extensions with extension points– Builds global plug-in registry– Caches registry on disk for next time

How to learn a tool

• Purpose of the tool• Terminology• Function• Extensibility• License/Support• Sources of information

– online– books– magazines– newsgroups

Assignment

• Select an application development tool you are using.– Examples: Eclipse, Visual Studio, Emacs ….

• Each student should assume the role of a computer engineer making a recommendation to management that they would or would not like to use the application development tool selected.

• Create a presentation (approx 5 min in length) to present your recommendation to management (professor).

• The presentation should include the– pros/cons of the tool including the function, licensing (open

source), support aspects, cost etc.

• Due on the 13th, each student should be prepared to give their presentation.

Where to go for more information

• Eclipse website– http://www.eclipse.org

• “The Java Developer’s Guide to Eclipse” by Shavor, D’Anjou, Fairbrother, Kehn, Kellerman, McCarthy– Addison Wesley, ISBN 0-

321-15964-0