The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf ·...

64
The Unified Software Process: The Unified Software Process: Best Practices for Software Development Teams Best Practices for Software Development Teams

Transcript of The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf ·...

Page 1: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

The Unified Software Process:The Unified Software Process:

Best Practices for Software Development TeamsBest Practices for Software Development Teams

Page 2: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

General Information

�� Joel Pech, Software Engineering Specialist on Joel Pech, Software Engineering Specialist on Rational Software field team for IARational Software field team for IA--KSKS--NE & KC, MO NE & KC, MO [email protected], [email protected], 319--228228--87818781

�� Unified Software Development Process, Unified Software Development Process, by by Ivar Ivar Jacobson, Jacobson, Grady Booch Grady Booch and Jim and Jim RumbaughRumbaughAddison Wesley, 1999Addison Wesley, 1999

�� Rational Unified ProcessRational Unified ProcessOur product that puts a unified software process on Our product that puts a unified software process on each desktop (some graphics for today’s talk are each desktop (some graphics for today’s talk are from this product).from this product).

Page 3: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Agenda�� Why Rational Software focuses on processWhy Rational Software focuses on process�� What is the problemWhat is the problem�� 6 fundamental Best 6 fundamental Best PractticesPracttices�� Structure of the Unified Software ProcessStructure of the Unified Software Process�� The Rational Unified Process productThe Rational Unified Process product

Page 4: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Rational’s Mission

Ensuring the success of customerswho depend on

developing or deploying software

Page 5: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Reality

“Only 26% of software projects succeed.”

Standish Group, CHAOS Report, 1998

“Only 26% of software projects succeed.”

Standish Group, CHAOS Report, 1998

Page 6: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

The Rules Have Changed

Enterprise ITISV

Technical/Embedded

Enterprise ITISV

Technical/Embedded

Release frequencyRelease frequency

ComplexityComplexityCost of failureCost of failure

Page 7: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

IndividualsIndividuals

The Challenge

Software development is a team sport ...

Software Software development is a development is a team sport ...sport ...

and, yet most tools are for ...and, yet most tools and, yet most tools are for ...are for ...

Page 8: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

The Answer: Elevate the Solution

IndividualsImprove individual productivity

IndividualsImprove individual productivity

TeamsTeamsImprove cross-functional

team productivityImprove cross-functional

team productivity

Page 9: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Rational Elevates the Solution

IndividualsImprove individual productivity

IndividualsImprove individual productivity

OrganizationsOrganizationsImprove multi-team proficiencyImprove multi-team proficiency

TeamsTeamsImprove cross-functional

team productivityImprove cross-functional

team productivity

Page 10: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

ProcessProcessProcessProductsProductsProducts

SkillsSkillsSkills

ProductsProductsProducts

SkillsSkillsSkillsSkillsSkillsSkills

Rational Unifies Software Teams

Technical Support & Tools Application

Technical Support & Technical Support & Tools ApplicationTools Application

Project Implementations

Project Project ImplementationsImplementations

Education and TrainingEducation Education

and Trainingand Training

ServicesServices

Customer SuccessCustomer Success

Develop Develop IterativelyIteratively

Manage Manage RequirementsRequirements

Use Use Component Component ArchitecturesArchitectures

Model VisuallyModel Visually(UML)(UML)

Verify QualityVerify Quality

Control Control ChangesChanges

BestPracticesBestPractices

Software Engineering LeadershipSoftware Engineering Leadership

Requirements Management

Visual Modeling

Automated Testing

Change Management

Requirements Requirements ManagementManagement

Visual Visual ModelingModeling

Automated Automated TestingTesting

Change Change ManagementManagement

ToolsTools

Prod

uct L

eade

rship

Prod

uct L

eade

rship

