Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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