Вы находитесь на странице: 1из 27

IBM Software Group

Rational Unified Process: A Best Practices Approach

2003 IBM Corporation

Best Practices of Software Engineering


Best Practices
Process Made Practical

Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality 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

Waterfall Development Characteristics


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

Waterfall Process
Requirements analysis Design Code and unit test Subsystem integration System test

Iterative Development Produces an Executable


Requirements Analysis & Design Planning Initial Planning Implementation Management Environment Test Evaluation Each iteration results in an executable release Deployment

Reduce Scrap/Rework: Use an Iterative Process


Prototypes
100%

Architecture

Functional Releases

Product Release

Iterative Project Profile


Development Progress (% coded)

Waterfall Project Profile

Project Schedule

Practice 2: Manage Requirements


Best Practices
Process Made Practical

Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change

Requirements Management
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.

Map of the Territory


Problem Needs Problem Space

ity bil cea Tra

Features

Solution Space The Product to Be Built

Software Requirements

Test Scripts Design 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

Resilient 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

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

Common Language for Process and Design


The UML is a common language for
Visualizing Specifying Constructing Documenting

RUP is a common language for


Process Roles Activities Workflows Iterations

Visual Modeling Using UML Diagrams


Use-Case Diagram
Use Case 1 Actor A Actor B Use Case 2
FileList fList add( ) delete( )

Class Diagram
DocumentList FileMgr add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fetchDoc( ) sortByName( )

Statechart Diagram
add file [ numberOffile==MAX ] / flag OFF read() fill the code.. Openning

add file

Writing

close file

1 close file Reading Closing

Use Case 3

rep Repository (from Persistence) name : char * = 0 readDoc( ) readFile( ) read( ) open( ) create( ) fillFile( ) File GrpFile

read( )

Collaboration Diagram
1: Doc view request ( )
L

9: sortByName ( )

Repository

DocumentList

Deployment Diagram
Wi ndow95 Wi ndows95 Wi ndows95 - .EXE - Wi ndows NT Solaris

mainWnd : MainWnd

FileManager
gFile : GrpFile

2: fetchDoc( ) 4: create ( ) 8: fillFile ( )

Document

user : Clerk fileMgr : FileMgr


3: create ( ) 6: fillDocument ( )
- .EXE

GraphicFile
-.EXE

Alpha UNIX

File

FileList

Wi ndows NT

7: readFile ( ) 5: readDoc ( )

IBM Mainframe

repository : Repository

document : Document
-

mainWnd user

fileMgr : FileMgr

document : Document

gFile

repository

- .

1: Doc view request ( )

2: fetchDoc( )

Component Diagram Forward and Reverse Engineering

3: create ( )

4: create ( )

5: readDoc ( )

- - .

6: fillDocument ( )

7: readFile ( )

Target System

8: fillFile ( )

- - .

9: sortByN ame ( )

Sequence Diagram

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

Continuously Verify Your Softwares Quality


Software problems are 100 to 1000 times more costly to find and repair after deployment
Cost Cost to to Repair Repair Software Software Cost Cost of of Lost Lost Opportunities Opportunities
Cost Cost

Cost Cost of of Lost Lost Customers Customers

Inception

Elaboration

Construction

Transition

Testing Dimensions of Quality


Usability Functionality
Test Test the the accurate accurate workings workings of of each each usage usage scenario scenario Test Test application application from from the the perspective perspective of of convenience convenience to to end-user. end-user.

Reliability
Test Test the the application application behaves behaves consistently consistently and and predictably. predictably.

Supportability
Test Test the the ability ability to to maintain maintain and and support support application application under under production production use use

Performance
Test Test online online response response under under average average and and peak peak loading loading

Test Each Iteration


Iteration 1 Iteration 2 Iteration 3 Iteration 4

UML Model and Implementation

Test Suite 1

Test Suite 2

Test Suite 3

Test Suite 4

Tests

Practice 6: Manage Change


Best Practices
Process Made Practical

Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change

The Configuration and Change Management (CCM) Cube

Eliminate Errors: Automate Change Management


Did requirement Add Add promotion promotion Bug 849 462 make it into calculation calculation Bug 849 this release ? Bug Bug 527 527 New New platform platform
New New customer customer New New GUI GUI Bug 98 transaction Bug 98 New web design New web design transaction button button Bug Bug 348 348 Bug 251 Bug 251 Bug 179 Bug 179

How many severity 1 bugs are left?

Analyst Analyst Of course I didnt forget a file...

Project Project Manager Manager Is bug 873 fixed in this build?

Why did the build break?

Build 3 Build 2 Build 1 Testers Testers Developers Developers Integrator Integrator

Best Practices Reinforce Each Other


Best Practices
Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change
Ensures users involved as requirements evolve Validates architectural decisions early on Addresses complexity of design/implementation incrementally Measures quality early and often Evolves baselines incrementally

Trace Symptoms to Root Causes


Symptoms
Needs not met Requirements churn Modules dont dont fit fit Modules Hard to maintain Late discovery Poor quality Poor performance Colliding developers Build-and-release

Root Causes
Insufficient requirements Ambiguous Ambiguous communications communications Brittle architectures Overwhelming complexity Undetected Undetected inconsistencies inconsistencies Poor testing Subjective assessment Waterfall development Uncontrolled change Insufficient automation

Best Practices
Develop Iteratively Manage Requirements Use Component Architectures Model Visually Visually (UML) (UML) Model Continuously Verify Verify Quality Quality Continuously Manage Change

The Impact of Improving Software Economics


Target Target Project Project Profile Profile 100% 100% Modern Modern Project Project Profile Profile Conventional Conventional Project Project Profile Profile

Development Development Progress Progress (% (% Coded) Coded)

Project Project Schedule Schedule

Best Practices of Software Engineering


Best Practices
Process Made Practical

Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change

RUP Organization Along Time


Time

Organization by phases helps minimize the risks of resource allocation.

Rational Unified Process

WBI Modeler Rational Requisite Pro Rational Software Modeler Rational Application Developer
Rational Performance, Functional, Manual Tester

Tivoli Configuration Manager Rational ClearCase, ClearQuest Rational Team Unifying Platform Eclipse, OS

Вам также может понравиться