Page 11: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Agenda�� Why Rational Software focuses on processWhy Rational Software focuses on process�� What is the problemWhat is the problem�� 6 fundamental Best 6 fundamental Best PractticesPracttices�� Structure of the Unified Software ProcessStructure of the Unified Software Process�� The Rational Unified Process productThe Rational Unified Process product

Page 12: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

The Business Problem

Software:Software:�� Increasingly Increasingly

more criticalmore critical�� Needs to be Needs to be

delivered fasterdelivered faster�� Needs to be Needs to be

higher qualityhigher quality

But...

“We estimate “We estimate only 26% of only 26% of

software projects software projects will succeed.”will succeed.”

StandishStandish GroupGroupCHAOS ReportCHAOS Report

19981998

Page 13: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Rational’s Unique Approach

Customer SuccessCustomer Success

ToolsTools

Requirements Management

Visual Modeling

Automated Testing

Change Management

Requirements Requirements ManagementManagement

Visual Visual ModelingModeling

Automated Automated TestingTesting

Change Change ManagementManagement

ServicesServices

Customer Customer SupportSupport

Tool Tool TrainingTraining

Project Project ImplementationImplementation

Expert Expert ConsultingConsulting

Best Practices Best Practices EducationEducation

Develop Develop IterativelyIteratively

Manage Manage RequirementsRequirements

Use Use Component Component Architectures Architectures

Model Visually Model Visually (UML)(UML)

Verify QualityVerify Quality

Control Control Changes Changes

BestPractices

BestPractices

Page 14: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Software Development is a Job for Teams

ProjectManager

PerformanceEngineer

ReleaseEngineer

Analyst

Developer

Tester

Challenges

• Larger teams

• Specialization

• Distribution

• Rapid technology change

Page 15: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

The Problem...

�� Most software projects use Most software projects use no wellno well--defined process. defined process. Instead team members Instead team members (re(re--)invent process as they )invent process as they gogo

????

????

????

??

� If process is used, different functional teams use normally inconsistent processes and modeling languages

�� If process is used, different If process is used, different functional teams use functional teams use normally inconsistent normally inconsistent processes and modeling processes and modeling languageslanguages

Analysis processAnalysis process

Requirements bookRequirements book

Test processTest process

Design bookDesign book

�� Processes are not linked Processes are not linked properly to tools, or are not properly to tools, or are not properly automatedproperly automated

ToolToolProcessProcess ??

Page 16: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Agenda�� Why Rational Software focuses on processWhy Rational Software focuses on process�� What is the problemWhat is the problem�� 6 fundamental Best 6 fundamental Best PractticesPracttices�� Structure of the Unified Software ProcessStructure of the Unified Software Process�� The Rational Unified Process productThe Rational Unified Process product

Page 17: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Develop Develop IterativelyIteratively

Manage Manage RequirementsRequirements

Use Use Component Component Architectures Architectures

Model Visually Model Visually (UML)(UML)

Verify QualityVerify Quality

Control Control Changes Changes

BestPractices

BestPractices

6 Fundamental Best PracticesCapturing experiences fromCapturing experiences from

1,000s of projects1,000s of projects

Page 18: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Best Practices Enable High-Performance Teams

ProjectManager

PerformanceEngineer

ReleaseEngineer

Analyst

Developer

Tester

Result

• More Successful projects

BestPractices

BestPractices

Develop IterativelyDevelop Iteratively

Manage Manage RequirementsRequirements

Model VisuallyModel Visually

Use Component Use Component ArchitecturesArchitectures

Verify QualityVerify Quality

Control Control ChangeChange

Page 19: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

The time and money spent implementing a faulty design are not recoverable

Practice 1: Develop Software Iteratively

�� An initial design will likely be flawed with respect to An initial design will likely be flawed with respect to its key requirementsits key requirements

�� LateLate--phase discovery of design defects results in phase discovery of design defects results in costly overcostly over--runs and/or project cancellation runs and/or project cancellation

Page 20: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Waterfall Development

T I M E

Subsystem Testing

System Testing

Code & Unit Testing

