Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational...

47
Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering

description

3 Unified Software Practices Copyright © Rational Software, all rights reserved Module 1 Content Outline  Software development problems  The Six Best Practices  RUP within the context of the Six Best Practices

Transcript of Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational...

Page 1: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

Rational Unified Process Fundamentals

Module 1: Best Practices of Software Engineering

Page 2: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

2Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Objectives

Identify activities for understanding and solving software engineering problems.

Explain the Six Best Practices. Present RUP within the context of the Six

Best Practices.

Page 3: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

3Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Module 1 Content Outline

Software development problems The Six Best Practices RUP within the context of the Six Best

Practices

Page 4: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

4Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Symptoms of Software Development Problems

User or business needs not metRequirements churnModules don’t integrateHard to maintainLate discovery of flawsPoor quality or end-user experiencePoor performance under loadNo coordinated team effortBuild-and-release issues

Page 5: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

5Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Trace Symptoms to Root Causes

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

Ambiguous communications

Undetected inconsistencies

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Model Visually (UML)

Continuously Verify Quality

Modules don’t fit

Page 6: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

6Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Module 1 Content Outline

Software development problemsThe Six Best Practices RUP within the context of the Six Best

Practices

Page 7: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

7Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Practice 1: Develop Iteratively

Page 8: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

8Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

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

Code and unit test

Design

Subsystem integration

System test

Waterfall Process Requirements

analysis

Page 9: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

9Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Iterative Development Produces an Executable

InitialPlanning

Planning

Requirements

Analysis & Design

Implementation

Deployment

Test

Evaluation

ManagementEnvironment

Each iteration results in an executable release

Page 10: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

10Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Risk ReductionRisk Reduction

Time

Risk

Waterfall Risk

Iterative Risk

Risk Profiles

Page 11: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

11Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Practice 2: Manage Requirements

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 12: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

12Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Requirements Management

A requirement is a condition or capability a system must have.

Managing the requirements of a project offers a number of solutions to the root causes of SW development problems. A disciplined approach is built into requirements

management. Communications are based on defined requirements Requirements can be prioritized and traced. An objective assessment of functionality and

performance is possible. Inconsistencies are detected more easily.

Page 13: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

13Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

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.

Page 14: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

14Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Aspects of Requirements Management

Analyze the Problem Understand User Needs Define the System Manage Scope Refine the System Definition Manage Changing Requirements

Page 15: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

15Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Problem

Solution Space

Problem Space

Needs

Features

SoftwareRequirements

Test ScriptsDesign User

Docs

The The Product Product

to Be to Be BuiltBuilt

Traceability

Map of the Territory

Page 16: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

16Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Practice 3: Use Component Architectures

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component ArchitecturesModel Visually (UML)

Continuously Verify QualityManage Change

Page 17: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

17Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Resilient Component-Based Architectures

A system’s architecture is perhaps the most important deliverable for the purpose of managing the diverse viewpoints of the various stakeholders.

The architecture is helpful in controlling the incremental and iterative development of a system throughout its lifecycle.

Page 18: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

18Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

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

Page 19: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

19Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Purpose of a Component-Based Architecture

Basis for reuse Component reuse Architecture reuse

Basis for project management Planning Staffing Delivery

Intellectual control Manage complexity Maintain integrity System-System-

softwaresoftware

MiddlewareMiddleware

Business-Business-specificspecific

Application-Application-specificspecific

Component-based architecture with layers

Page 20: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

20Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Practice 4: Model Visually (UML)

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 21: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

21Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

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

Page 22: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

22Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Visual Modeling with Unified Modeling Language

ActivityDiagrams

Models

Dynamic Diagrams

Static Diagrams

Multiple views Precise syntax and

semantics

SequenceDiagrams

CollaborationDiagrams

StatechartDiagrams

DeploymentDiagrams

ComponentDiagrams

ObjectDiagrams

ClassDiagrams

Use-CaseDiagrams

Page 23: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

23Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Visual Modeling Using UML Diagrams

Actor A

Use Case 1

Use Case 2

Actor B

user : Clerk

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 ( )

Window95

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

WindowsNT

¹®¼ °ü̧ ® ¿£Áø.EXE

WindowsNT

Windows95

Solaris

ÀÀ¿ë¼ ¹ö.EXE

AlphaUNIX

IBM Mainframe

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

Windows95

¹®¼ °ü¸® ¾ÖÇø´Document

