PREFACE
Chapter 1 THE PERSONAL SOFTWARE PROCESS STRATEGY
1.1 The Logic for a Software Engineering Discipline
1.2 What is s Software Process?
1.3 Process Maturity
1.4 Your Personal Responsibilities
1.5 The Personal Software Process(PSP)Strategy
1.6 The Logic for the PSP
1.7 Productivity and the PSP
1.8 Caveats
1.9 Summary
References
Chapter 2 THE BASELINE PERSONAL PROCESS
2.1 The Baseline Process
2.2 Why Forms Are Helpful
2.3 The PSP Process Elements
2.4 The PSPO Process
2.5 PSPO Measures
2.6 Time Recording Log
2.7 Defect Recording Log
2.8 PSPO Project Plan Summary
2.9 Customizing the Initial Process
2.10 Summary
2.11 Exercises
References
Chapter 3 PLANNING I-THE PLANNING PROCESS
3.1 Why Make Plans
3.2 What Is a Plan
3.3 Contents of a Software Plan
3.4 Planning a Software Project
3.5 Producing a Quality Plan
3.6 Summary
3.7 Exercises
References
Chapter 4 PLANNING II-MEASURING SOFTWARE SIZE
4.1 Size Measures
4.2 A Size Measurement Framework
4.3 Establishing a Counting Standard
4.4 Using LOC Counts
4.5 Reuse Considerations
4.6 Line of Code Accounting
4.7 Calculating Productivity
4.8 LOC Counters
4.9 Summary
4.10 Exercises
References
Chapter 5 PLANNING III-ESTIMATING SOFTWARE SIZE
5.1 Background
5.2 Popular Estimating Methods
5.3 Proxy-based Estimating
5.4 The PROBE Size Estimating Method
5.5 Object Categories
5.6 Estimating Considerations
5.7 Summary
5.8 Exercises
References
Chapter 6 PLANNING IV-RESOURCE AND SCHEDULE ESTIMATING
6.1 Resource Planning
6.2 Estimating Development Time
6.3 Estimating Task Time
6.4 Combining Multiple Estimates
6.5 Using Multiple Regression
6.6 Schedule Estimating
6.7 Earned Value Tracking
6.8 Estimating Accuracy
6.9 Summary
6.10 Exercises
References
Chapter 7 MEASUREMENTS IN THE PERSONAL SOFTWARE PROCESS
7.1 Measurement Overview
7.2 Fundamental Process Measures
7.3 Goal-Question-Metric Paradigm
7.4 General PSP Objectives,Goals,and Questions
7.5 A GQM Example
7.6 Gathering Data
7.7 The Impact of Data Gathering
7.8 Establishing a Baseline for Your Personal Process
7.9 Summary
7.10 Exercises
References
Chapter 8 DESIGN AND CODE REVIEWS
8.1 What Are Reviews
8.2 Why Review Programs
8.3 Personal Reviews
8.4 Review Principles
8.5 Separate Design and Code Reviews
8.6 Design Review Principles
8.7 Review Measures
8.8 Checklists
8.9 Reviewing before of after You Compile
8.10 The Relationship between Reviews and Inspections
8.11 Summary
8.12 Exercises
References
Chapter 9 SOFTWARE QUALITY MANAGEMENT
9.1 What Is Software Quality?
9.2 The Economics of Software Quality
9.3 Developing a Quality Strategy
9.4 Process Benchmarking
9.5 Yield Management
9.6 Defect Removal Strategies
9.7 Defect Provention Strategies
9.8 Summary
9.9 Exercises
References
Chapter 10 SOFTWARE DESIGN
10.1 The Design Process
10.2 Design Quality
10.3 Structuring the Design Process
10.4 Design Notation
10.5 Design Templates
10.6 The Functional Specification Template
10.7 The State Specification Template
10.8 The Logic Specification Template
10.9 The Operational Scenario Template
10.10 Using Templates in Design
10.11 Design Guidelines
10.12 Summary
10.13 Exercises
References
Chapter 11 SCALING UP THE PERSONAL SOFTWARE PROCESS
11.1 Using Abstractions
11.2 The Stages of Product Size
11.3 Developing Large-scale Programs
11.4 A Potential Problem with Abstractions
11.5 The Development Strategy
11.6 PSP3
11.7 Summary
11.8 Exercises
References
Chapter 12 DESIGN VERIFICATION
12.1 Selecting Verfication Methods
12.2 Design Standards
12.3 Verfication Methods
12.4 Verifying the Object State Machine
12.5 Program Tracing
12.6 Verifying Program Correctness
12.7 Comments on Verfication Methods
12.8 Summary
12.9 Exercises
References
Chapter 13 DEFINING THE SOFTWARE PROCESS
13.1 Why Define Processes
13.2 Software Process Basics
13.3 Process Definition
13.4 Defining Process Phases
13.5 Process Development Considerations
13.6 Process Evolution
13.7 The Process-development Process
13.8 Summary
13.9 Exercises
References
Chapter 14 USING THE PERSONAL SOFTWARE PROCESS
14.1 Making Personal Commitments
14.2 Using the PSP in and Organization
14.3 The Personal Costs of a PSP
14.4 The Personal Benefits of a PSP
14.5 Coaching
14.6 The Responsible Software Professional
14.7 Your Future in Software Engineering
References
Appendix A STATISTICAL METHODS FOR THE PERSONAL SOFTWARE PROCESS
A1 Statistical Distributions
A2 Variance and Standard Deviation
A3 Correlation
A4 The Significance of a Correlation
A5 Numerical Integration
A6 Tests for Normality
A7 Linear Regression
A8 Linear Regression Prediction Interval
A9 Multiple Regression
A10 Multiple Regression Prodiction Interval
A11 Gauss's Method
A12 The Pareto Distribution
References
Appendix B SOFTWARE DESIGN NOTATION
B1 The Algebra of Sets
B2 Simplifying Boolean Expressions
B3 Karnaugh Maps
B4 Describing Program Functions
B5 The Elevator Example
B6 Function Completeness and Orthogonality
B7 Formally Describing Designs
B8 Answers to B2 Exercises
References
Appendix C THE PERSONAL SOFTWARE PROCESS CONTENTS
C1 PSP0 Process Contents
C2 PSP0 Process Contents
C3 PSP1 Process Contents
C4 PSP1 Process Contents
C5 PSP2 Process Contents
C6 PSP2 Process Contents
C7 PSP3 Process Contents
Appendix D THE PERSONAL SOFTWARE PROCESS EXERCISES
D1 Guidelines for Doing the Exercises
D2 The Programming Exercises
D3 Program Development Specifications
D4 Report Exercises
D5 Assignment Plans-Suggestions for the Instructor
INDEX
PSP SUPORT MATERIALS AVAILABLE ON DISKETTE(ORDER FORM)