Design

Requirements Analysis

Page 21: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Waterfall Development: Risk vs. Time

RISK

T I M E

Subsystem Testing

System Testing

Code & Unit Testing

Design

Requirements Analysis

Page 22: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Iterative Development

InitialInitialPlanningPlanning

PlanningPlanning

RequirementsRequirements

Analysis & DesignAnalysis & Design

ImplementationImplementation

TestTest

DeploymentDeployment

EvaluationEvaluation

ManagementManagementEnvironmentEnvironment

Each iteration results in an executable release

Page 23: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Risk Profile of an Iterative Development

TransitionTransition

RiskRisk

InceptionInception

ElaborationElaboration

ConstructionConstruction

PreliminaryPreliminaryIterationIteration

Architect.Architect.IterationIteration

Architect.Architect.IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

TransitionTransitionIterationIteration

TransitionTransitionIterationIteration

PostPost--deploymentdeployment

WaterfallWaterfall

TimeTime

Staffing

Page 24: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Iterative Development Characteristics� Use Case Driven� Risk Driven� Architecture Centric

Page 25: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Iterative Development Advantages

� Critical risks are resolved before making large investments

� Initial iterations enable early user feedback � Testing and integration are continuous � Objective milestones provide short-term focus� Progress is measured by assessing

implementations� Partial implementations can be deployed

Page 26: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Practice 2: Manage Requirements�� Elicit, organize, and document required functionality and Elicit, organize, and document required functionality and

constraintsconstraints�� Track changes and document tradeoffs and decisions Track changes and document tradeoffs and decisions �� Business requirements are easily captured and Business requirements are easily captured and

communicated through use casescommunicated through use cases�� Use cases are important planning instrumentsUse cases are important planning instruments

Design ModelImplementation Model Test Model

verifiesrealization influenced byUse Cases drives the work from analysis through test

Use-Case Model

Page 27: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Catch Requirements Errors Early

Elicit stakeholderneedsAnalyze

the problem

Gain agreement with thecustomer

Model system-user interaction

Establish a baseline andchange control process

Use an iterativeapproach

Maintain traceability and control of evolving

requirements

Page 28: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Practice 3: Use Component Architectures� Design, implement and test your architecture up-front!� A systematic approach to define a “good” architecture

� resilient to change by using well-defined interfaces� by using and reverse engineering components� derived from top rank use cases� intuitively understandable

�� Design, implement and test your architecture upDesign, implement and test your architecture up--front!front!�� A systematic approach to define a “good” architectureA systematic approach to define a “good” architecture

�� resilient to change by using wellresilient to change by using well--defined interfacesdefined interfaces�� by using and reverse engineering componentsby using and reverse engineering components�� derived from top rank use casesderived from top rank use cases�� intuitively understandableintuitively understandable

SystemSystem--softwaresoftware

MiddlewareMiddleware

BusinessBusiness--specificspecific

ApplicationApplication--specificspecific

Component-based Architecture with layers

Page 29: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Resilient, Component-Based Architectures

�� ResilientResilient� Meet current and future requirements� Improve extensibility� Enable reuse� Encapsulate system dependencies

�� ComponentComponent--basedbased� Reuse or customization of components � Select from commercially-available components� Incremental evolution of existing software

Page 30: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Visual modeling improves our abilityto manage complexity

Video Clip

OK

Find

Practice 4: Visually Model Software

�� Capture structure and behavior of architectures and Capture structure and behavior of architectures and componentscomponents

�� Show how the elements fit togetherShow how the elements fit together�� Hide or expose details as Hide or expose details as

appropriateappropriate�� Maintain consistency Maintain consistency

between design and implementationbetween design and implementation�� Promote unambiguous communicationPromote unambiguous communication

Page 31: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

What Is the Unified Modeling Language?

� The UML is a language for� visualizing� specifying� constructing� documenting

the artifacts of a software-intensive system