FileManager

GraphicFile

File

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

ReadingClosing

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

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

Deployment Diagram

Page 24: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

24Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Practice 5: Continuously Verify Quality

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)ContinuouslyVerify Quality

Manage Change

Page 25: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

25Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Continuously Verify Your Software’s Quality

Verifying SW quality offers a number of solutions to the root causes of SW development problems. Project status is objective, not subjective. Objective assessment exposes inconsistencies

in requirements, design and implementation. Testing can be focused on the highest areas of

risk. Defects are identified earlier thus reducing the

cost of fixing them.

Page 26: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

26Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Continuously Verify Your Software’s Quality

Cost

TransitionConstructionElaborationInception

Software problems are100 to 1000 times more costly

to find and repair after deployment

Cost to Repair Software Cost of Lost Opportunities Cost of Lost Customers

Page 27: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

27Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Testing Dimensions of Quality

Reliability Test the application

behaves consistently and predictably.

Performance Test online response

under average and peak loading

Functionality Test the accurate

workings of each usage scenario

Usability Test application from the

perspective of convenience to end-user.

Supportability Test the ability to maintain

and support application under production use

Page 28: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

28Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

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

Page 29: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

29Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Test Within the Product Development Lifecycle

Page 30: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

30Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Practice 6: Manage Change

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 31: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

31Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Why manage change?

A key challenge when you are managing SW-intensive systems is that you must cope with multiple developers organized into teams, possible at different sites, working together on multiple iterations, releases, products, and platforms.

Without some sort of disciplined control, the development process rapidly degenerates into chaos.

Page 32: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

32Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

ALERTREPORT

WorkspaceManagement

Process Integration

Parallel Development

Build Management

CM is more than just check-in and check-out

What Do You Want to Control?

Secure workspaces for each developer Automated integration/build management Parallel development

Page 33: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

33Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Aspects of a CM System

Change Request Management (CRM) Configuration Status Reporting Configuration Management (CM) Change Tracking Version Selection Software Manufacture

Page 34: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

34Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Unified Change Management (UCM)UCM involves: Management across the lifecycle

System Project Management

Activity-Based Management Tasks Defects Enhancements

Progress Tracking Charts Reports

Page 35: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

35Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Best Practices Reinforce Each Other

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 PracticesDevelop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Page 36: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

36Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Module 1 Content Outline

Software development problems The Six Best Practices RUP within the context of the Six Best

Practices

Page 37: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

37Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Rational Unified Process Implements Best Practices

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component ArchitecturesModel Visually (UML)

Continuously Verify QualityManage Change

Page 38: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

38Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Achieving Best Practices

Iterative approach Guidance for activities

and artifacts Process focus on

architecture Use cases which

drive design and implementation

Models which abstract the system

Page 39: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

39Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

A Team-Based Definition of Process

A process defines Who is doing What, When, and How, in order to reach a certain goal.

New or changed

requirements

New or changed

system

Software EngineeringProcess

Page 40: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

40Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Process Structure - Lifecycle Phases

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

time

Page 41: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

41Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Phase Boundaries Mark Major Milestones

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Lifecycle Objective Milestone

(LCO)

Lifecycle Architecture

Milestone (LCA)

Initial Operational Capability Milestone

(IOC)

Product Release

time

Page 42: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

42Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Iterations and Phases

An iteration is a distinct sequence of activities based on an established plan and evaluation criteria, resulting in an 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

Minor Milestones: Releases

Page 43: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

43Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Bringing It All Together: The Iterative Approach

Disciplines group activities logically

In an iteration, you walk through all disciplines

Page 44: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

44Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Disciplines Produce Models

Realized ByImplemented

By

ImplementationModel

Design Model

Use-Case Model

Models

Disciplines Implement-ation

Analysis &Design

Require-ments

Business Use-Case Model

Business Modeling

Business Object Model

BBBB

Realized By

AutomatedBy

Page 45: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

45Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Disciplines Guide Iterative Development Business Modeling: Workflow

Requirements: Workflow

Page 46: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

46Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Overview of Rational Unified Process Concepts

Page 47: Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.

47Unified Software PracticesCopyright © 1999-2001 Rational Software, all rights reserved

Review

Best Practices guide software engineering by addressing root causes.

Best Practices reinforce each other. Process guides a team on who does what,

when, and how. Rational Unified Process is a means of

achieving Best Practices.