PSP: A Self-Improvement Process for Software Engineers (SEI Series in Software Engineering) / Edition 1

PSP: A Self-Improvement Process for Software Engineers (SEI Series in Software Engineering) / Edition 1

4.8 6
by Watts S. Humphrey

ISBN-10: 0321305493

ISBN-13: 9780321305497

Pub. Date: 03/11/2005

Publisher: Addison-Wesley

Improve your software development process in a modern context with PSP from the SEI and Watts Humphrey, the foremost expert on this topic. An industrial, real-world update; the book will be the required standard for learning the SEI-led initiaitive of PSP in a modern software development environment Advice that yields improved efficiency and effectiveness in

…  See more details below


Improve your software development process in a modern context with PSP from the SEI and Watts Humphrey, the foremost expert on this topic. An industrial, real-world update; the book will be the required standard for learning the SEI-led initiaitive of PSP in a modern software development environment Advice that yields improved efficiency and effectiveness in programming from the foremost expert in software process Product launch at SEPG in Seattle (March 2005)

Product Details

Publication date:
SEI Series in Software Engineering Series
Edition description:
New Edition
Sales rank:
Product dimensions:
6.50(w) x 9.56(h) x 0.99(d)

Table of Contents

Preface xiii

Chapter 1: The Personal Process Strategy 1

1.1. The PSP’s Purpose 3

1.2. The Logic for a Software Engineering Discipline 4

1.3. Using Disciplined Development Practices 6

1.4. Operational Processes 6

1.5. Defining and Using a Personal Process 7

1.6. Learning to Use a Personal Process 8

1.7. Preparing for the Team Software Process 9

1.8. Summary 9

Reference 10

Chapter 2: The Baseline Personal Process 11

2.1. What Is a Process? 12

2.2. Defining Your Own Process 13

2.3. Baseline Process Contents 14

2.4. Why Forms Are Helpful 16

2.5. The PSP Process Elements 17

2.6. The PSP0 Process 18

2.7. PSP0 Measures 20

2.8. Time Recording 21

2.9. Defect Recording 24

2.10. The PSP0 Project Plan Summary 30

2.11. The Compile Phase 31

2.12. Incremental Development 32

2.13. PSP Tool Support 34

2.14. Summary 34

2.15. Exercises 34

Chapter 3: Measuring Software Size 35

3.1. Size Measures 35

3.2. Establishing a Database Counting Standard 40

3.3. Establishing a Line-of-Code Counting Standard 40

3.4. Size Accounting 42

3.5. Using Size Data 45

3.6. Calculating Productivity 47

3.7. Size Counters 48

3.8. Other Size Measures 53

3.9. Summary 54

3.10. Exercises 54

References 55

Chapter 4: Planning 57

4.1. The Planning Process 58

4.2. Why Make Plans? 59

4.3. What Is a Plan? 60

4.4. The Contents of a Software Plan 60

4.5. Planning a Software Project 62

4.6. The Conceptual Design 63

4.7. Plan Quality 65

4.8. Planning Issues 65

4.9. Summary 66

Reference 67

Chapter 5: Software Estimating 69

5.1. Size Estimating Principles 69

5.2. The Conceptual Design 70

5.3. Proxy-Based Estimating 71

5.4. Using Proxies in Estimating 75

5.5. Producing the Relative-Size Table 78

5.6. Estimating Considerations 80

5.7. Summary 84

Chapter 6: The PROBE Estimating Method 85

6.1. Estimating from Data 85

6.2. Proxy-Based Estimating 87

6.3. Estimating with Limited Data 95

6.4. An Estimating Example 100

6.5. Estimating Nonprogramming Tasks 102

6.6. Considerations in Using PROBE 105

6.7. Summary 108

6.8. Exercises 108

Chapter 7: Software Planning 109

7.1. Plan Requirements 109

7.2. Project and Period Plans 111

7.3. Producing the Schedule 113

7.4. Making the Schedule 115

