The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon...

60
The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department of Defense

Transcript of The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon...

Page 1: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The Personal Software Process (PSP)Lecture #1

Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213

Sponsored by the U.S. Department of Defense

Page 2: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Course Text•“A Discipline for Software Engineering” Watts S. Humphrey

Page 3: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Software Engineering What is it?

What is a process?

Page 4: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Course Objectives To introduce you to a process-based approach to developing software

To show you how to measure and analyze your personal software process (PSP)

To show you how to use process data to improve your personal performance

To show you how to apply these methods to your other tasks

Page 5: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Course Overview Introduction - 1 lecture Planning the process - 4 lectures Defect management - 3 lectures The design process - 2 lectures Scaling up the process - 1 lecture Design verification - 2 lectures Process development - 1 lecture Using the PSP - 1 lecture

Page 6: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Lecture #1 Overview PSP principles•costs and benefits•personal software process (PSP) overview

The capability maturity model (CMM)•process maturity•the CMM and the PSP

The initial PSP0 process

Page 7: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP Principles - 1 The quality of a software system is governed by the quality of its worst components.

The quality of a software component is governed by the individual who developed it.

This is governed by your•knowledge •discipline•commitment

Page 8: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

What is this?

Page 9: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The last picture taken from the Mars Lander

… A software flaw probably caused the Mars Polar Lander to shut off its descent engines prematurely, sending it on a fatal plunge into the red planet, according to a report released Tuesday…

"There was inadequate software design and testing. The software should have been designed to prevent premature engine shutdown," he said. "In space, one strike and you're out."

The loss to taxpayers was approximately $165M.

Page 10: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Process Examples A carpenter knows how long does take him to build a cupboard.

Top sales people know how much money they brought in.

Racing teams know how minor changes to their cars will affect performance

What do you know about your software development skills?

Page 11: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP Principles - 2 As software professionals you should know your own performance.

You should measure, track, and analyze your work.

You should learn from your performance variations.

You should Incorporate these lessons in your personal practices.

Page 12: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

With a Stable PSP You can•estimate and plan your work •meet your commitments•resist unreasonable commitment pressures

You will also•understand your ability•be better able to improve

Page 13: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

A PSP Also Provides A proven basis for developing and practicing industrial-strength personal disciplines

A discipline that shows you how to improve your personal process

The data to continually improve the productivity, quality, and predictability of your work

Page 14: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

What is a PSP? A personal process for developing software•defined steps •forms •standards

A measurement and analyses framework to help you characterize your process

A defined procedure to help you to improve your performance

Page 15: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The CMM and the PSP - 1 The capability maturity model (CMM) was developed by the SEI with the help of leading software groups.

The CMM characterizes the most effective large-scale software practices.

The PSP:•applies the CMM •is for individual work

Page 16: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

SEI Capability Maturity Matrix Broadly agree to define how a software organization matures and improves Based on manufacturing process improvement and “best practices” from software engineering Some dramatic successes...

Page 17: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Capability Maturity Matrix Developed by the Software Engineering

Institute (SEI) by Watts Humphry and Mark Paulk.

Five levels of maturity for an organization• Level 1 - Initial; • Level 2 - Repeatable; • Level 3 - Defined; • Level 4 - Managed; • Level 5 - Optimizing.

Page 18: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Initial Poorly defined procedures and controls No management mechanism to to ensure they are followed Heroic efforts by one or two people saves the day. Projects are late, crisis to crisis

Page 19: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Repeatable Basic project controls Quality problems No framework for orderly improvement Fault data is being collected

Page 20: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defined Commitment to software process evaluation and improvement Appropriate software engineering standards and methods are in place Strong qualitative understanding of the process

Page 21: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Managed Process is quantified Quality and productivity measured for each key task Wide dissemination of process related information Errors can be predicted with acceptable accuracy

Page 22: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Optimizing Process improvement feed-back and feed-forward controls Rigorous defect causal analysis and defect prevention Proactive management

Page 23: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

More on CMM There are 18 key process areas defined by CMM,

including• Requirements Management, • Software Configuration Management • Process Change Management• Defect Prevention

Each key process area has five common features: • 1) goals to be achieved; • 2) ability to perform; • 3) activities performed; • 4) measurement and analysis; • 5) verification

Page 24: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The CMM and the PSP - 2

Level 2Software configuration managementSoftware quality assuranceSoftware subcontract managementSoftware project tracking and oversight*Software project planning*Requirements management

*PSP key process areas

