rup for successful j2ee projects · pdf filerup for successful j2ee projectsrup for successful...

54
IBM Software Group ® RUP for Successful J2EE Projects RUP for Successful J2EE Projects Peter Eeles [email protected] Peter Eeles [email protected]

Upload: vukhue

Post on 06-Mar-2018

226 views

Category:

Documents


5 download

TRANSCRIPT

IBM Software Group

®

IBM Software Group

®

RUP for Successful J2EE ProjectsRUP for Successful J2EE ProjectsPeter [email protected] [email protected]

AgendaAgendaAn Overview of RUP

Rational Unified ProcessAn Overview of RCJD

RUP Configuration for Java DevelopersAn Overview of applying RCJD

To the development of an Online Auction application

An Overview of RUPRational Unified Process

An Overview of RCJDRUP Configuration for Java Developers

An Overview of applying RCJDTo the development of an Online Auction application

For more info …For more info …

The RUP “Hump Chart”The RUP “Hump Chart”

RUP Key ConceptsRUP Key Concepts

ScopeScope

Support is provided for a browser-based

process

Process configurations can be created

Process content can be

defined

Process plugins are available from

DeveloperWorks(e.g. MS®.net, J2EE, systems engineering)

Reduce Scrap/Rework: Avoid Sequential ProcessReduce Scrap/Rework: Avoid Sequential Process

Sequential Activities:Requirements Design Code Integration TestSymptoms of conventional

waterfall process Late design breakage40% effort on integration and test

Late DesignBreakage

100%

Project Schedule

Deve

lopm

ent P

rogr

ess

(% co

ded)

OriginalTarget Date

IntegrationBegins

CompletionDate

Reduce Scrap/Rework: Use an Iterative ProcessReduce Scrap/Rework: Use an Iterative Process

Prototypes Architecture Functional Product Releases Release

WaterfallProject Profile

ModernProject Profile

100%

Project Schedule

Deve

lopm

ent P

rogr

ess

(% co

ded)

Time

Attack Significant Risks EarlyAttack Significant Risks EarlyRisk

Risk resolution period

Risk exploration period

Controlled risk management period

IterativeWaterfall

Risk ReductionRisk Reduction

RCJDRCJDA configuration of RUPTargeted at developers using the J2EE platformA subset of RUP

No Business Modeling or Deployment disciplinesAn extension of RUP

User-Experience ModelingJ2EE-specific guidance

A configuration of RUPTargeted at developers using the J2EE platformA subset of RUP

No Business Modeling or Deployment disciplinesAn extension of RUP

User-Experience ModelingJ2EE-specific guidance

RCJD DisciplinesRCJD Disciplines

RCJD Key ArtifactsRCJD Key ArtifactsRequirements

GlossarySupplementary SpecificationUse-Case Model

Analysis and DesignData ModelDeployment ModelDesign ModelSoftware Architecture DocumentUser-Experience Model

ImplementationImplementation Model

RequirementsGlossarySupplementary SpecificationUse-Case Model

Analysis and DesignData ModelDeployment ModelDesign ModelSoftware Architecture DocumentUser-Experience Model

ImplementationImplementation Model

What is a model?What is a model?“A complete description of a system from a particular perspective” [RUP]“A complete description of a system from a particular perspective” [RUP]

Why do we model?Why do we model?To manage complexityTo clearly understand different concernsTo detect errors and omissions early in the lifecycleTo examine the relative merits of different optionsTo communicate with stakeholdersTo drive implementationTo understand the impact of changeTo ensure that resources are deployed efficiently

To manage complexityTo clearly understand different concernsTo detect errors and omissions early in the lifecycleTo examine the relative merits of different optionsTo communicate with stakeholdersTo drive implementationTo understand the impact of changeTo ensure that resources are deployed efficiently

What is Model-Driven Development?What is Model-Driven Development?

Testing

Requirements Analysis &Design Implementation

Why Model-Driven Development?Why Model-Driven Development?To speed up project delivery

In the absence of heroics, it is the fastest way to get from A to BTo improve the quality of the delivered system

Each model can act as a “quality gate”To weave together multiple stakeholder views

Stakeholders have different, yet related, concernsTo improve team working

Models form the basis of a “contract” between project rolesTo be more efficient

Reusing models (and model elements) throughout the lifecycle

To speed up project deliveryIn the absence of heroics, it is the fastest way to get from A to B

To improve the quality of the delivered systemEach model can act as a “quality gate”

To weave together multiple stakeholder viewsStakeholders have different, yet related, concerns

To improve team workingModels form the basis of a “contract” between project roles

To be more efficientReusing models (and model elements) throughout the lifecycle

RCJD ModelsRCJD Models

PearlCirclePearlCircleAn Online Auction applicationAn Online Auction application

Requirements ArtifactsRequirements Artifacts

Requirements – GlossaryRequirements – Glossary

Requirements – Use-Case ModelRequirements – Use-Case Model

Requirements – Supplementary SpecificationRequirements – Supplementary Specification

Analysis and Design ArtifactsAnalysis and Design Artifacts

Analysis (and Design) – Design ModelAnalysis (and Design) – Design ModelMulti-tier architecture employedMulti-tier architecture employed

