eclipse based tools for software development - intertech · eclipse based tools for software...

44
Eclipse Based Tools for Software Development Dean Henkel IBM Technical Rep [email protected]

Upload: ngokhue

Post on 13-May-2018

227 views

Category:

Documents


2 download

TRANSCRIPT

Eclipse Based Tools for

Software Development

Dean Henkel

IBM Technical Rep

[email protected]

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)

Rich Client: Finally, Java Desktop Applications - Examples

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