Using A Defined and Measured Personal Software Process

34
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8

description

Using A Defined and Measured Personal Software Process. Watts S. Humphrey CS 5391 Article 8. Overview. Improved software processes lead to improved product quality. Individuals and small teams could apply process-improvement through PSP. - PowerPoint PPT Presentation

Transcript of Using A Defined and Measured Personal Software Process

Page 1: Using A Defined and Measured Personal Software Process

Using A Defined and Measured Personal Software Process

Watts S. Humphrey

CS 5391

Article 8

Page 2: Using A Defined and Measured Personal Software Process

Overview

• Improved software processes lead to improved product quality.

• Individuals and small teams could apply process-improvement through PSP.

• Benefits of fewer code defects, better planning and productivity.

Page 3: Using A Defined and Measured Personal Software Process

The Personal Software Process

• A measurement and analysis tool.

• Help engineers

– Understand their own skills.

– Improve personal performance.

– Improve organizational performance.

• Apply for individuals and small teams.

• Beyond Level 3 of CMM.

Page 4: Using A Defined and Measured Personal Software Process

Why PSP for Software Process

Software Process - A sequence of steps required to develop or maintain software.

• It is difficult for individuals or small terms apply Capability Maturity Model.

• Practice before applying CMM.

Page 5: Using A Defined and Measured Personal Software Process

PSP Overview

• It uses a family of seven steps to develop module-sized programs.

• Each step has a set of scripts, forms, and templates.

• Each program has 50 to 5,000 LOC.

Page 6: Using A Defined and Measured Personal Software Process

Learn from PSP practice

• Personal process principles• Make accurate plan• Determinate the steps to improve

product quality• Establish benchmarks to measure

process improvement• Good performance

Page 7: Using A Defined and Measured Personal Software Process

Personal

measurement

Personal

planning

Personal quality

PSP process evolution

PSP3

Cyclic Development

PSP2

Code reviews

Design reviews

PSP1

Size estimating

Test report

PSP0

Current progress

Time and defect recording

PSP2.1

Design templates

PSP1.1

Task planning

Schedule planning

PSP0.1

Coding standard

Size measurement

Process improvement proposal

Cyclic process

Page 8: Using A Defined and Measured Personal Software Process

Personal Measurement (PSP0)

• The first step where PSP starts.

• Engineers learn how to apply the PSP forms and scripts to their work.

– measuring development time and defects.

– gathering data and benchmarks.

Page 9: Using A Defined and Measured Personal Software Process

Three Phrases Of PSP0

1) Planning

2) Development Design Code Compiler Test

3) Verifying

Page 10: Using A Defined and Measured Personal Software Process

PSP0.1 & PIP form

Add three additional strategies to PSP0.1) Coding standard2) Size measurement3) Process Improvement Proposal form

PIP form let engineers record problems, issues, and ideas to use later in improving their processes.

PIP form help engineers to gather and use process data.

Page 11: Using A Defined and Measured Personal Software Process

Personal Planning (PSP1)

• PROBE method (for new program)– Estimate the size and development time– Based on personal data

• PROBE uses linear regression to calculate estimating parameters.

• PROBE generates prediction intervals to indicate size and time estimate quality.

Page 12: Using A Defined and Measured Personal Software Process

PSP1.1 & Early Planning

Add two additional strategies to PSP11) Schedule planning

2) Task planning

• By early planning to gather enough data

• Experience statistical estimating method

Page 13: Using A Defined and Measured Personal Software Process

Personal Quality (PSP2)

• Focus on defect management

• Implemented with defect data

– Use checklists for design and code review– Focus on quality from the start– Efficiently review the defects in programs– Good skill to construct and modify checklists

Page 14: Using A Defined and Measured Personal Software Process

PSP2.1 & Defect Metrics

• Add two strategies to PSP2

1) Design specification

2) Analysis techniques

– Along with defect prevention, process analysis, and process benchmarks.

– Measuring the time and the number of defects in each phase

– Learn to evaluate and improve performance

Page 15: Using A Defined and Measured Personal Software Process

Scaling Up (PSP3)

• The final step of PSP.

• Couple multiple PSP2.1 steps to scale up.

• Developing modules up to thousands LOC.

• Design-verification methods.

• Process-definition methods.

Page 16: Using A Defined and Measured Personal Software Process

PSP3 – Cyclic Process

Requirements and Planning

Specification

High-level Design

High-level Design Review

Cyclic Development

Postmortem

Integration System Test

Use Product

Specify Cycle

Detailed Design & Review

Test Development& Review

Implementation & Review

Compiler

Test

Reassess and Recycle

Page 17: Using A Defined and Measured Personal Software Process

CMM-Capability Maturity Model

• A framework.– Organization-focused

– Process-improvement

• Facilitate good work.– No guarantee

– Use effective personal practices

Page 18: Using A Defined and Measured Personal Software Process

Level 4 - Managed

*Software quality management

*Quantitative process management

CMM – Level Diagram

Level 3 - Defined

