Download Duke University Program Design & Construction Course

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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