Page 32: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Visual Modeling Using UML Diagrams

Actor A

Use Case 1

Use Case 2

Actor B

user : »ç¿ëÀÚ

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repositorydocument : Document

gFile : GrpFile

9: sortByName ( )

L1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )

7: readFile ( )

3: create ( )

6: fillDocument ( )

4: create ( )

8: fillFile ( )

Wi ndow95

¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®.EXE

Wi ndowsNT

¹®¼-°ü¸® ¿£Áø.EXE

Wi ndowsNT

Wi ndows95

Solaris

ÀÀ¿ë¼-¹ö.EXE

AlphaUNIX

IBM Mainframe

µ¥ÀÌŸº£À̽º¼- ¹ö

Wi ndows95

¹®¼-°ü¸® ¾ÖÇ Ã¸´Document

FileManager

GraphicFileFile

Repository DocumentList

FileList

usermainWnd fileMgr :

FileMgrrepositorydocument :

DocumentgFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È-¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù.

Forward and Reverse Engineering

TargetSystem

Openning

Writing

Reading Closing

add file [ numberOffile==MAX ] / flag OFF

add file

close file

close fileUse Case 3

Use casediagram Class diagram

Collaboration diagram

Sequence diagram

Component diagram

Statechartdiagram

Deployment diagram

GrpFile

read( )open( )create( )fillFile( )

rep

Repository

name : char * = 0

readDoc( )readFile( )

(from Persistence)

FileMgr

fetchDoc( )sortByName( )

DocumentList

add( )delete( )

Document

name : intdocid : intnumField : int

get( )open( )close( )read( )sortFileList( )create( )fillDocument( )

fList

1

FileList

add( )delete( )

1

File

read( )

read() fill the code..

Page 33: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Practice 5: Verify Software Quality�� Create tests for each key scenario to ensure that all Create tests for each key scenario to ensure that all

requirements are properly implementedrequirements are properly implemented�� Verify software reliability Verify software reliability -- memory leaks, bottle necksmemory leaks, bottle necks�� Unacceptable application performance hurts as much Unacceptable application performance hurts as much

as missing functionality and unacceptable reliabilityas missing functionality and unacceptable reliability�� Test every iteration Test every iteration -- automate test!automate test!

Development Deployment

Cost

Software problemsare 100 to 1000 timesmore costly to findand repair after deployment

Page 34: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Testing in an Iterative Environment Fu

nctio

nalit

yFu

nctio

nalit

y Iteration 2Iteration 2

Test Suite 2Test Suite 2

Iteration 3Iteration 3

Test Suite 3Test Suite 3

Iteration 4Iteration 4

Test Suite 4Test Suite 4Test Suite 1Test Suite 1

Iteration 1Iteration 1

Aut

omat

edA

utom

ated

Test

sTe

sts

Page 35: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Practice 6: Control Changes to SoftwareChange Request Management

Configuration Management

Measurement

Page 36: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Configuration Management Concepts

�� Decompose the architecture into Decompose the architecture into subsystems subsystems �� Assign subsystems to a Assign subsystems to a teamteam�� Establish Establish secure workspacessecure workspaces for each developerfor each developer

� Provide isolation from changes made in other workspaces � Control all software artifacts - models, code, docs, etc.

�� Establish an Establish an integrationintegration workspaceworkspace�� Establish an enforceable Establish an enforceable change controlchange control mechanismmechanism�� Release a Release a tested baselinetested baseline at the completion of each at the completion of each

iterationiteration

Page 37: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Change requests come from many sources throughout the

product lifecycle

Change Request Management Concepts

Require. & Use Cases

Tests

Vision

Change RequestSystem

New Feature

New Requirement

Fix Bug

Approved Decisions

Change ControlProcess

Customer andEnd-User Inputs

Marketing

Developer inputs

Testers inputs

Code

Page 38: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Measurement

Priority 1Defects

Day

0123456789