*Peer reviews

Intergroup coordination

*Software product engineering

*Integrated software management

Training program

*Organization process definition

*Organization process focus

Level 5 - Optimizing

*Process change management

*Technology change management

*Defect prevention

Level 2 - Repeatable

Software configuration management

Software quality assurance

Software subcontract management

*Software project tracking and oversight

*Software project planning

Requirements management

Level 1 - Initial

Page 19: Using A Defined and Measured Personal Software Process

PSP/CMM Relationship

• PSP– Bottom-Up approach– 12 of 18 (marked asterisk in diagram)– Most effective near or above CMM Level 2– Size and exercise

• CMM– Provide support environment– Orderly for superior work

Page 20: Using A Defined and Measured Personal Software Process

PSP Methods in Practice

• Data gathering

• Size and resource estimating

• Defect management

• Yield management

• Cost of quality

• Productivity analysis

Page 21: Using A Defined and Measured Personal Software Process

Method - Gathering Data

• With Goal-Question-Metric paradigm– Time spent– Defects found and removed– Product size in LOC

• Measure above data in each phase– Provide information of process quality– Appraisal and failure cost of quality

Page 22: Using A Defined and Measured Personal Software Process

Method - Estimating & Planning

• PROBE – Proxy-Based Estimating method– Proxies are objects and functions.– Use data to judge a new program’s size and

required development time.

• The objective is to learn to make fair judges, even with considerable errors.

• Estimating measure (%) – final size or develop time differs from the original ones.

Page 23: Using A Defined and Measured Personal Software Process

Estimating & Planning (cont.)

• Planning is measured by CPI.

– CPI ~ Cost-Performance Index

– The ratio of planned to actual development cost.

Page 24: Using A Defined and Measured Personal Software Process

Method - Managing Defects

• In PSP, all errors are counted.• In order to understand the errors before adjust processes to find

them.• Defect management – find & fix.

– Defect type– Fix time (from detected to fixed and verified)– Defect description– Error was injected on what phase

Page 25: Using A Defined and Measured Personal Software Process

Method - Managing Yield

• Yield is the principal PSP quality measure.• Although quality involves more than

defects, the PSP focuses on defect detection and prevention.

• Total Process Yield – The percentage of defects found and fixed before compile and test the program.

Page 26: Using A Defined and Measured Personal Software Process

Managing Yield (cont.)

• Main idea – Want fewer errors in test, find errors in code reviews.

– If you find errors after test your program, you must review the code and fix them.

– If you’re going to review the code anyway, why not review it before compiling?

– At least, you save your compiling time.– Compiler serves as a quality check device.

Page 27: Using A Defined and Measured Personal Software Process

Managing Yield (cont.)

• Why review code before compiling

– Some syntax errors are hard to find– Some erroneous keystrokes are valid– Hard to find by compiler nor in test– More expensive to find them later on– Engineers get satisfaction from a quality job

Example: while loop, for loop, if then clause.

Page 28: Using A Defined and Measured Personal Software Process

Method – Controlling COQ

PSP introduces three Cost-Of-Quality measures.

(1) Appraisal costs time spent in design and code review

(2) Failure costs time spent in compiler and test

(3) Prevention cost time spent in preventing defects

Page 29: Using A Defined and Measured Personal Software Process

Controlling COQ (cont.)

• Appraisal-to-failure-ratio = A/FR

Appraisal COQ / Failure COQ

• A/FR measure the relative effort spent in defect removal.

While the yield objective is to reduce the number of defects found in compile and test, the A/FR objective is to improve yield.

Page 30: Using A Defined and Measured Personal Software Process

Method – Understanding Productivity

• Productivity relates to quality.– Productivity of a program with no test defects– Productivity of a program with many defects– Make no sense to compare those programs

• Produce defect-free programs, the project will be more productive.

In this article, productivity = LOC / hour

Page 31: Using A Defined and Measured Personal Software Process

Understanding Productivity (cont.)

Two conclusions

1. Inexperienced engineers have higher defects rate and lower LOC/hour, the PSP will increase their productivity.

2. Experienced engineers start with low defect rate and higher LOC/hour, the PSP estimating and planning tasks drop their productivity. Get benefits from planning and quality management practice.

Page 32: Using A Defined and Measured Personal Software Process

Other PSP Issues

Design: PSP’s principal design focus is preventing defects.

Scale-Up: The PSP’s objective is to extend highly productivity to large programs with experiencing small programs.

Process definition: Learn how to define, plan, and work new processes from PSP.

Page 33: Using A Defined and Measured Personal Software Process

Design Issue

• Use design-completion rather than specific design methods.

• Poor design is a source of significant errors.

• Establish review-able design to reduce errors.

Page 34: Using A Defined and Measured Personal Software Process

Design Issue (cont.) Design-completion – Four Templates

1) Internal-static. contains a static behavior of the object.

2) External-static dynamic characteristics connecting its

behavior.

3) Internal-dynamic static relationship to other objects.

4) External-dynamic The interaction with other objects.