Level 3Peer reviews*Intergroup coordinationSoftware product engineering*Integrated software management*Training programOrganization process definition*Organization process focus*

Level 4Quality management*Process measurement and analysis*

Level 5:Process change management*Technology innovation*Defect prevention*

Level 11

2

3

4

5

Page 25: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The CMM and the PSP - 3 The CMM provides the framework for effective process management.

It assumes that the software professionals will follow disciplined personal methods.

The PSP provides the framework for disciplined individual work.

It assumes effective process management.

Page 26: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

SEPG

SQA/SCM

Management

The CMM and the PSP - 4

TheSoftware

EngineeringWork

SEPG - software engineering process groupSQA - software quality assuranceSCM - software configuration management

the Engineers

Page 27: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP Overview - 1 The PSP is introduced in 7 upward compatible steps

You write 1 or 2 small programs at each step

You gather and analyze data on your work

You use these and analyses to improve your work

Page 28: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP Overview - 2

PSP0Current processTime recording

Defect recordingDefect type standard

PSP1Size estimating

Test report

PSP2Code reviews

Design reviews

PSP3Cyclic development

PSP2.1Design templates

PSP1.1Task planning

Schedule planning

PSP0.1Coding standard

Size measurementProcess improvement

proposal (PIP)

Page 29: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP Overview - 3 PSP0 - you establish a measured performance baseline

PSP1 - you make size, resource, and schedule plans

PSP2 - you practice defect and yield management

PSP3 - you scale up PSP methods to larger projects

Page 30: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

At Course Conclusion You will have practiced the key elements of a level 5 industrial process.

You will understand which methods are most effective for you.

You will do better work.

You will have long-term improvement goals.

Page 31: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Other Course Results The following charts show how others have improved during the PSP course.

These data are for 12 students who took the PSP course at Carnegie Mellon University in the spring of 1994.

The data are on:•compile time•test defects•productivity

Page 32: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Compile Time Range

Program Number

% o

f T

ota

l T

ime

0

5

10

15

20

25

30

1 2 3 4 5 6 7 8 9 10

Max

Avg

Min

14 hours to 3 hours

Page 33: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defects Found in Test - Range

Program Number

De

fec

ts/K

LO

C

0

20

40

60

80

100

120

140

160

180

1 2 3 4 5 6 7 8 9 10

Max

Avg

Min

39 Errors to 1 on average

Page 34: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Productivity Range

Program Number

LO

C/H

ou

r

0102030405060708090100

1 2 3 4 5 6 7 8 9 10

Max

Avg

Min

Big drop in defectsBig potential increaseIn productivity

Page 35: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The PSP0 Process A simple defined personal process

Use your current design and development methods.

Gather data on your work:•time spent by phase•defects found in compile and test

Prepare a summary report.

Page 36: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The PSP0 Process Elements A process script

A project plan summary form

A time recording log A defect reporting log

A defect type standard

Page 37: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The PSP0 Script - 1 Reference - Table C10, page 652

Planning - estimate development time

Development - develop the product using your current methods

Postmortem - complete the project plan summary, with the time spent and defects found and injected in each phase.

Page 38: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

The PSP0 Script - 2 Design - design the program, using your current design methods

Coding - Implement the program

Compile - compile until defect free

Test - test the program and fix all defects

Record defects in the defect log and time per phase in the time log.

Page 39: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Plan Summary - 1 Reference - Table C14, page 655

Header - name, date, program, instructor, language

Enter your best estimate of the total time the development will take.

Enter the actual time in minutes you spent in each phase.

Page 40: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Table C14 PSP0 Project Plan Summary

Student Date Program Program # Instructor Language

Time in Phase (min.) Plan Actual To Date To Date % Planning

Design

Code

Compile

Test

Postmortem

Total

Defects Injected Actual To Date To Date % Planning

Design

Code

Compile

Test

Total Development

Defects Removed Actual To Date To Date % Planning

Design

Code

Compile

Test

Total Development

After Development

Page 41: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Plan Summary - 2 Time - To Date - Enter the total time spent in each phase to date. For program 1A, this is the time spent on program 1A.

Time - To Date % - Enter the percent of the total To Date time that was spent in each phase.

Defects injected and removed - Enter the actual numbers of defects injected and removed in each phase.

Page 42: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Plan Summary - 3

Defects - To Date - Enter the total defects injected and removed in each phase to date. For program 1A, this is the defects injected and removed with program 1A.

Defects - To Date % - Enter the percent of the total To Date defects injected and removed in each phase.

Page 43: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Time Recording Log - 1 Reference - Table C16, page 657

