本書系統(tǒng)描述了個體軟件過程(PSP),并且解釋了按可預(yù)測的進(jìn)度交付優(yōu)良產(chǎn)品的實(shí)踐和方法。讀者將會了解一個規(guī)范的軟件工程過程所包括的具體內(nèi)容。本書通過14章分步介紹了PSP方法。實(shí)用性與可讀性較強(qiáng),可作為高等學(xué)校計(jì)算機(jī)軟件工程課程的教材,也可作為工程技術(shù)人員自學(xué)個體軟件過程的教材,同時(shí)也是進(jìn)行軟件過程改善和能力成熟度模型SW-CMM評估的重要參考資料。隨著軟件工程專業(yè)的發(fā)展和成熟,個體軟件過程(PSP)得到了廣泛認(rèn)可和應(yīng)用實(shí)踐。本書系統(tǒng)描述了個體軟件過程(PSP),并且解釋了按可預(yù)測的進(jìn)度交付優(yōu)良產(chǎn)品的實(shí)踐和方法。讀者將會了解一個規(guī)范的軟件工程過程所包括的具體內(nèi)容。本書通過14章分步介紹了PSP方法。第1章描述了PSP整體原理及介紹策略。第2章和第3章解釋了如何遵循一個定義的過程和怎樣收集和使用用于管理程序開發(fā)作業(yè)的數(shù)據(jù)。第4至第7章介紹了估算和計(jì)劃。第8章至第12章闡述了質(zhì)量管理和設(shè)計(jì)。第13章描述了如何將PSP方法用于各種工作。第14章描述如何將PSP方法用于TSP過程,以及TSP指導(dǎo)經(jīng)過PSP訓(xùn)練的軟件工程師怎樣在一個項(xiàng)目中使用這些方法。本書實(shí)用性與可讀性較強(qiáng),可作為高等學(xué)校計(jì)算機(jī)軟件工程課程的教材,也可作為工程技術(shù)人員自學(xué)個體軟件過程的教材,同時(shí)也是進(jìn)行軟件過程改善和能力成熟度模型SW-CMM評估的重要參考資料。此書作為SEI 的PSP Body of Knowledge(BOK)的學(xué)習(xí)指導(dǎo)教材,為掌握PSP知識體提供必要的幫助。本書還可供軟件過程改進(jìn)人員、軟件開發(fā)項(xiàng)目經(jīng)理、程序員閱讀參考。
作者簡介
暫缺《PSP軟件工程師的自我改進(jìn)過程(英文版)》作者簡介
圖書目錄
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 APPENDIX