10

11 12 13 14 15 16 17 18 19 20

Closures per day Discovery per day

Diverging?

Converging?

Objective measurements provide meaningful project status information

Page 39: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Best Practices Reinforce Each Other

DevelopDevelopIterativelyIterativelyManage Manage

RequirementsRequirements

Control ChangesControl Changes

Verify QualityVerify Quality

Use Component Use Component ArchitecturesArchitectures

Model Visually Model Visually (UML)(UML)

BestPractices

BestPractices

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

Page 40: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Summary: Best Practices of Software Engineering

�� The result is software that isThe result is software that is�On Time�On Budget �Meets Users Needs

ProjectManager

PerformanceEngineer

ReleaseEngineer

Analyst

Developer

TesterBestPractices

BestPractices

Develop IterativelyDevelop Iteratively

Manage Manage RequirementsRequirements

Model VisuallyModel Visually

Use Component Use Component ArchitecturesArchitectures

Verify QualityVerify Quality

Control Control ChangeChange

Page 41: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Agenda�� Why Rational Software focuses on processWhy Rational Software focuses on process�� What is the problemWhat is the problem�� 6 fundamental Best 6 fundamental Best PractticesPracttices�� Structure of the Unified Software ProcessStructure of the Unified Software Process�� The Rational Unified Process productThe Rational Unified Process product

Page 42: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

History

Objectory Process 3.8

RationalApproach

Rational Objectory Process 4.0 12/1996

Rational Objectory Process 4.1

10/1997

SQAProcess

RequirementsCollege

UML 0.8

Rational Unified Process 5.1

Configuration& change Mgmt

1998

1995

BusinessEngineering

Data Engineering

ObjectoryUI design

Performancetesting

UML 1.1

OMTBooch

Rational Unified Process 5.5

UML 1.3Project management

Real-timeROOM

1999Example artifacts

Java programming guidelinesE-development roadmap

Project Web site template

Page 43: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Signifies a rolethat may be played by an

individual or a team of

individuals in the

development organization

Worker

Use-Case Specifier

Process Notation

Activity

Describes a piece of work a worker may

be asked to perform.

Describe a Use Case

Signifies a piece of information that is

produced, modified, or used by a process

Artifact

Use-Case Package

Use Case

responsible for

Page 44: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Workers Are Used for Resource Planning

Res ource Worker Activitie s

Paul

Mary

Joe

Sylvia

Stefan

Designer

Use-Case Specifier

Use-Case Designer

Design Reviewer

Architect

Define Operations...

Describe a Use Case...

Distribute Behavior...

ReviewUse-Case Model...

Define Use-Case ViewDefine Logical Viiew...

Each individual in the project is assigned to one or several workers

Page 45: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Process Architecture

ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

PhasesProcess Workflows

Iterations

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Time

Content

Page 46: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Phases in the Process

The Unified Software Process has four phases:The Unified Software Process has four phases:�� Inception Inception -- Define the scope of projectDefine the scope of project�� Elaboration Elaboration -- Plan project, specify features, baseline Plan project, specify features, baseline

architecture architecture �� Construction Construction -- Build the productBuild the product�� Transition Transition -- Transition the product into end user communityTransition the product into end user community

time

Inception Elaboration Construction Transition

Major Major MilestonesMilestones

Page 47: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Inception Phase�� PurposePurpose

•• To establish the business case for a new system or for To establish the business case for a new system or for a major update of an existing systema major update of an existing system

•• To specify the project scopeTo specify the project scope

�� OutcomeOutcome•• A general vision of the project’s requirements, i.e., the A general vision of the project’s requirements, i.e., the

core requirementscore requirements–– Initial useInitial use--case model and domain model (10case model and domain model (10--20% 20%

complete) complete) •• An initial business case, including:An initial business case, including:

–– Success criteria (e.g., revenue projection)Success criteria (e.g., revenue projection)–– An initial risk assessmentAn initial risk assessment–– An estimate of resources requiredAn estimate of resources required

