Duke University Program Design & Construction Course
Download
Report
Transcript Duke University Program Design & Construction Course
Duke University Program
Design & Construction Course
Application Development Tools
Sherry Shavor
[email protected]
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.
Eclipse Overview
Another
Tool
Eclipse Platform
Workbench
Java
Development
Tools
(JDT)
Plug-in
Development
Environment
(PDE)
Help
JFace
SWT
Workspace
Team
Debug
Platform Runtime
Eclipse Project
Your
Tool
Their
Tool
Registration and Implementation
XML
<plugin
id="com.ibm
version="1.0.0"
provider-name="IBM"
</plugin>
Java Code
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.xml
<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>
Plug-in identification
Other plug-ins needed
Location of plug-in’s code
Declare
contribution
this plug-in makes
Declare new extension point
open to contributions from
other plug-ins
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. Workbench
running PDE
(host)
2. Run-time
workbench
(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 0321-15964-0