PSP Lecture 1

advertisement
The Personal Software
Process (PSP)
Lecture #1
Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213
Sponsored by the U.S. Department of
Defense
Course
Text
•“A Discipline for Software Engineering”
Watts S. Humphrey
Software Engineering
What is it?
What is a process?
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
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
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
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
What is this?
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.
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?
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.
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
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
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
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
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...
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.
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
Repeatable
Basic project controls
Quality problems
No framework for orderly improvement
Fault data is being collected
Defined
Commitment to software process evaluation
and improvement
Appropriate software engineering standards
and methods are in place
Strong qualitative understanding of the
process
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
Optimizing
Process improvement feed-back and feedforward controls
Rigorous defect causal analysis and defect
prevention
Proactive management
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
The CMM and the PSP - 2
5
4
3
2
1
Level 1
Level 5:
Process change management*
Technology innovation*
Defect prevention*
Level 4
Quality management*
Process measurement and analysis*
Level 3
Peer reviews*
Intergroup coordination
Software product engineering*
Integrated software management*
Training program
Organization process definition*
Organization process focus*
Level 2
Software configuration management
Software quality assurance
Software subcontract management
Software project tracking and oversight*
Software project planning*
Requirements management
*PSP key process areas
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.
The CMM and the PSP - 4
Management
S
E
P
G
The
Software
Engineering
Work
the Engineers
S
Q
A
/
S
C
M
SEPG - software engineering process group
SQA - software quality assurance
SCM - software configuration management
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
PSP Overview - 2
PSP3
Cyclic development
PSP2
PSP2.1
Code reviews
Design reviews
Design templates
PSP1
Size estimating
Test report
PSP0
Current process
Time recording
Defect recording
Defect type standard
PSP1.1
Task planning
Schedule planning
PSP0.1
Coding standard
Size measurement
Process improvement
proposal (PIP)
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
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.
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
Compile T ime Range
% of Total Time
30
25
14 hours to 3 hours
20
Max
15
Avg
10
Min
5
0
1
2
3
4
5
6
7
8
Program Number
9 10
Defects Found in T est - Range
39 Errors to 1 on average
180
Defects/KLOC
160
140
120
Max
100
Avg
80
Min
60
40
20
0
1
2
3
4
5
6
7
8
9 10
Progra m Numbe r
LOC/Hour
Productivity Range
Big drop in defects
Big potential increase
In productivity
100
90
80
70
60
50
40
30
20
10
0
Max
Avg
Min
1
2
3
4
5
6
7
8
Program Number
9 10
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.
The PSP0 Process Elements
A process script
A project plan summary form
A time recording log
A defect reporting log
A defect type standard
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.
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.
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.
Table C14 PSP0 Project Plan Summary
Student
Program
Instructor
Time in Phase (min.)
Planning
Design
Code
Compile
Test
Postmortem
Total
Date
Program #
Language
Plan
Actual
To Date
To Date %
Defects Injected
Planning
Design
Code
Compile
Test
Total Development
Actual
To Date
To Date %
Defects Removed
Planning
Design
Code
Compile
Test
Total Development
After Development
Actual
To Date
To Date %
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.
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.
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.
Table C16 Time Recording Log
Student
Instructor
Date
Start
Date
Program #
Stop
Interruption
Time
Delta
Time
Phase
Comments
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.
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
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.
Defect Types
10 Documentation
20 Syntax
30 Build, Package
40 Assignment
50 Interface
60
70
80
90
100
Checking
Data
Function
System
Environment
Table C18 Defect Recording Log
Student
Instructor
Date
Date
Program #
Number
Type
Inject
Remove
Fix Time
Fix Defect
Number
Type
Inject
Remove
Fix Time
Fix Defect
Number
Type
Inject
Remove
Fix Time
Fix Defect
Number
Type
Inject
Remove
Fix Time
Fix Defect
Number
Type
Inject
Remove
Fix Time
Fix Defect
Number
Type
Inject
Remove
Fix Time
Fix Defect
Description:
Date
Description:
Date
Description:
Date
Description:
Date
Description:
Date
Description:
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.
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.
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.
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
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.
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:
 x
n
Std   
i
 xavg 
2
i1
n1
i is an index to the numbers, and Xavg is the
average value of the numbers.
Suggestions
Keep personal copies of what you turn in
Submit your programs on diskettes or to
Chaoyang by e-mail.
Chaoyang@cs.utk.edu
Software must be a windows executable!
Please keep accurate track of time.
YOU WILL NOT BE GRADED
ON YOUR TIME OR
QUALITY!!
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.
Hours
Actual T ime Range
20
18
16
14
12
10
8
6
4
2
0
Max
Avg
Min
1
2
3
4
5
6
7
8
Program Number
9 10
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.
PSP0 Evaluation Criteria
Your process report must be:
•complete
•legible
•in the specified order
Your process data must be:
•accurate
•precise
•self-consistent
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.
Download