Analysis (and Design) – Design ModelAnalysis (and Design) – Design ModelKeyabstractionsKeyabstractions

Analysis (and Design) – User-Experience ElementsAnalysis (and Design) – User-Experience Elements

Key screens (and input forms)Key screens (and input forms)

Analysis (and Design) – Software Architecture DocumentAnalysis (and Design) – Software Architecture Document

Analysis mechanismsAnalysis mechanisms

Analysis (and Design) – Design ModelAnalysis (and Design) – Design ModelUse-Case Realization (Basic flow)Use-Case Realization (Basic flow)

Analysis (and Design) – Design ModelAnalysis (and Design) – Design ModelUse-Case Realization (Participants)Use-Case Realization (Participants)

Analysis (and Design) – User-Experience ModelAnalysis (and Design) – User-Experience ModelUser-Experience Storyboard (Screen flows)User-Experience Storyboard (Screen flows)

Analysis (and Design) – User-Experience ModelAnalysis (and Design) – User-Experience ModelUser-Experience Storyboard (Participants)User-Experience Storyboard (Participants)

Analysis (and Design) – User-Experience Navigation MapAnalysis (and Design) – User-Experience Navigation Map

AuctionmanagementAuctionmanagement

J2EE ArchitectureJ2EE Architecture

Analysis and Design – Software Architecture DocumentAnalysis and Design – Software Architecture Document

Design (and Implementation) MechanismsDesign (and Implementation) Mechanisms

J2EE PatternsJ2EE PatternsPresentation Layer

Composite ViewFront ControllerService to WorkerView Helper

Business LayerBusiness DelegateService LocatorSession FaçadeValue Object

Presentation LayerComposite ViewFront ControllerService to WorkerView Helper

Business LayerBusiness DelegateService LocatorSession FaçadeValue Object

J2EE Patterns – Presentation LayerJ2EE Patterns – Presentation Layer

J2EE Patterns – Business LayerJ2EE Patterns – Business Layer

Artifact GranularitiesArtifact GranularitiesDesign Subsystem

Used to model an “Enterprise Component”Enterprise Java Bean

For representing EJBsDesign Class

Used to model JSPs, servlets and Java classes

Design SubsystemUsed to model an “Enterprise Component”

Enterprise Java BeanFor representing EJBs

Design ClassUsed to model JSPs, servlets and Java classes

Analysis and Design – Design SubsystemAnalysis and Design – Design SubsystemEnterprise ComponentsEnterprise Components

Analysis and Design – Design SubsystemAnalysis and Design – Design SubsystemEnterprise ComponentsEnterprise Components

Analysis and Design – Enterprise Java BeanAnalysis and Design – Enterprise Java BeanE.g. Auction Manager elements

SessionFaçade and BusinessEntity EJBsRepresented as a UML 1.4 component

E.g. Auction Manager elementsSessionFaçade and BusinessEntity EJBsRepresented as a UML 1.4 component

Analysis and Design – Design ClassAnalysis and Design – Design ClassE.g. Auction Manager SessionFaçade elementsE.g. Auction Manager SessionFaçade elements

Analysis and Design – Use-Case RealizationAnalysis and Design – Use-Case RealizationCreate Auction use-case realizationCreate Auction use-case realization

Analysis and Design - Data ModelAnalysis and Design - Data Model

Analysis and Design – Design ModelAnalysis and Design – Design ModelProcess viewProcess view

Analysis and Design – Deployment ModelAnalysis and Design – Deployment Model

Implementation ArtifactsImplementation Artifacts

Implementation – J2EE Implementation Element CategoriesImplementation – J2EE Implementation Element Categories

Elements deployed in an EJB containerEJB elements, Java classesOrganized within Java packages

Java elements deployed in a web containerServlets, Java classesOrganized within Java packages

Other elements deployed in a web containerJSPs, image files, HTML pagesOrganized within directories relative to a “virtual directory”

Deployment elementsJ2EE application (EAR)J2EE modules (WAR, EJB-JAR)Deployment descriptors

Elements deployed in an EJB containerEJB elements, Java classesOrganized within Java packages

Java elements deployed in a web containerServlets, Java classesOrganized within Java packages

Other elements deployed in a web containerJSPs, image files, HTML pagesOrganized within directories relative to a “virtual directory”

Deployment elementsJ2EE application (EAR)J2EE modules (WAR, EJB-JAR)Deployment descriptors

Implementation – Implementation ModelImplementation – Implementation ModelVirtual Directory Elements(web container)

Java Code Elements(web container)

Virtual Directory Elements(web container)

Java Code Elements(web container)

Implementation – Implementation ModelImplementation – Implementation ModelJava Code Elements(EJB container) Java Code Elements(EJB container)

Implementation – Implementation ModelImplementation – Implementation ModelDeployment ElementsDeployment Elements

SummarySummaryThe “RUP Configuration for Java Developers” (RCJD) is

A subset of RUPAn extension of RUP

Specifically aimed at developers using the J2EE platform

The “RUP Configuration for Java Developers” (RCJD) isA subset of RUPAn extension of RUP

Specifically aimed at developers using the J2EE platform