No Slide Title

Download Report

Transcript No Slide Title

®
IBM Software Group
PRJ270: Essentials of Rational Unified Process
Module 1: Best Practices of Software
Engineering
1
Module 1 Objectives
Understand Rational’s best practices for
software development by looking at:
 Symptoms and root causes
 The Rational Best Practices
 An introduction to Rational Unified Process
2
Discussion: Symptoms and Root Causes
 What are some symptoms of software
development problems?
 To what root causes can these symptoms
be traced?
3
Symptoms of Software Development Problems
User or business needs not met
Requirements churn
Modules don’t integrate
Hard to maintain
Late discovery of flaws
Poor quality or end-user experience
Poor performance under load
No coordinated team effort
Build-and-release issues
4
Trace Symptoms to Root Causes
Symptoms
Root Causes
Needs not met
Insufficient requirements
Requirements churn
Ambiguous communications
Modules don’t fit
Brittle architectures
Hard to maintain
Overwhelming complexity
Late discovery
Undetected inconsistencies
Poor quality
Poor testing
Poor performance
Subjective assessment
Colliding developers
Waterfall development
Build-and-release
Uncontrolled change
Insufficient automation
5
Best Practices
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually
Visually (UML)
(UML)
Model
Continuously Verify
Verify Quality
Quality
Continuously
Manage Change
Practice 1: Develop Iteratively
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
6
Waterfall Development Characteristics
Waterfall Process
Requirements
Analysis
Design
Code and Unit Test
Subsystem
Integration
System Test
 Delays confirmation of critical risk resolution
 Measures progress by assessing work-products that
are poor predictors of time-to-completion
 Delays and aggregates integration and testing
 Precludes early deployment
 Frequently results in major unplanned iterations
7
Iterative Development Produces Executables
Requirements
Analysis & Design
Planning
Implementation
Management
Environment
Test
Evaluation
Deployment
Each iteration
results in an
executable release.
8
Risk Profiles
Risk
Waterfall Risk
Risk Reduction
Iterative Risk
Time
9
Practice 2: Manage Requirements
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
10
Requirements Management Means…
Making sure you
 solve the right problem
 build the right system
by taking a systematic approach to
 eliciting
 organizing
 documenting
 managing
the changing requirements of a software
application.
11
Aspects of Requirements Management
 Analyze the Problem
 Understand User Needs
 Define the System
 Manage Scope
 Refine the System Definition
 Manage Changing Requirements
12
Map of the Territory
Problem
Problem
Space
Needs
Solution
Space
Features
The
Product
to Be
Built
Software
Requirements
Test Scripts
Design
13
User
Docs
Practice 3: Use Component Architectures
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
14
Purpose of a Component-Based Architecture
 Basis for reuse
 Component reuse
 Architecture reuse
Component-based
architecture with
layers
 Basis for project
management
 Planning
 Staffing
 Delivery
Applicationspecific
Businessspecific
 Intellectual control
Middleware
 Manage complexity
 Maintain integrity
Systemsoftware
15
Resilient and Component-Based Architectures
 Resilient
 Meets current and future requirements
 Improves extensibility
 Enables reuse
 Encapsulates system dependencies
 Component-based
 Reuse or customize components
 Select from commercially available components
 Evolve existing software incrementally
16
Practice 4: Model Visually (UML)
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
17
Why Model Visually?
To:
 Capture structure and behavior
 Show how system elements fit together
 Keep design and implementation consistent
 Hide or expose details as appropriate
 Promote unambiguous communication
 UML provides one language for all practitioners
18
Visual Modeling with Unified Modeling Language
 Allows multiple views
 Provides precise syntax and
semantics
Sequence
Diagrams
Collaboration
Diagrams
Dynamic
Diagrams
Statechart
Diagrams
Static
Diagrams
Class
Diagrams
Use-Case
Diagrams
Object
Diagrams
Component
Diagrams
Models
Activity
Diagrams
19
Deployment
Diagrams
Visual Modeling Using UML Diagrams
Use-Case
Diagram
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
Writing
add file [ numberOffile==MAX ] /
flag OFF
read() fill the
code..
Openning
close file
add( )
delete( )
1
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
1: Doc view request ( )
read( )
open( )
create( )
fillFile( )
DocumentList
Deployment
Diagram
Windows95
Window95
FileManager
Windows95
L
2: fetchDoc( )
Document
gFile : GrpFile
4: create ( )
¹®¼°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
¹®¼°ü¸® ¾ÖÇø´
Windows
NT
8: fillFile ( )
user : Clerk
Solaris
fileMgr : FileMgr
¹®¼°ü¸® ¿£Áø.EXE
GraphicFile
3: create ( )
Alpha
UNIX
ÀÀ¿ë¼¹ö.EXE
6: fillDocument ( )
File
FileList
Windows
NT
IBM
Mainframe
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
µ¥ÀÌŸº£À̽º¼¹ö
mainWnd
user
ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
fileMgr :
FileMgr
document :
Document
1: Doc view request ( )
2: fetchDoc( )
gFile
repository
Component
Diagram
3: create ( )
4: create ( )
5: readDoc ( )
ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â
¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
6: fillDocument ( )
Forward and
Reverse
Engineering
7: readFile ( )
8: fillFile ( )
È¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡
º¸¿©ÁØ´Ù.
9: sortByName ( )
Sequence
Diagram
20
Target
System
Practice 5: Continuously Verify Quality
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously
Verify Quality
Manage Change
21
Continuously Verify Your Software’s Quality
Software problems are
100 to 1000 times more costly
to find and repair after deployment
 Cost to Repair Software
 Cost of Lost Opportunities