7.5. Earned Value 119

7.6. An Earned Value Example 120

7.7. Comments on the EV Example 123

7.8. Estimating Accuracy 125

7.9. The Prediction Interval 126

7.10. Alerting Management to Changes 128

7.11. Planning Considerations 129

7.12. Summary 131

7.13. Exercises 132

References 132

Chapter 8: Software Quality 133

8.1. The PSP Quality Strategy 135

8.2. What Is Software Quality? 135

8.3. The Economics of Software Quality 136

8.4. Defect Types 141

8.5. Personal Quality Practices 142

8.6. Quality Measures 143

8.7. Quality Management 153

8.8. Personal Quality Management 154

8.9. Managing Product Quality 156

8.10. PSP Improvement Practices 157

8.11. Defect Prevention 158

8.12. Summary 160

References 161

Chapter 9: Design and Code Reviews 163

9.1. What Are Reviews? 164

9.2. Why Review Programs? 164

9.3. Review Principles 168

9.4. The PSP Code Review Process 173

9.5. The Code Review Checklist 176

9.6. Design Reviews 181

9.7. Design Review Principles 183

9.8. Review Measures 187

9.9. Review Issues 194

9.10. Summary 201

9.11. Exercises 202

References 202

Chapter 10: Software Design 203

10.1. What Is Design? 204

10.2. Why Design? 206

10.3. The Design Process 207

10.4. Design Levels 210

10.5. Design and Development Strategies 216

10.6. Design Quality 220

10.7. Summary 223

References 224

Chapter 11: The PSP Design Templates 225

11.1. Design Representation 226

11.2. The Design Templates 229

11.3. The Operational Specification Template (OST) 230

11.4. The Functional Specification Template (FST) 233

11.5. The State Specification Template (SST) 236

11.6. The Logic Specification Template (LST) 240

11.7. A State-Machine Design Example 241

11.8. Using the PSP Design Templates 246

11.9. Using the Design Templates in Large-Scale Design 248

11.10. Summary 250

11.11. Exercises 250

References 250

Chapter 12: Design Verification 253

12.1. Why Verify Programs? 254

12.2. Design Standards 257

12.3. Execution-Table Verification 258

12.4. Trace-Table Verification 262

12.5. Verifying State Machines 265

12.6. Loop Verification 271

12.7. Other Analytical Verification Methods 277

12.8. Verification Considerations 280

12.9. Summary 284

12.10. Exercises 284

References 285

Chapter 13: Process Extensions 287

13.1. Customizing the Development Process 289

13.2. Why Define a Process? 290

13.3. The PSP Process Strategy 291

13.4. Defining a Process 291

13.5. Process Evolution 294

13.6. Example Processes 298

13.7. Process Development Considerations 306

13.8. Summary 307

13.9. Exercises 308

References 308

Chapter 14: Using the Personal Software Process 309

14.1. Development Challenges 309

14.2. The Team Software Process (TSP) 313

14.3. The Logic of the TSP 314

14.4. Teambuilding 314

14.5. The TSP Launch Process 316

14.6. The TSP Coach 317

14.7. Managing Your Own Project 318

14.8. TSP Results 322

14.9. The Rewards of Teamwork 322

14.10. The TSP Team of One 323

14.11. Your Future in Software Engineering 326

References 327

Index 329

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network


Most Helpful Customer Reviews

See all customer reviews >

