Академический Документы
Профессиональный Документы
Культура Документы
General Information
Joel Pech, Software Engineering Specialist on
Rational Software field team for IA-KS-NE & KC, MO
jpech@rational.com, 319-228-8781
Unified Software Development Process,
by Ivar Jacobson, Grady Booch and Jim Rumbaugh
Addison Wesley, 1999
Rational Unified Process
Our product that puts a unified software process on
each desktop (some graphics for todays talk are
from this product).
Agenda
Rationals Mission
Reality
Enterprise
Enterprise IT
IT
ISV
ISV
Technical/Embedded
Technical/Embedded
Cost of failure
Complexity
The Challenge
and,
yet most tools
Software
are
for ...
development
is a
team sport ...
Individuals
Teams
Improve cross-functional
team productivity
Individuals
Organizations
Teams
Improve cross-functional
team productivity
Individuals
Product Leadership
Leadership
Product
Requirements
Requirements
Management
Management
Visual
Visual
Modeling
Modeling
Automated
Automated
Testing
Testing
Products
Process
Tools
Best
Practices
Skills
Services
Manage
Requirements
Use
Component
Architectures
Model Visually
(UML)
Verify Quality
Change
Change
Management
Management
Control
Changes
Project
Technical
Project
Technical Support
Support &&
Tools
Tools Application
Application
Implementations
Implementations
Customer
Customer Success
Success
Education
Education
and
and Training
Training
Software Engineering
Engineering Leadership
Leadership
Software
Develop
Iteratively
Agenda
Increasingly
more critical
Needs to be
delivered faster
Needs to be
higher quality
But...
We estimate
only 26% of
software projects
will succeed.
Standish Group
CHAOS Report
1998
Develop
Iteratively
Customer Success
Best
Practices
Tools
Services
Manage
Requirements
Use
Component
Architectures
Model Visually
(UML)
Verify Quality
Control
Changes
Customer Tool
Project Best Practices Expert
Support Training Implementation Education Consulting
Larger teams
Specialization
Analyst
Distribution
Rapid technology
change
Project
Manager
Developer
Tester
Release
Engineer
The Problem...
Processes are not linked
properly to tools, or are not
properly automated
If process is used, different
functional teams use
normally inconsistent
processes and modeling
languages
Most software projects use
no well-defined process.
Instead team members
(re-)invent process as they
go
Process
Process
Tool
Tool
??
Requirements
Requirements book
book
Test
Test process
process
Analysis
Analysis process
process
Design
Design book
book
??
??
??
??
??
??
??
Agenda
Best
Practices
Use
Component
Architectures
Model Visually
(UML)
Verify Quality
Control
Changes
Performance
Engineer
Analyst
Develop Iteratively
Project
Manager
Manage
Requirements
Best
Best
Practices
Practices
Use Component
Architectures
Model Visually
Verify Quality
Control
Change
Developer
Tester
Release
Engineer
Waterfall Development
Requirements
Analysis
Design
Code & Unit
Testing
Subsystem
Testing
System Testing
T I M E
R
I
S
K
Requirements
Analysis
Design
Code & Unit
Testing
Subsystem
Testing
System Testing
T I M E
Iterative Development
Requirements
Analysis & Design
Planning
Implementation
Initial
Planning
Management
Environment
Deployment
Evaluation
Test
Each iteration
results in an
executable release
Inception
Elaboration
Construction
Risk
Transition
Preliminary
Iteration
Architect.
Iteration
Architect.
Iteration
Devel.
Iteration
Devel.
Iteration
Time
Devel.
Iteration
Transition
Iteration
Transition PostPostIteration
deployment
realization
influenced by
verifies
Design Model
Implementation Model
Test Model
Analyze
the problem
Elicit stakeholder
needs
Use an iterative
approach
Model system-user
interaction
Applicationspecific
Businessspecific
Component-based
Architecture with
layers
Middleware
Systemsoftware
Component-based
Reuse or customization of components
Select from commercially-available components
Incremental evolution of existing software
Video Clip
Class diagram
Statechart
diagram
add file
DocumentList
Use Case 1
FileMgr
Actor A
Actor B
Document
add( )
delete( )
fetchDoc( )
sortByName( )
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
Use Case 2
FileList
fList
add( )
delete( )
Writing
Openning
close file
Use Case 3
close file
Reading
Closing
rep
Repository
(from Persistence)
File
read( )
GrpFile
name : char * = 0
readDoc( )
readFile( )
Collaboration
diagram
9: sortByName ( )
Repository
mainWnd : MainWnd
read( )
open( )
create( )
fillFile( )
DocumentList
Deployment
diagram
Wi ndows95
Wi ndow95
FileManager
Wi ndows95
2: fetchDoc( )
Document
gFile : GrpFile
4: create ( )
-
.EXE
-
8: fillFile ( )
Wi ndows
NT
user :
Solaris
fileMgr : FileMgr
- .EXE
GraphicFile
3: create ( )
Alpha
UNIX
-.EXE
6: fillDocument ( )
File
FileList
IBM
Mainframe
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
mainWnd
user
-
.
Wi ndows
NT
fileMgr :
FileMgr
document :
Document
2: fetchDoc( )
gFile
repository
Component
diagram
3: create ( )
4: create ( )
5: readDoc ( )
-
- .
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
-
-
.
9: sortByName ( )
Sequence
diagram
Forward and
Reverse
Engineering
Target
System
Software problems
are 100 to 1000 times
more costly to find
and repair after
deployment
Development
Deployment
Iteration 1
Iteration 2
Automated
Tests
Functionality
Test Suite 3
Iteration 4
Test Suite 4
Measurement
Configuration Management
New Feature
Change Control
Process
New Requirement
Fix Bug
Vision
Require.
& Use
Cases
Customer and
End-User Inputs
Marketing
Developer inputs
Code
Tests
Change
Request
System
Testers inputs
Measurement
Objective measurements provide meaningful
project status information
10
ging?
r
e
v
i
D
ng?
i
g
r
e
Conv
9
8
Priority 1
Defects
7
6
5
4
3
2
1
0
11
12
13
14
15
16
Day
17
18
19
20
Best
Practices
Manage
Requirements
Use Component
Architectures
Validates architectural
decisions early on
Model Visually
(UML)
Addresses complexity of
design/implementation incrementally
Verify Quality
Control Changes
Performance
Engineer
Analyst
Develop Iteratively
Project
Manager
Manage
Requirements
Best
Best
Practices
Practices
Use Component
Architectures
Model Visually
Verify Quality
Control
Change
Developer
Tester
Release
Engineer
Agenda
History
Project management
Rational Unified
Process 5.5
Rational Unified
Process 5.1
Performance
testing
Business
Engineering
Configuration
& change Mgmt
Requirements
College
OMT
Booch
1999
UML 1.3
Example artifacts
E-development roadmap
Java programming guidelines
Objectory
UI design
1998
Data Engineering
Rational Objectory
Process 4.1
Rational Objectory
Process 4.0
Rational
Approach
UML 0.8
10/1997
UML 1.1
SQA
Process
12/1996
Objectory
Process 3.8
1995
Process Notation
Activity
Worker
Signifies a role
that may be
played by an
individual or a
team of
individuals in
the
development
organization
Use-Case
Specifier
responsible for
Use Case
Use-Case
Package
Describes a piece of
work a worker may
be asked to
perform.
Describe a
Use Case
Artifact
Signifies a piece of
information that is
produced, modified, or
used by a process
Re s o urc e
Worker
Ac tivitie s
Paul
Designer
Define Operations
...
Mary
Use-Case Specifier
Joe
Use-Case Designer
Distribute Behavior
...
Sylvia
Design Reviewer
Stefan
Architect
Process Architecture
Time
Phases
Process Workflows
Inception
Elaboration
Construction
Transition
Business Modeling
Requirements
Analysis & Design
Content
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter.
#n+1
Iterations
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Inception
Elaboration
Construction
Transition
time
Inception Phase
Purpose
Outcome
Elaboration Phase
Purpose
Outcome
Construction Phase
Purpose
To incrementally develop a complete software product
which is ready to transition into the user community
Products
Transition Phase
Purpose
Products
Executable releases
Updated system models
Evaluation criteria for each iteration
Release descriptions, including quality assurance
results
Updated user manuals
Updated deployment documentation
Post-mortem analysis of project performance
Inception
Preliminary
Iteration
Elaboration
Architect.
Iteration
Architect.
Iteration
Construction
Devel.
Iteration
Devel.
Iteration
Transition
Devel.
Iteration
Transition
Iteration
Transition
Iteration
Iteration Assessment
Iteration N Cost and
Schedule Actuals
Iteration N Assessment
Quality Assessment
for Iteration N
Test Results
Defect Density
Architecture
Stability
Other metrics
Business Model
Requirements
Workflow
Analysis Design
Workflow
realized by
Use-Case
Model
implemented by
Design
Model
Implementation
Workflow
Test Workflow
verified by
Implementation
Model
Test
Model
Inception Elaboration
Construction
Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Workflows
group
activities
logically
Configuration Mgmt
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iterations
Iter.
#m
Iter.
#m+1
Example of a Workflow
Agenda
Worker
Signifies a role
that may be
played by an
individual or a
team of
individuals in
the
development
organization
Use-Case
Specifier
responsible for
Use Case
Use-Case
Package
Describes a piece of
work a worker may
be asked to
perform.
Describe a
Use Case
Artifact
Signifies a piece of
information that is
produced, modified, or
used by a process
Easy to Use
Searchable
Accessible
Navigable
Easy to use
Automated by Tools
Microsoft
Visual Studio
Apex
VB Design
guidelines
Rose
Tool mentors
Report generation scripts
Stereotype icons
SoDA
Tool mentors
Robot
Tool mentors
Test templates
RequisitePro
Tool mentors
Requirement templates
Purify
Quantify
PureCoverage
Tool mentors
CM guidelines
Tool mentors
Document templates
ClearCase
ClearQuest
Change management
guidelines
Tool mentors
Questions?
Please feel free to contact me at
jpech@rational.com or 319-228-8781
www.rational.com
IBM Application Framework for e-business
www.ibm.com/ebusiness