210 likes | 354 Views
Duke University Program Design & Construction Course. Application Development Tools Sherry 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
E N D
Duke University Program Design & Construction Course Application Development Tools Sherry 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.
Eclipse Overview Another Tool Eclipse Platform Workbench Help Java Development Tools (JDT) JFace SWT Team Your Tool Plug-in Development Environment (PDE) Workspace Debug Their Tool Platform Runtime Eclipse Project
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 identification Other plug-ins needed Location of plug-in’s code Declare contributionthis plug-in makes Declare new extension point open to contributions from other plug-ins 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>
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
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