PSP: A Self-Improvement Process for Software Engineers (SEI Series in Software Engineering) 4.8 out of 5 based on 0 ratings. 4 reviews.
Guest More than 1 year ago
The intent is to reduce the defect rate in software. With an emphasis on doing this when we have several million lines of source code. All the more so if the application might involve safety issues or be critical to its company's bottom line. Humphrey points out that the writing of such large code might typically follow practices used for code bodies orders of magnitude smaller. But that this leads to far too many defects. He explains that PSP offers a discipline for the individual programmer to follow. And how this can be scaled to a team of programmers. PSP stresses investing in design time and review time, relative to the actual coding time. It's big on writing down the times spent on these stages, so that you have actual quantities to see and from which to get metrics. You cannot improve what you cannot measure. The review time is considered a good investment, for finding bugs here is inherently more productive than relying on a downstream testing stage or user feedback. Perhaps the most contentious aspect is whether to do a review of your code before compiling it?! Many will not. After all, the compiler can swiftly find the syntax errors. Why waste time looking for these beforehand? Isn't this a retrograde step? The book's rejoinder is that syntax errors might be considered to be distributed like more serious logic errors. Hence, if you review before compiling, and find 80% of the syntax errors that the compiler finds, then perhaps you only also found 80% of the logic errors. Opps? A simple and ingenious self diagnostic tool. But despite the logic of this, water will flow uphill before any significant portion of programmers adopts this method. Pressing 'make' or its equivalent to do a compilation is simply too easy. The book is on far more plausible ground describing the other aspects of PSP.
Anonymous More than 1 year ago
Never mind not here
Anonymous More than 1 year ago
Great! -Jaysoar
Anonymous More than 1 year ago
"There are four Clans of wild cats. These Clans are WindClan, RiverClan, ShadowClan, and my previous Clan, ThunderClan." Bluestar stops for a moment. "Wait, previous? Which Clan are you in now?" I ask. "StarClan. StarClan is a place for the loyal who have died." Alarm makes my....fur....prickle as she says this. "You're dead?" I gasp. But I quickly calm myself, and even laugh. "This is nothing but a dream! A stupid, stupid dream!" I say in between the crazy giggles. I laugh for a long time. Long enough that my stomach starts to hurt, my eyes are tearing up, and I'm gasping for breath. But I eventually stop, and my somber mood sets in. "No....this isn't a dream. Nightmare. This is a nightmare." I say quietly. The tears are now threatining to spill over. I look up to Bluestar. "Why? Why have you done this to me?" Oddly enough, I feel betrayed. But I shouldn't. Anger, yes. Confusion, yes. But not betrayal. Because for there to be betrayal, one has to trust another. And I've only known this cat for not even an hour. "Go. Find a Clan, and join." She says softly. She touches her nose to my forehead, and a warm, glowing feeling settles over my body, only lasting for a few moments. I look up to her, surprised to find that she seems bigger. I step back, towards the lake, and find that my new body seems to have shrunk. And, around my face in particular, it looks as though my fur has grown more fuzzy and soft. I turn back around just in time to see Bluestar disappearing. "No! Wait! Bluestar, come back!" I shriek, pouncing on the place where she had been. I grunt when I end up landing chin-first, a jolt of pain searing through my jaw. I lay there for a few moments, unsure of what to do. I really wish that I hadn't gone all insane, so that Bluestar could have explained more. But would she have? I'm honestly not sure if she's my ally.....or my enemy. And if she's the latter, why would she give me information that could help me get back to where I was before? But perhaps if I find one of these Clans, perhaps then some more of this confusing puzzle could be revealed. Maybe I could join....StreamClan, was it? I can't remember. Something to do with liquid, I was sure. I shrug to myself and pick a random direction, heading across clear moorland, no trees or growth of any kind in my sight. Just as I'm nearing a forest, after what seems like hours of walking, I hear an angry yowl behind me, and turn to see a group of cats racing towards me at full speed.~~~~~~~~~~Originally, I was going to have Bluestar explain it ALL. Then I realized that I was giving the info away too fast, and have now decided to slowly give it away over the chapters. >:3 Deal with it. Also, I want to thank everyone who has posted good reviews of my fanfic! Thanks so much! And a particular thank you belongs to Min for giving me some great name ideas! Hope you don't mind if I use Raindapple in a RP, I think it's a really cool name! Also, if you have a question or want to hear any news involving this story(i.e. when/if a new chapter is up), then go to 'kate and the clans' first result!