�� Milestone: Lifecycle ObjectivesMilestone: Lifecycle Objectives

Page 48: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Elaboration Phase�� PurposePurpose

•• To analyze the problem domainTo analyze the problem domain•• To establish a sound architectural foundationTo establish a sound architectural foundation•• To address the highest risk elements of the projectTo address the highest risk elements of the project•• To develop a comprehensive plan showing how the project To develop a comprehensive plan showing how the project

will be completedwill be completed

�� OutcomeOutcome•• UseUse--case and domain model 80% completecase and domain model 80% complete•• An executable architecture and accompanying An executable architecture and accompanying

documentationdocumentation•• A revised business case,A revised business case, inclincl. revised risk assessment. revised risk assessment•• A development plan for the overall projectA development plan for the overall project

�� Milestone: Lifecycle ArchitectureMilestone: Lifecycle Architecture

Page 49: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Construction Phase� Purpose

• To incrementally develop a complete software product which is ready to transition into the user community

� Products• A complete use-case and design model• Executable releases of increasing functionality• User documentation• Deployment documentation• Evaluation criteria for each iteration• Release descriptions, including quality assurance

results• Updated development plan

� Milestone: Initial Operational Capability

Page 50: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Transition Phase�� PurposePurpose

•• To transition the software product into the user To transition the software product into the user communitycommunity

�� ProductsProducts•• Executable releasesExecutable releases•• Updated system modelsUpdated system models•• Evaluation criteria for each iterationEvaluation criteria for each iteration•• Release descriptions, including quality assurance Release descriptions, including quality assurance

resultsresults•• Updated user manualsUpdated user manuals•• Updated deployment documentationUpdated deployment documentation•• “Post“Post--mortemmortem” analysis of project performance ” analysis of project performance

�� Milestone: Product ReleaseMilestone: Product Release

Page 51: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Iterations and Phases

An An iterationiteration is a distinct sequence of activities with an is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an established plan and evaluation criteria, resulting in an executable release (internal or external).executable release (internal or external).

PreliminaryPreliminaryIterationIteration

Architect.Architect.IterationIteration

Architect.Architect.IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

TransitionTransitionIterationIteration

TransitionTransitionIterationIteration

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Releases

Page 52: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Iteration Assessment

Iteration N+1 PlanIteration N+1 Plan•• CostCost•• ScheduleSchedule•• ContentContent

•• Compare iteration actual cost, Compare iteration actual cost, schedule, and content with iteration schedule, and content with iteration planplan

•• Determine rework (if any) to be doneDetermine rework (if any) to be done•• Assign to future iteration(s)Assign to future iteration(s)

•• Determine what risks have been Determine what risks have been eliminated, reduced, or newly eliminated, reduced, or newly identified in this iterationidentified in this iteration

•• Update project planUpdate project plan•• Prepare detailed plan for next Prepare detailed plan for next

iterationiteration•• Use revised risk list and select Use revised risk list and select

appropriate scenariosappropriate scenarios

Iteration N AssessmentIteration N AssessmentIteration N Cost andIteration N Cost and

ScheduleSchedule ActualsActuals Revised Risk ListRevised Risk List

Quality AssessmentQuality Assessmentfor Iteration Nfor Iteration N

•• Test ResultsTest Results•• Defect DensityDefect Density•• Architecture Architecture

StabilityStability•• Other metricsOther metrics

Revised Project PlanRevised Project Plan•• Total CostTotal Cost•• OverallOverall

ScheduleSchedule•• Scope/ContentScope/Content

Page 53: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Each major workflow describes how to create and maintain a particular model

Models and Workflows

DesignModel

ImplementationModel

TestModel

realized by

implemented by

RequirementsWorkflow

Analysis DesignWorkflow

ImplementationWorkflow

Test Workflow

Use-CaseModel

