Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
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 –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 Java Development Tools (JDT) Their Tool Your Tool Another Tool Eclipse Overview Plug-in Development Environment (PDE) Eclipse Platform Debug
Registration and Implementation XML Java Code <plugin id="com.ibm version="1.0.0" provider-name="IBM"
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"> <page id = "com.example.tool.preferences" icon = "icons/knob.gif" title = “Tool Knobs" class = "com.example.tool.ToolPreferenceWizard“/> Declare contribution this 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. 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 – “The Java Developer’s Guide to Eclipse” by Shavor, D’Anjou, Fairbrother, Kehn, Kellerman, McCarthy –Addison Wesley, ISBN