Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually...

14
PRJ270: Essentials of Rational Unified Process Module 1 Best Practices of Software Engineering 1 Page 1 1 IBM Software Group ® Rational Unified Process (RUP) and UML The Method View Jouko Poutanen/11.3.2005 2 Software Development Best Practices Needs not met Requirements churn Modules don’t fit Hard to maintain Late discovery Poor quality Poor performance Colliding developers Build-and-release Insufficient requirements Ambiguous communications Brittle architectures Overwhelming complexity Undetected inconsistencies Poor testing Subjective assessment Waterfall development Uncontrolled change Insufficient automation Symptoms Root Causes Best Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change

Transcript of Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually...

Page 1: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 1

Page 1

1

IBM Software Group

®

Rational Unified Process (RUP) and UML The Method View

Jouko Poutanen/11.3.2005

2

Software Development Best Practices

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

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Page 2: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 2

Page 2

3

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Practice 1: Develop Iteratively

4

Waterfall Development Characteristics

Delays confirmation of critical risk resolution Measures progress by assessing work-products that are poor predictors of time-to-completionDelays and aggregates integration and testingPrecludes early deploymentFrequently results in major unplanned iterations

Waterfall Process

Requirements Analysis

DesignCode and Unit Test

SubsystemIntegration

System Test

Page 3: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 3

Page 3

5

Iterative Development Produces Executables

Planning

Requirements

Analysis & Design

Implementation

Deployment

Test

Evaluation

ManagementEnvironment

Each iteration results in an executable release.

6

Practice 2: Manage Requirements

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 4: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 4

Page 4

7

Requirements Management Means…

Making sure yousolve the right problembuild the right system

by taking a systematic approach toeliciting organizing documenting managing

the changing requirements of a software application.

8

Problem

Solution Space

Problem Space

Needs

Features

SoftwareRequirements

Test ScriptsDesign User

Docs

The Product

to Be Built

Traceability

Map of the Territory

Page 5: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 5

Page 5

9

Use-Case Model

Supplementary

Iteration Plan

Fine-grained plan for a single iteration

Project Management

Constraints

During Elaboration, use cases are implemented to validate the architecture.

Use Cases as a Basis for Iteration Planning

10

Use Cases as a Basis for System Modeling

verificationrealization

Use-Case Model(requirements)

Implementation Model(source code)

Test Scripts

influence

Design Model(classes and objects)

Page 6: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 6

Page 6

11

Use Cases as a Basis for Test Planning

The complete behavior of a use case is tested using Test Scripts and Test Suites.

Test Suite

Test Script

Test Script

Test Suite

12

Practice 3: Use Component Architectures

Best PracticesProcess Made PracticalBest Practices

Process Made Practical

Develop IterativelyManage Requirements

Use ComponentArchitectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use ComponentArchitectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 7: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 7

Page 7

13

Purpose of a Component-Based Architecture

Basis for reuseComponent reuseArchitecture reuse

Basis for project management

PlanningStaffingDelivery

Intellectual controlManage complexityMaintain integrity

Component-based architecture with layers

Application-specific

Business-specific

System-software

Middleware

14

Practice 4: Model Visually (UML)

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 8: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 8

Page 8

15

One language – One tool –One team

Data Modeling

TecnologyModeling

Application Modeling

Business Modeling

RequirementsModeling

One Language for All Practitioners

16

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.

Page 9: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 9

Page 9

17

Practice 5: Continuously Verify Quality

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)ContinuouslyVerify QualityManage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)ContinuouslyVerify QualityManage Change

18

Continuously Verify Your Software’s Quality

Development Phases

Cost

Cost to Repair Software

Cost to Lost Opportunities

Cost of Lost Customers

Software problems are100 to 1000 times more costly

to find and repair after deployment

Page 10: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 10

Page 10

19

Testing Dimensions of Quality

Test the accurate workings of each usage scenario

FunctionalityTest application from the perspective of convenience to end-user

Usability

Test online response under average and peak loading

Performance

Test that the application behaves consistently and predictably

Reliability

Test the ability to maintain and support application under production use

Supportability

20

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

Need for automated testing increases

Page 11: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 11

Page 11

21

Practice 6: Manage Change

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

22

Muutostenhallinta - Change Request Management

Change requests come from many sources throughout each iteration of the product lifecycle

Maint

Test

Code

Design

Req

Customer andUser inputs

MarketingNew

Feature

NewRequirement

Bug

Help DeskUser inputs

ApprovedDecisionProcess(CCB)

Single Channel for Approval

Coders inputsTesters inputs

ChangeRequest (CR)

Page 12: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 12

Page 12

23

Unified Change Management

24

Best Practices Reinforce Each Other: An Example

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

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Page 13: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 13

Page 13

25

RUP Implements Best Practices

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop IterativelyManage Requirements

Use Component ArchitecturesModel Visually (UML)

Continuously Verify QualityManage Change

Develop IterativelyManage Requirements

Use Component ArchitecturesModel Visually (UML)

Continuously Verify QualityManage Change

26

Bringing It All Together: The Iterative Approachtime

content

Disciplines group related activities.

In an iteration, you walk through all disciplines.

Page 14: Rational Unified Process (RUP) and UML · Rational Unified Process (RUP) and UML ... Model Visually (UML) Best Practices ... Architecture baselined Scope and Business Case agreement

PRJ270: Essentials of Rational Unified Process

Module 1 Best Practices of Software Engineering 14

Page 14

27

Changing Focus of Phases Over Time

Planned (Technical) Visibility Points

TransitionIteration

TransitionIteration

DevelopmentIteration

DevelopmentIteration

DevelopmentIteration

Architecture Iteration

ArchitectureIteration

PreliminaryIteration

TransitionConstructionElaborationInception

Acceptanceor end of life

Product sufficiently mature for customers to use

Architecture baselined

Scope and Business Case agreement

Planned (Business) Decision Points

understandproblem

understandsolution

have a solution

efficient useof solution

28

Typical Effort and Time Percentages by Phase

10%50%30%10%Time/Schedule10%65%20%5%Effort

TransConstElabInc

Time

People

ConstElab TransInc