Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually...
Transcript of Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually...
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 1
Page 1
1
IBM Software Group
®
Rational Unified Process (RUP) and UML The Method View
Jouko Poutanen/11.3.2005
2
Software Development Best Practices
Needs not metRequirements churnModules don’t fitHard to maintainLate discoveryPoor qualityPoor performanceColliding developers Build-and-release
Insufficient requirementsAmbiguous communicationsBrittle architectures Overwhelming complexityUndetected inconsistencies Poor testingSubjective assessmentWaterfall development Uncontrolled changeInsufficient automation
Symptoms Root Causes Best Practices
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 2
Page 2
3
Best PracticesProcess Made Practical Best Practices
Process Made Practical
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
Practice 1: Develop Iteratively
4
Waterfall Development Characteristics
Delays confirmation of critical risk resolution Measures progress by assessing work-products that are poor predictors of time-to-completionDelays and aggregates integration and testingPrecludes early deploymentFrequently results in major unplanned iterations
Waterfall Process
Requirements Analysis
DesignCode and Unit Test
SubsystemIntegration
System Test
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 3
Page 3
5
Iterative Development Produces Executables
Planning
Requirements
Analysis & Design
Implementation
Deployment
Test
Evaluation
ManagementEnvironment
Each iteration results in an executable release.
6
Practice 2: Manage Requirements
Best PracticesProcess Made Practical Best Practices
Process Made Practical
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 4
Page 4
7
Requirements Management Means…
Making sure yousolve the right problembuild the right system
by taking a systematic approach toeliciting organizing documenting managing
the changing requirements of a software application.
8
Problem
Solution Space
Problem Space
Needs
Features
SoftwareRequirements
Test ScriptsDesign User
Docs
The Product
to Be Built
Traceability
Map of the Territory
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 5
Page 5
9
Use-Case Model
Supplementary
Iteration Plan
Fine-grained plan for a single iteration
Project Management
Constraints
During Elaboration, use cases are implemented to validate the architecture.
Use Cases as a Basis for Iteration Planning
10
Use Cases as a Basis for System Modeling
verificationrealization
Use-Case Model(requirements)
Implementation Model(source code)
Test Scripts
influence
Design Model(classes and objects)
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 6
Page 6
11
Use Cases as a Basis for Test Planning
The complete behavior of a use case is tested using Test Scripts and Test Suites.
Test Suite
Test Script
Test Script
Test Suite
12
Practice 3: Use Component Architectures
Best PracticesProcess Made PracticalBest Practices
Process Made Practical
Develop IterativelyManage Requirements
Use ComponentArchitectures
Model Visually (UML)Continuously Verify Quality
Manage Change
Develop IterativelyManage Requirements
Use ComponentArchitectures
Model Visually (UML)Continuously Verify Quality
Manage Change
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 7
Page 7
13
Purpose of a Component-Based Architecture
Basis for reuseComponent reuseArchitecture reuse
Basis for project management
PlanningStaffingDelivery
Intellectual controlManage complexityMaintain integrity
Component-based architecture with layers
Application-specific
Business-specific
System-software
Middleware
14
Practice 4: Model Visually (UML)
Best PracticesProcess Made Practical Best Practices
Process Made Practical
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 8
Page 8
15
One language – One tool –One team
Data Modeling
TecnologyModeling
Application Modeling
Business Modeling
RequirementsModeling
One Language for All Practitioners
16
Role of UML in RUP
Rational Unified Process was developed hand-in-hand with the UML.
Many artifacts in Rational Unified Process have a UML representation.
Rational Unified Process also includes guidelines for UML concepts.
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 9
Page 9
17
Practice 5: Continuously Verify Quality
Best PracticesProcess Made Practical Best Practices
Process Made Practical
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)ContinuouslyVerify QualityManage Change
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)ContinuouslyVerify QualityManage Change
18
Continuously Verify Your Software’s Quality
Development Phases
Cost
Cost to Repair Software
Cost to Lost Opportunities
Cost of Lost Customers
Software problems are100 to 1000 times more costly
to find and repair after deployment
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 10
Page 10
19
Testing Dimensions of Quality
Test the accurate workings of each usage scenario
FunctionalityTest application from the perspective of convenience to end-user
Usability
Test online response under average and peak loading
Performance
Test that the application behaves consistently and predictably
Reliability
Test the ability to maintain and support application under production use
Supportability
20
UML Model and
Implementation
Tests
Iteration 1Iteration 1
Test Suite 1Test Suite 1
Iteration 2Iteration 2
Test Suite 2Test Suite 2
Iteration 4Iteration 4
Test Suite 4Test Suite 4
Iteration 3Iteration 3
Test Suite 3Test Suite 3
Test Each Iteration
Need for automated testing increases
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 11
Page 11
21
Practice 6: Manage Change
Best PracticesProcess Made Practical Best Practices
Process Made Practical
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
Develop IterativelyManage Requirements
Use Component Architectures
Model Visually (UML)Continuously Verify Quality
Manage Change
22
Muutostenhallinta - Change Request Management
Change requests come from many sources throughout each iteration of the product lifecycle
Maint
Test
Code
Design
Req
Customer andUser inputs
MarketingNew
Feature
NewRequirement
Bug
Help DeskUser inputs
ApprovedDecisionProcess(CCB)
Single Channel for Approval
Coders inputsTesters inputs
ChangeRequest (CR)
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 12
Page 12
23
Unified Change Management
24
Best Practices Reinforce Each Other: An Example
Validates architectural decisions early on
Addresses complexity of design/implementation incrementally
Measures quality early and often
Evolves baselines incrementally
Ensures users involved as requirements evolve
Best PracticesBest PracticesDevelop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 13
Page 13
25
RUP Implements Best Practices
Best PracticesProcess Made Practical Best Practices
Process Made Practical
Develop IterativelyManage Requirements
Use Component ArchitecturesModel Visually (UML)
Continuously Verify QualityManage Change
Develop IterativelyManage Requirements
Use Component ArchitecturesModel Visually (UML)
Continuously Verify QualityManage Change
26
Bringing It All Together: The Iterative Approachtime
content
Disciplines group related activities.
In an iteration, you walk through all disciplines.
PRJ270: Essentials of Rational Unified Process
Module 1 Best Practices of Software Engineering 14
Page 14
27
Changing Focus of Phases Over Time
Planned (Technical) Visibility Points
TransitionIteration
TransitionIteration
DevelopmentIteration
DevelopmentIteration
DevelopmentIteration
Architecture Iteration
ArchitectureIteration
PreliminaryIteration
TransitionConstructionElaborationInception
Acceptanceor end of life
Product sufficiently mature for customers to use
Architecture baselined
Scope and Business Case agreement
Planned (Business) Decision Points
understandproblem
understandsolution
have a solution
efficient useof solution
28
Typical Effort and Time Percentages by Phase
10%50%30%10%Time/Schedule10%65%20%5%Effort
TransConstElabInc
Time
People
ConstElab TransInc