Tutorial: Using PSP0: Personal Software Process For Engineers: Part I

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 34

Pittsburgh, PA 15213-3890

SM
Personal Software Process
for Engineers: Part I

Tutorial: Using PSP0

This material is approved for public release. Distribution is limited by the


Software Engineering Institute to attendees.

Sponsored by the U.S. Department of Defense


© 2006 by Carnegie Mellon University

January 2006 PSP I - Using PSP0 - 1


Tutorial Objectives
After this tutorial, you will
• understand the PSP0 process
• know how to use PSP0 process scripts and forms
• be prepared to use PSP0 for program 1

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 2


PSP0 Process
PSP0 is a simple, defined, personal process.
• Make a plan.
• Use your current design and development methods to
produce a small program.
• Gather time and defect data on your work.
• Prepare a summary report.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 3


PSP0 Objective
The objective for PSP0 is to
• demonstrate the use of a defined process in writing small
programs
• incorporate basic measurements in the software
development process
• require minimal changes to your personal practices

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 4


PSP0 Process Phases -1
PSP0 has six phases.

Planning – produces a plan for


Plan
developing the program defined
by the requirements.

Design – produces a design Design


specification for the program
defined by the requirements.

Coding – transforms the design Code


specification into programming
language statements.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 5


PSP0 Process Phases -2
Compile – translates the
programming language Compile
statements into executable
code.

Test – verifies that the Test


executable code satisfies the
requirements.

Postmortem – summarizes and


Postmortem
analyzes the project data.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 6


Phase Order
Phase order is determined by the
dependencies between phases.
Test
• You can’t test the code before
it’s compiled.
Compile
• You can’t compile the code
before it’s written.

• You can’t use the design if it’s Code


produced after the code is
written.
Design
• There’s no reason to make a
plan after you’re done.

You should start here Plan

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 7


Process Flow
For programs that are small or well
understood, execute the phases in Requirements Plan
order.

Product a plan. Design

Design all modules.


Code
Code all modules.

Compile the coded program. Compile

Summarize the project data during


the postmortem. Test

Program and Postmortem


Project data

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 8


Cyclic Process Flow -1
Some programs may require an
iterative approach. Requirements Plan

In this example the design is Design


completed in one step. Module A Module B
Two modules are identified during
the design, modules A and B. Code Code

Then each module is separately


coded, compiled, and tested. Compile Compile

This example uses the PSP0


phases and two cycles of code- Test Test
compile-test.
Program and
Postmortem
Project data

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 9


Cyclic Process Flow -2
There can be more than two cycles
and cycles can also include the Requirements Plan
design phase as in this example.

Note that each cycle is focused on Module A Module B Module C


producing part of the program, e.g. Design Design Design
Module A, Module B, Module C.

Part size is a key factor for Code Code Code


determining cycles.
• a line of code is too small
• a program may be too large Compile Compile Compile

One or more classes, methods,


Test Test Test
procedures, functions, etc. are the
appropriate size part for a cycle.
Program and
Postmortem
Project data

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 10


Process Scripts
Process scripts provide “expert-level” guidance on how to
use the process.
They are one or two
pages long.

They describe the


• Purpose
• Entry criteria
• General guidelines
• Steps
• Exit criteria

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 11


The PSP0 Scripts -1
Planning: Estimate the 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.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 12


The PSP0 Scripts -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.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 13


Using Process Scripts
Process scripts guide you through the process.

You should
• check the entry criteria before starting a phase
• record the phase start time
• perform the phase steps and instructions
• record defects as they are found and corrected
• check the exit criteria before ending a phase
• record the phase end time
• go to the next phase

Force yourself to use this paradigm until it becomes a


habit.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 14


PSP0 Measures and Forms
PSP0 measures
• Time – track time in phase
• Defects – record defects as they are found and fixed

PSP0 has four forms


• PSP0 Project Plan Summary – summarizes planned and
actual time and defects by phase
• PSP0 Time Recording Log – used to record time
• PSP0 Defect Recording Log – used to record defects
• PSP0 Defect Type Standard – used to define standard
defect types

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 15


PSP Student Workbook
The PSP Student Workbook provides support for the PSP.
• scripts
• forms
• measures
• calculations
• planning
• tracking
• quality management
• analysis
• historical data
• access to class materials