Header - name, date, instructor, and program number

Date - Enter the current date.

Start - Enter the time in minutes when you start a project phase.

Page 44: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Table C16 Time Recording Log Student Date

Instructor Program #

Date Start Stop Interruption Time

Delta Time

Phase Comments

Page 45: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Time Recording Log - 2 Stop - Enter the time in minutes when you stop work on a project phase, even if you are not done with that phase.

Interruption time - Enter any time you lost due to interruptions in the start to stop period.

Delta time - Enter the elapsed start to stop time less the interruption time.

Page 46: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Time Recording Log - 3

Phase•note the phase on which you were working•use the phase name

Comments - describe•the interruption•the task you were doing•anything else that significantly affects your work

Page 47: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defect Recording Log - 1 Reference - Table C18, page 659

Header - enter the name, date, instructor, and program number

Date - Enter the date when you found and fixed the defect.

Number - Enter a unique number for this defect. Start each project with 1.

Page 48: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Table C18 Defect Recording Log Student Date

Instructor Program #

Date Number Type Inject Remove Fix Time Fix Defect Description: Date Number Type Inject Remove Fix Time Fix Defect Description: Date Number Type Inject Remove Fix Time Fix Defect Description: Date Number Type Inject Remove Fix Time Fix Defect Description: Date Number Type Inject Remove Fix Time Fix Defect Description: Date Number Type Inject Remove Fix Time Fix Defect Description:

Defect Types 10 Documentation 60 Checking 20 Syntax 70 Data 30 Build, Package 80 Function 40 Assignment 90 System 50 Interface 100 Environment

Page 49: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defect Recording Log - 2 Type - Enter the defect type from the defect type standard.

Inject - Enter the phase during which you judge the defect was injected.

Remove - Enter the phase in which you found and fixed the defect.

Page 50: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defect Recording Log - 3 Fix time - Enter the time you took to fix the defect. You may time it exactly or use your best judgment.

Fix defect - If this defect was injected while fixing another defect, enter the number of that defect or an X if you do not know.

Note - A defect is anything in the program that must be changed for it to be properly developed, enhanced, or used.

Page 51: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defect Type Standard - 1 Reference - Table 20, page 661

The defect type standard provides a general set of defect categories.

While you may replace this standard with your own, it is generally wise to stick with simple type definitions until you have data to guide your changes.

Page 52: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Defect Type Standard - 2 The PSP defect types are: 10 - Documentation 20 - Syntax 30 - Build, package 40 - Assignment 50 - Interface 60 - Checking 70 - Data 80 - Function 90 - System 100 - Environment

Page 53: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Assignment #1 Read preface and chapters 1 and 2 of the text.

Use PSP0 to write program 1A.

See Appendix D for the program specifications.

See Appendix C for the PSP0 definitions and examples.

Follow the specifications in Appendix C on the materials to submit and their order and content.

Page 54: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Program 1A Calculates the standard deviation of a list of numbers. The n numbers are held in a linked list. The standard deviation is calculated as follows:

i is an index to the numbers, and Xavg is the average value of the numbers.

Std xi xavg 2

i1

n

n 1

Page 55: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Suggestions Keep personal copies of what you turn in Submit your programs on diskettes or to Chaoyang by e-mail. [email protected] Software must be a windows executable! Please keep accurate track of time.

YOU WILL NOT BE GRADED ON YOUR TIME OR QUALITY!!

Page 56: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Some Suggestions - 1 Keep your programs simple. You will learn as much from small programs as from large ones.

Keep your reports and standards simple and short.

Do not hesitate to copy or build on the PSP materials.

Do it right the first time. If you are not sure, find out.

Page 57: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Actual Time Range

Program Number

Ho

urs

02468101214161820

1 2 3 4 5 6 7 8 9 10

Max

Avg

Min

Page 58: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Some Suggestions - 2 Software is not a solo business so you do not have to work alone. You must, however, produce your own estimates, designs, and code.

You may have others review your work and you may change it as a result.

You should note this help in your process report, include the review time you and your associates spend, and log the defects found.

Page 59: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

PSP0 Evaluation Criteria Your process report must be:•complete •legible •in the specified order

Your process data must be:•accurate•precise•self-consistent

Page 60: The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Messages to Remember from Lecture 1 1 - The PSP is a defined process to help you do better work.

2 - Once you have completed this course, you will know how to adjust and extend the PSP to meet your future needs.

3 - In using PSP0, your principal objective is to gather and report accurate and complete data on your work.