Cost
 Cost of Lost Customers
Development Phases
22
Testing Dimensions of Quality
Usability
Functionality
 Test application from the
perspective of
convenience to end-user.
 Test the accurate
workings of each
usage scenario
Reliability
 Test that the application
behaves consistently and
predictably.
Supportability
 Test the ability to maintain
and support application
under production use
Performance
 Test online response
under average and peak
loading
23
Test Each Iteration
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Test Suite 1
Test Suite 2
Test Suite 3
Test Suite 4
UML Model
and
Implementation
Tests
24
Practice 6: Manage Change
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component
Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
25
What Do You Want to Control?
 Secure workspaces for each developer
 Automated integration/build management
 Parallel development
Parallel
Development
Workspace
Management
Configuration
Management is
more than just
check-in and checkout.
Process
Integration
26
REPORT ALERT
Build
Management
Aspects of Managing Change
 Change Request Management (CRM)
 Configuration Status Reporting
 Configuration Management (CM)
 Change Tracking
 Version Selection
 Software Manufacture
27
Best Practices Reinforce Each Other: An Example
Best Practices
Develop Iteratively
Ensures users involved
as requirements evolve
Manage Requirements
Use Component Architectures
Validates architectural
decisions early on
Addresses complexity of
design/implementation incrementally
Model Visually (UML)
Continuously Verify Quality
Measures quality early and often
Manage Change
Evolves baselines incrementally
28
RUP Implements Best Practices
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Use Component Architectures
Model Visually (UML)
Continuously Verify Quality
Manage Change
29
Achieving Best Practices Through a Process
 Iterative approach
 Guidance for
activities and
artifacts
 Process focus on
architecture
 Use cases which
drive design and
implementation
 Models which
abstract the system
30
Rational Unified Process (1)
 Captures and presents best practices
 Is a Web-enabled, tailorable knowledge base that enables efficient
development of quality software
 Is continuously improved with regular upgrades
 Contains templates, guidelines, and online Help
 Promotes common vision and culture
 Mentors successful use of tools
Your Process Online
31
Process Manuals
Rational Unified Process (2)
+
Process online
+ supporting tools
Training
Consulting and
Mentoring
32
History of RUP
•Tree browser
upgraded for
enhanced capabilities
of creating
customized My RUP
tree
Improved Process for
independent testing
•Rational Process
Workbench
•Major addition of
content
•Performance Testing
•Business Modeling
•Configuration &
Change Mgt
•Requirements
•Test Process
Rational Unified Process
2003
Rational Unified Process 2002
•Introduction of RUP
Platform providing a
configurable process
framework
•Major addition
of tool mentors
Rational Unified Process 2001
Rational Unified Process 2000
Rational Unified Process 5.5 1999
Rational Unified Process 5.0 1998
Rational Objectory Process 4.1 1997
•Project Management
•UML 1.3
•RealTime
•Objectory UI Design
•Data Engineering
•UML 1.1
Rational Objectory Process 4.0 1996
Rational Approach
Objectory Process 3.8
33
•OMT
•Booch
•UML 1.0
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.
34
What’s New in RUP 2003.06.00?
Tree browser
upgraded with
enhanced
capabilities for
creating
customized
MyRUP trees.
New look and feel for entire RUP Web site.
Introduction of RUP Platform providing a
configurable process framework.
35
RUP Organization
RUP is organized:
 By time
 Phases and iterations
 By content
 Disciplines
36
RUP Organization By Time
Inception
Elaboration
Construction
Transition
time
Rational Unified Process has four phases:
 Inception: Define the scope of project
 Elaboration: Plan project, specify
features, baseline architecture
 Construction: Build the product
 Transition: Transition the product into
end-user community
37
RUP Organization By Content
RUP content is organized into disciplines.
A discipline is a collection of activities that are all
related to a major ‘area of concern’.
The disciplines are:
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Configuration &
Change Management
Project Management
Environment
38
Bringing It All Together: The Iterative Approach
time
In an
iteration,
you walk
through all
disciplines.
content
Disciplines group
related activities.
39
Review
 Rational’s Best Practices are:
• Develop Iteratively
• Manage Requirements
• Use Component Architectures
• Model Visually (UML)
• Continuously Verify Quality
• Manage Change
 Best Practices guide software engineering
by addressing root causes.
 Best Practices reinforce each other.
 Rational Unified Process is a means of
achieving Best Practices.
40