Post on 13-May-2018
Agenda
� What is Eclipse?
� What’s new
� EMF (Eclipse Modeling Framework)
� UML2
� Hyades
� IBM’s Extension to Eclipse (Rational Application Developer)
What is it and why was it developed The Problem - Proliferation of poorly-integrated development tools
Legacy
Mgt.
Bus.
Logic Developer
Analysis
& Design
XML
Schema
Adapter
BuilderPerformance
Tuner
Site Developer
• Programmers
• Performance
analysts
• Web Content
developers
• QA teams
• Database
administrators
• Wireless / voice
app developers
• Configuration
managers
• Graphics artists
• Business Rule
Analysts
• etc.
Portal
Development
Eclipse: What is it?
�Open Source licensing and operating Model� Established Eclipse consortium (eclipse.org)
� 9 Initial members, (IBM, Rational, TogetherSoft, WebGain, Borland)
�A Technology Offering� Universal platform for integrating development tools
� Developers have better things to do than integrate tools
� Support for a variety of operating systems
� Open, extensible architecture based on standards
� Assemble tools from different suppliers to make a tool environment the way you want it
� Licensed for royalty free world-wide distribution
� Plus out-of-box functionality and quality to attract developers
�A Community� Controls and Contributes to the project and technology
� Brings to market commercial offerings
Eclipse: What is it?
� Eclipse Foundation formed 2004
� Year Later Eclipse is a Hit� Dramatic Growth in members at all levels
� Deeper Commitment by independent tools vendors
� Dramatically Reduced Fragmentation� Eclipse now the major non-Microsoft Tool Platform
� IBM’s Commitment
� IBM More committed to Eclipse than ever
� More Developers contributing to Eclipse projects than a year ago
� Eclipse based products from every IBM Software Group (Rational, Lotus, WebSphere, Tivoli, DB2)
� Eclipse Revamping of Rational Products
An Extensible Platform
extensible platform
extensible IDE
IDE
plug-ins
run-time
plug-ins
“everything is a plug-in”
What is a plug-in?
� Basic unit of modularity/installation
� ID and version
� Set of elements to put on the plug-in’s classpath
� Set of prerequisites (with version constraints)
� Extension and extension point declarations
� Lives in its own plug-in subdirectory
� Each plug-in gets its own classloader
� Allows code independence
� 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 == component, module
What is a plug-in (cont’d)
� plug-in – set of contributions
� Smallest unit of Eclipse functionality
� Big example: HTML editor
� Declares its pre-requisites
� extension point
� Named entity for collecting contributions
� extension – a contribution
� Extenders make contributions - platformcontrols and manages the contributions
plug-in
extension
extension point
plug-in
plug-in
Plug-in “kinds”
everything is a plug-in but not all plug-ins are equal…
� library plug-ins� neither contribute nor define extension points
� publish API
� often wrap existing libraries to make them accessible from eclipse
�plug-ins� contribute to extension points
� define new extension points
� publish API
�application plug-ins� contribute to extension points
� define no extension points
� don’t publish API
Agenda
� What is Eclipse?
� What’s new
� Eclipse Modeling Framework
� UML2
� Hyades
� IBM’s Extension to Eclipse (Rational Application Developer)
Development Themes for Eclipse 3.0
Eclipse
Rich Client
Platform
UI Responsiveness
Look and Feel
UI Scalability
Java Tools
New Look and Feel...
• Title bars and tabs for views and editors look different.
• Maximize and restore on views.
• “Close all” and “Close others” on views menu.
• Views include a button for collapsing (minimize).
• Perspective switching/opening toolbar changed.
• Fast view bar can be on the bottom (default), left or right.
• Fastview bar size is reduced when is empty.
• Title bars and tabs merged into one to save space.
• Drag and drop has been improved.
• Detached views are supported.
• Editor management has changed.
• ...
and many UI improvements!
More Flexible Runtime: dynamic plug-ins
� Change plug-in configuration without restarting
� Use cases
� User attempts to use new function not yet installed
� Auto-update subscription services
� Dynamic aware plug-ins must listen/react to other plug-ins coming
and going
� Updates to the registry (update structures and/or destroy objects)
� Drop references to objects from other plug-ins (hard)
� Platform is now based on OSGI standard
� Open Services Gateway initiative
� http://www.osgi.org/
reduce need to restart
Rich Client Platform Requirements
� “Could I dump all the plug ins that come with eclipse and use the
platform to host only business specific plug-ins that have been
built?” – news.eclipse.org
� When using eclipse as an ordinary application platform you get
too much…
� but…many eclipse components are not IDE specific
� Enable eclipse to be used for non-IDE applications
� no built-in editors, views, perspectives
org.eclipse.ui��org.eclipse.ui
org.eclipse.ui.ide
generic generic
workbenchworkbench
Eclipse Platform 2.1 (pre-RCP)
Runtime
SWT
JFace
UI
Workbench(with IDE personality)
Text IDE Views
Resources
Help Update Compare Debug SearchTeam/
CVS
Primary
Application
Eclipse Platform 3.0 (post-RCP)
Primary
Application
Runtime (OSGi)
SWT
JFace
UI (Generic Workbench)
Text
IDE
Resources
Help UpdateCompare Debug Search
Team/
CVS
Eclipse RCP
(optional) (optional) (optional)
(optional)
IDE
Text
Rich Client: Finally, Java Desktop Applicationshttp://www.eclipse.org/rcp/
From simple
spreadsheet
(instructional example)
To Enterprise Desktop
Application
(Lotus Workplace)
Other Eclipse 3.0 features
� Background tasks
� Background files automatically refreshed
� Change workspace without restarting
� Editor management easier (tabs or list), plus pinning
� Improved ant support
Java Improvements
� API support for other Java-like artifacts: JSP’s and SQLj
� Refactoring and Search
� Initial support for Java 1.5 (Tiger)
� Spell checking
� Folding of code regions in the editor
� New views
� Javadoc, Declaration, Call Hierarchy
� Refactoring improvements
� Very powerful Java IDE: a strong base for Rational Application Developer!
Reducing UI Complexity: How to Manage Too Much of a Good Thing
�Scalability Problem –large functional tools have overwhelming content
� New users are confused
� Solution must not restrict advanced users
�Solve problem by allowing tool to define capabilities and trigger points
� Initially display a limited number of Wizards, Preferences, Views, and so on
� Trigger points cause disclosure of hidden capabilities
� Advanced users can modify
Agenda
� What is Eclipse ?
� What’s new
� Eclipse Modeling Framework
� UML2
� Hyades
� IBM’s Extension to Eclipse (Rational Application Developer)
� Contrary to most programmers’ belief, modeling can be useful
for more than just documentation
� Just about every program we write manipulates some data
model
� It might be defined using Java, UML, XML Schema, or
some other definition language
� EMF aims to extract this intrinsic "model" and generate some
of the implementation code
� Can be a tremendous productivity gain
Model Driven Development with EMF
What is EMF?
� Supplies the data integration technology for Eclipse
� Eclipse supplies code integration
� But EMF is NOT dependent on Eclipse
� Open source project
� A tools sub-project of Eclipse (www.eclipse.org)
� Model implementation framework
� Provides the infrastructure for implementing well behaved models
What is EMF?
� EMF is middle ground in the modeling vs. programming world
� Focus is on class diagram subset of UML modeling (object model)
� Transforms models into efficient, correct, and easily customizable Java code.
� Provides the infrastructure to use models effectively in your code
� Low cost of entry
� Full scale graphical modeling tool very helpful but not essential
� EMF is free
� Small subset of UML
What does EMF Provide?
� Eclipse based tooling
� Runtime environment
� Meta model
�A general model of modelsfrom which any model can be defined
�Models classes, attributes, relationships, data types, etc.
�Referred to as Ecore
�Ecore is just another EMF model.
�EMF can be used to extend EMF!
Who is using EMF today?
� IBM WebSphere/Rational product family
� Other Eclipse projects
� XSD, UML2, VE (Visual Editor), Hyades (Automated Software Quality)
� ISV’s (Borland Together, Ensemble Systems, Versata, Omondo, and
more)
� Service Data Objects (SDO) reference implementation
� Large open source community
� 1K downloads/day
� and growing …
Agenda
� What is Eclipse ?
� What’s new
� How it complements the SDP
� Eclipse Modeling Framework
� UML2
� Hyades
� IBM’s Extension to Eclipse (Rational Application Developer)
What is UML2?
� An Eclipse Tools subproject at http://www.eclipse.org/uml2
� An EMF-based implementation of the UML 2.0 metamodel
for the Eclipse platform
�Objectives are to provide:
� A usable implementation of the metamodel to support the development of
modeling tools
� A common XMI schema to facilitate interchange of semantic models
� Test cases as a means of validating the specification
� Validation rules as a means of defining and enforcing level of compliance
� Used by the IBM/Rational Tools
Agenda
� What is Eclipse ?
� What’s new
� How it complements the SDP
� Eclipse Modelling Framework
� UML2
� Hyades
� IBM’s Extension to Eclipse (Rational Application Developer)
Hyades
� Is an integrated test, trace and monitoring environment
� Uses EMF and the OMG testing profile (U2TP) to define how testing information is stored and shared
� Includes ability to store execution traces, statistical data structures, as well as test case definitions and execution histories.
� Test Tools Framework
� Provides interface definitions for tests,
� Infrastructure for remote test execution and scheduling
� Performance, Log and Trace Tools
� Provides an extensible framework for capturing performance, trace and logging information
� Data Collection
� Defines standard interface for data collection and storage is in the EMF layer
� Provides a notification mechanism as data is collected
� Data Collectors will be extended by application vendors
� Eclipse Views
� Currently provides a very basic set of analysis tools and data viewers+
Hyades extends the Eclipse platform
� Hyades comprises a set of Eclipse plugins
�Hyades 3.0 depends on 3 Eclipse plugins part of the Eclipse Tools sub-project�EMF: Eclipse Modeling Framework�JDT: Java Development Toolkit�GEF: Graphical Editing Framework
�Each plugin provides extension points (■) enabling additional capabilities such as�Test generators�Additional information in views�Analysis engines�Reporting�etc
EclipseEclipse
Test Execution EngineTest Execution EngineData Collection MasterData Collection Master
EMFEMF
Testing ProfileTesting ProfileProfiling ModelProfiling ModelJDTJDTGEFGEF
Hyades Views/PerspectivesHyades Views/Perspectives
Profiling Views/PerspectiveProfiling Views/Perspective Testing Views/PerspectiveTesting Views/Perspective
Who is it for?
� Primary target:
�ISVs building Automated Software Quality,
Monitoring products or capabilities
�Released solutions relying on the Hyades
platform
�IBM Websphere Studio Application
Developer/Rational Applicatoin Developer
�iCandle Pathway Performance Analyzer
�SAP Netweaver
�Scapa StressTest Express 3.0
� Secondary targets:
�Large organizations building in-house
testing and monitoring solutions
�End users looking for entry level
capabilities not ready to commit to
commercial product offerings
Agenda
� What is Eclipse ?
� What’s new
� How it complements the SDP
� Eclipse Modelling Framework
� UML2
� Hayades
� IBM’s Extension to Eclipse (Rational Application Developer)
IBM’s Eclipse Software Development Platform Integrating development into a single/common IDE platform
Eclipse CoreEclipse Core
GEFGEF JDT/CDTJDT/CDT Team Team
HyadesHyades
CM, Merge, TraceabilityCM, Merge, Traceability……..
Model Services (UML2 ext, other MetaModel Services (UML2 ext, other Meta--Models, Code Gen APIs, Models, Code Gen APIs, ……))
EMFEMF
J2EE, Web Services, UML2 ModelsJ2EE, Web Services, UML2 Models
Eclipse
Eclipse
AnalystAnalyst
ArchitectArchitect
DeveloperDeveloper
TesterTester Deployment Manager
Deployment Manager
Project ManagerProject Manager
The IBM Software Development PlatformRational Tooling V6.0 - What’s new & enhanced: Simplified solutions
CustomerExtensionsCustomer
Extensions3rd PartyISV Tools3rd PartyISV Tools
Rational Software Architect
Rational Software Architect
Rational Application Developer
Rational Application Developer
Rational Functional & ManualTester
Rational Functional & ManualTester
Rational Performance
Tester
Rational Performance
Tester
Rational Team Unifying PlatformRational Team Unifying Platform
Tivoli Configuration Manager
Tivoli Configuration Manager
WebSphereBusinessIntegrationModeler& Monitor
Rational Software Modeler
WebSphereBusinessIntegrationModeler& Monitor
Rational Software Modeler
TivoliMonitoringTivoli
MonitoringRational Web
Developer
Rational Web
Developer
Rational Portfolio ManagerRational Portfolio Manager
Analyst Architect Developer Tester Deployment Manager
Project Manager
Executive
IBM Rational Web Developer
Eclipse Java Dev Tools
XML Tools
Eclipse Java Development Tools
• J2SE development tools
• Code completion, search, refactoring
• Extensible Team APIs to support CM
integration (CVS, ClearCase, and
many others)
• Plug-in Development Environment for
extensibility
EGL
• Simplified 4GL for Web
Application Development
• Text User Interface Programs
Support (3270, Curses)
• VisualAge Generator -> EGL
Migration Tool
• Java Runtime Targets
XML Tools
• XML, XSD, XSL, etc. tooling support
Rich Client UI construction
• Visual Editor for Java for rich client
composition
• Service Data Objects (SDO) Support
• Supports Swing, AWT, SWT widgets
Web UI construction
• Visual site layout tools
• Drag-and-drop web client
construction supporting range
of web client technologies:
•HTML, JSP, Servlet
•Struts, JSF
•Service Data Objects
Follow on to WebSphere Studio Site Developer
New Rapid Application Development capabilities focused on ease of use
IBM Rational Web Developer
Web Services Tools
• Create/manipulate services
• WSDL visual editor
• UDDI Registry browser
Web Services Tools
Enterprise Generation Language
Rich Client UI construction
Data tools
Web UI construction
Database tools
• Explore and design database
schema
• SQL Query Builder
• Stored procedure builder
IBM Rational Application
Developer
ClearCase LT
RUP Configuration for J2EE
Rational Web Developer
UML Visual Editors
• Class diagrams for Java/EJB structure
• Sequence diagrams for method body
visualization
• IDEF1X/IE diagrams for Database and
XML schema
• Dynamic topic diagrams
• Javadoc integration
• Visual refactoring
Code Analysis Tools
• Both static source code analysis
and dynamic runtime analysis
• Source code analysis for rule
violation detection: Globalization,
J2EE/J2SE Best Practices,
Private API Usage, Performance
• Sequence diagram runtime trace
with performance, thread and
code coverage annotation
• Advanced memory leak
detection
• Remote data collection across
multiple servers
• User-defined run-time probes
• Interactive reports and metrics
J2EE/EJB Tooling
• J2EE construction tools
• Supports WebSphere and
WebLogic
• Supports J2EE 1.3 and 1.4
• Rapid Deployment for WAS v6
• Integrated WAS test environments
• O/R mapping
UML Visual Editors
Code Analysis Tools
Portal/Portlet Design Tools
J2EE/EJB Tooling
Component/Unit Test
IBM Rational Application Developer
Follow on to WebSphere Studio Application Developer
Component/Unit Test
• JUnit-based testing of Java components,
EJBs and Web Services
• Test prioritization recommendation based
on code analysis
• Automated test case generation through
usage of test patterns
• Datapool editor for data-driven testing
• Optimized unit testing through a set of
metrics in the test creation wizard
• Test creation wizard offers a set of test
patterns to automatically generate test
Portal/Portlet Design Tools
• Visual Portal site and page layout tools
• Visual Portlet layout and preview
• Integrated Portal test environment
IBM Rational Software
Architect
ClearCase LT
RUP Configuration for SW Architects
IBM Rational Software Architect Product Overview
Application Developer
C/C++ Development Tools
Software Modeler
UML Language Transforms
Java Structural Analysis
“WSAD v6”
• JSF, SDO, Struts
• Java GUI editor
• Web diagram editor
• Site designer
• Web Services development tools
• Database editing tools
• EGL
• EJB development tools
• UML code editors for EJB, Java, and
Data
• Static Analysis
• Runtime Analysis
• Component test automation
• Portal/Portlet development tools
“Modeler”
• UML 2.0 Diagrams for
Class, Communication,
Component, Composite
Structure, Deployment,
Activity, Sequence, State,
and Use Case
• OCL Support
• Automatic diagram
generation
• Pattern content
• Pattern/Transform
authoring framework and
services
• Extensive open API
• Java-based “scripting” for
extensibility
• HTML and XML based
data extraction and
reporting
• Extensive printing
• RAS tools
• C/C++ editors and build management
• Compiler and debugger integration
• UML code editors
• Sample UML-to-code transforms for
EJB, Java, and C++
• Selective language to UML harvesting
“Application Analyzer”
• Automatic anti-pattern and
pattern detection
• Architectural discovery,
analysis, metrics, and
stability reporting
• Implementation level
architectural rules
Rational Tools -� Improved Ease of Use
� Tutorials and Samples 1
� Java Server Faces Support is Outstanding!
� Quickly Build Thin Client Applications Using Drag and Drop 1
� Visualization Java Applications
� Quickly build Java Applications using visual editor
� Integrated Source Control
� ClearCase LT ships with RAD
� Structural/Runtime Analysis 1, 2, 3,, 4
� Debugging, Static Analysis, Runtime Analysis, Code Coverage
� Code Visualization
� Graphically see Code using UML Standards
� Portal Support
� Build Portal Applications with integrated Environment
� Rapid Development
� Integrated Application Server Test Environment
� Many more Perspectives and Wizards to increase productivity!
� Modeling, RAS (Reusable Assets), XML Editors, Requirements, etc.
Eclipse Based Tools. What Should I use?
� Use Straight Eclipse if
� Eclipse meets your development project needs (Java/C++)
� You don’t have to download and install too many free/fee plugins
� Many Plugins can lead to configuration support problems across your organization
� Many Plugins are not free for corporate use
� You can live with Open Source Support
� Use Rational Tools (RSA/RAD/RWD) if
� Additional IBM Supported features provide added value to your organization. Increases in Developer Productivity can quickly offset the cost of the tooling
� WebServices, JSF, Rich Client Java Applications
� Structural Analysis/Code Reviews
� Portal Development
� Rapid Deployment to embedded application server
� Enterprise requires traceability (Requirements thru Testing tools)
� Enterprise wants trusted supported tools
� Can reduce support costs across your organization.
Eclipse Resources
� Eclipse RCP
� http://eclipse.org/rcp
� Eclipse Community
� http://eclipse.org/community
� Eclipse Plugin Central
� http://www.eclipseplugincentral.com
� Eclipse Powered
� http://www.eclipsepowered.com
IBM Education Assistant – Web Based No Charge http://www.ibm.com/software/info/education/assistant/
* Dates are not final
Courseware
* Dates are not final
Rational UniversityNEW! Instructor Led Training (ILT) Courses
�RD521 Essentials of Rational Application Developer �RD531 Essentials of Rational Software Architect
NEW! Web Based Training (WBT) Courses�Rational Application Developer v6 (Dec 2004)
UPDATED! Instructor Led Training (ILT) Courses�SW235 Rational Application Developer v6.0 Bootcamp�SW225 JSP and Servlet Dev with Rational Web Developer�SW257 EJB Development with Rational App Developer
WebSphere Training
and Technical
Enablement