It also provides support for post-course use of the PSP.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 16


Installing the PSP Student Workbook
Create a folder to hold the
contents of the student CD.

Copy the contents of the CD to


this folder.

Contents
• PSP Course Materials
• PSP Scripts and Forms
• PSP Student Workbook

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 17


Open the PSP Student Workbook
Open the file PSP Student Workbook.

The welcome form will open followed by the student profile.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 18


Complete the Student Profile
Enter the following
• name
• initials
• date
• name of your organization or
company
• name of the lead instructor

Answer the questions under


each tab.
• employment status
• software experience
• programming experience
• educational background

Click Finish.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 19


Opening a PSP Project
Select the first project,
Assignment 1.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 20


PSP0 Forms -1
This is the PSP0 Project Plan
Summary.

To open the other PSP0 forms


click on the label’s bar

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 21


PSP0 Forms -2

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 22


PSP0 Time Recording Log -1
Phase: Select the phase on which you were working.

Start: Enter the date and time you started working. Double
click to enter the current date and time.

Int.: Enter any interruption time in minutes.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 23


PSP0 Time Recording Log -2
Stop: Enter the date and time you stop working. Double click to
enter the current date and time.

Delta Time: The elapsed time is calculated automatically.

Comments: Describe an interruption, the task you were doing


or anything else that significantly affects your work

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 24


Defect Recording Log -1
Type: Select the defect type
Date: Enter the date the defect was found. Double-click to enter the
current date.
Phase Injected: Select or enter the phase during which you judge the
defect was injected.
Phase Removed: Enter the phase during which you found and fixed
the defect.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 25


Defect Recording Log -2
Fix time: Enter the time that you took both to find and 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.
Description: Enter explanation of what the defect was (not the
symptom, but the defect!).

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 26


Defect Type Standard
The defect type
standard provides a
general set of defect
categories.

While you may add


items or replace this
standard with your own,
it is generally wise to
stick with these simple
definitions until you
have data to guide your
changes.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 27


PSP0 Project Plan Summary
Enter your best estimate of
the total time that the
development will take.

The remaining items are


calculated automatically.
Time in phase
•Actual time
•To Date time
•To Date % time
Defects injected and removed
in phase
•Actual defects
•To Date defects
•To Date % defects

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 28


Completing a PSP Project
Select the project, e.g. Assignment 1.

Enter a date in the completed fields or click the completed


checkbox to enter today’s date.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 29


Measurement Hints
Gather and record data on your process as you work, not
afterwards. If you forget, promptly make your best guess.

Be precise and accurate.


• Track time in minutes.
• Count every defect.

You will be using your own data to manage your process;


gather data that is worthy of your trust.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 30


Defect Fix Time
Defect fix time is often misunderstood.

It is the time taken both to find and fix the defect.

Example

8:05 run compiler on p1a.c, “line 23 - type mismatch”


8:06 run editor on p1a.c
8:15 change declaration on line 6 from integer to real
8:16 run compiler on p1a.c, “no errors”

Q: What is the defect fix time?


A: 10 minutes

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 31


Defect Phase Injected
The injected phase for a defect depends
Requirements Plan
on the phase the program is in.

Example:
Design
Tom finds a major logic error in his
program during test. He has to redesign
and code part of his program. Code
Q: What phase is Tom’s program in?
A: Test
Compile
Tom finds a defect in the new code he
has written.
Test
Q: In what PSP phase was the defect
injected?
A: Test Program and
Postmortem
Project data

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 32


Measurement in the Cyclic Process
Considerations
• Include a program part identifier Requirements Plan
in the notes field on time log
entries.
• Add a similar annotation to Design
defect log entries. Module A Module B
• Use “Test” as the phase
removed when defects are
found in a previously tested Code Code
part.
Example Compile Compile
Tom finds and fixes an interface
error in part A of his program while Test
coding part B. Test

Q: In what PSP phase was this Program and


defect removed? Project data
Postmortem
A: Test

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 33


Messages to Remember
In using PSP0, your principal objective is to learn to gather
and report accurate and complete data on your work.

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

Until then, make your best effort to follow the PSP process
scripts and instructions.

© 2006 by Carnegie Mellon University January 2006 PSP I - Using PSP0 - 34

You might also like