rup for successful j2ee projects · pdf filerup for successful j2ee projectsrup for successful...
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
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 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
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
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
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
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