duke university program design & construction course application development tools sherry shavor...
Post on 27-Dec-2015
214 Views
Preview:
TRANSCRIPT
Duke University Program Design & Construction Course
Application Development ToolsSherry Shavor
sshavor@us.ibm.com
Software Engineering Roles
• Software engineers wear many hats– Tool developer– Tool user– Customizing / Extending a tool– Tool evaluator
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
Plug-in Code Generator
Generates a plug-in with zero or more extensions.
For Example:
•Menus
•Editors
•Views
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
top related