BusinessModeling

Business Model

verified by

Page 54: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Bringing It All Together...Phases

Process Workflows

Iterations

Supporting Workflows

ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Workflowsgroup activities logically

In an iteration, you walk through all workflows

Page 55: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Example of a Workflow

Page 56: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Agenda�� Why Rational Software focuses on processWhy Rational Software focuses on process�� What is the problemWhat is the problem�� 6 fundamental Best 6 fundamental Best PractticesPracttices�� Structure of the Unified Software ProcessStructure of the Unified Software Process�� The Rational Unified Process productThe Rational Unified Process product

Page 57: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Process Made Practical

�� RoleRole--based activity supportbased activity support�� Accessible, easy to use, webAccessible, easy to use, web--enabledenabled�� Automated by toolsAutomated by tools�� ee--coach integrated with toolscoach integrated with tools�� Configurable and customizableConfigurable and customizable

Page 58: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Process Delivery In the Past….

�� Thick binder on every developers shelfThick binder on every developers shelf�� ….collecting dust…….collecting dust…�� hard to understand, hard to use, seen as driving hard to understand, hard to use, seen as driving

overheadoverhead

Page 59: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Role-based Activity Support�� ValueValue--add to each team memberadd to each team member�� Detailed handsDetailed hands--on guidelineson guidelines�� ProductivityProductivity--enhancing document templatesenhancing document templates�� NonNon--intrusiveintrusive

Signifies a rolethat may be played by an

individual or a team of

individuals in the

development organization

Worker

UseUse--Case Case SpecifierSpecifier

ActivityDescribes a piece of work a worker may

be asked to perform.

Describe a Use Case

Signifies a piece of information that is

produced, modified, or used by a process

Artifact

UseUse--Case Case PackagePackage

Use CaseUse Case

responsible forresponsible for

Page 60: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Easy to Use�� Interactive knowledge base accessible from toolsInteractive knowledge base accessible from tools�� WebWeb--enabled with powerful graphical navigationenabled with powerful graphical navigation�� Search engine, index...Search engine, index...

Searchable Searchable Accessible Accessible NavigableNavigableEasy to useEasy to use

Page 61: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Automated by Tools

Tool mentorsReport generation scriptsStereotype icons

Tool mentorsTest templates

Tool mentors Requirement templates

Tool mentorsDocument templates

VB Designguidelines

Tool mentorsCM guidelines

Change management guidelines

Tool mentors

Ada, C++ Prog.guidelines Tool mentorsRoseRoseRose

SoDASoDA

ClearQuestClearQuestClearQuest

RobotRobotRobot

ClearCaseClearCaseClearCase

ApexApexApexMicrosoft

Visual StudioMicrosoft Microsoft

Visual StudioVisual StudioPurifyQuantifyPureCoverage

PurifyPurifyQuantifyQuantifyPureCoveragePureCoverage

RequisiteProRequisiteProRequisitePro

Page 62: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

e-coach - Tool Mentor

Set Up the Implementation Model Create an Integration and Build Workspace Create Private Workspace Check Out and Check In Configuration Items Promote Configuration Items Baseline the Project Release Subsystem(s)Baseline the Project

Tool Mentor Topics - Using ClearCase to...

Page 63: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

e-coach - Extended Help

Context sensitive process

guidance from tools

Page 64: The Unified Software Processit210web.groups.et.byu.net/Tutorials/UnifiedProcess.pdf · 2004-05-07 · UML 0.8 Rational Unified Process 5.1 Configuration & change Mgmt 1998 1995 Business

Questions?

�� Please feel free to contact me at Please feel free to contact me at [email protected] or [email protected] or 319--228228--87818781

�� www.rational.comwww.rational.com�� IBM Application Framework for eIBM Application Framework for e--businessbusiness

� www.ibm.com/ebusiness�� Microsoft Windows DNAMicrosoft Windows DNA

� www.microsoft.com/dna