FOREWORD PREFACE PART 1: SOFTWARE PROCESS MATURITY 1. A SOFTWARE MATURITY FRAMEWORK 1.1 Software Process Improvement 1.2 Process Maturity Levels 1.3 People in the Optimizing Process 1.4 The Need for the Optimizing Process 1 .5 Summary References
2. THE PRINCIPLES OF SOFTWARE PROCESS CHANGE 2.1 Process in Perspective 2.2 The Six Basic Principles 2.3 Some Common Misconceptions about the Software Process 2.4 A Strategy for Implementing Software Process Change 2.5 Summary References
3. SOFTWARE PROCESS ASSESSMENT 3.1 Assessment Overview 3.2 Assessment Phases 3.3 Five Assessment Principles 9.4 The Assessment Process 3.5 Assessment Conduct 3.6 Implementation Considerations 3.7 Summary References
4. THE INITIAL PROCESS 4.1 The Nature of the Initial Process 4.2 A Case Study of a Chaotic Project 4.3 Why Software Organizations Are Chaotic 4.4 Software Process Entropy 4.5 The Way Out 4.6 Summary References
PART U: THE REPEATABLE PROCESS 5. MANAGING SOFTWARE ORGANIZATIONS 5.1 Commitment Discipline 5.2 The Management System 5.a Establishing a Project Management System 5.4 Summary References
6. THE PROJECT PLAN 6.1 Project Planning Principles 6.2 Project Plan Contents 6.3 Size Measures 6.4 Estimating 6.5 Productivity Factors 6.6 Scheduling 6.7 Project Tracking 6.8 The Development Plan 6.9 Planning Models 6.10 Final Considerations 6.11 Summary References
7. SOFTWARE CONFIGURATION MANAGEMENT-PART 7.1 The Need for Configuration Management 7.2 Software Product Nomenclature 7.3 Basic Configuration Management Functions 7.4 Baselines 7.5 Configuration Management Responsibilities 7.6 The Need for Automated Tools 7.7 Summary References
8. SOFTWARE QUALITY ASSURANCE 8.1 Quality Management 8.2 The Role of SQA 8.3 Launching the SQA Program 8.4 The SQA Plan 8.5 SQA Considerations 8.6 SQA People 8.7 independent Verification and Validation 8.8 Summary References
PART III: THE DEFINED PROCESS 9. SOFTWARE STANDARDS 9.1 Definitions 9.2 The Reasons for Software Standards 9.3 Benefits of Standards 9.4 Examples of Some Major Standards 9.5 Establishing Software Standards 9.6 Standards Versus Guidelines 9.7 Summary References
10. SOFTWARE INSPECTIONS 10.1 Types of Reviews 10.2 Inspection Objectives 10.3 Basic Inspection Principles 10.4 The Conduct of Inspections 10.5 Inspection Training 10.6 Reports and Tracking 10.7 Other Considerations 10.8 Initiating an Inspection Program 10.9 Future Directions 10.10 Summary References
11. SOFTWARE TESTING 11.2 Software Testing Principles 11.a Types of Software Tests 11.4 Test Planning 11.5 Test Development 11.6 Test Execution and Reporting 11.7 Test Tools and Methods 11.8 Real-Time Testing 11.9 The Test Organization 11.10 Summary References
12. SOFTWARE CONFIGURATION MANAGEMENT(CONTINUED) 12.1 The software Configuration Management Plan 12.2 Software Configuration Management Questions 12.3 SCM Support Functions 12.4 The Requirements Phase 12.5 Design Control 12.6 The Implementation Phase 12.7 Operational Data 12.8 The Test Phase 12.9 SCM for Tools 12.10 Configuration Accounting 12.11 The Software Configuration Audit 12.12 Summary References
13. DEFINING THE SOFTWARE PROCESS 13.1 Process Standards 13.2 Definitions 13.3 Levels of Software Process Models 13.4 Prescriptive and Descriptive Uses of Models 13.5 A Software Process Architecture 13.6 Critical Software Process Issues 13.7 A Preliminary Process Architecture 13.8 Larger Process Models 13.9 Detailed Process Models 13.10 Entity Process Models 13.11 Process Model Views 13.12 Establishing and Using a Process Definition 13.13 Basic Process Guidelines 13.14 Summary References
14. THE SOFTWARE ENGINEERING PROCESS GROUP 14.1 Changing the Software Process 14.2 The Role of the SEPG 14.3 Establishing Standards 14.4 The Process Database 14.5 Technology Insertion Focal Point 14.6 Education and Training 14.7 Process Consultation 14.8 Process Status and Assessment 14.9 Establishing the SEPG 14.10 Summary References
PART IV: THE MANAGED PROCESS 15. DATA GATHERING AND ANALYSIS 15.1 The Principles of Data Gathering 15.2 The Data Gathering Process 15.3 Software Measures 15.4 Data Analysis 15.5 Other Considerations 15.6 Summary References
PART V: THE OPTIMIZING PROCESS 17. DEFECT PREVENTION 17.1 Defect Prevention Not a New Idea 17.2 The Principles of Software Defect Prevention 17.3 Process Changes for Defect Prevention 17.4 Defect Prevention Considerations 17.5 Management's Role 17.6 Summary References
18. AUTOMATING THE SOFTWARE PROCESS 18.1 The Need for Software Automation 18.2 What to Automate? 18.3 Development Environments 18.4 Organizational Plans to Automate 18.5 Technology Transition 18.6 Special Considerations 18.7 Productivity 18.8 Justification Considerations 18.9 Summary References
19. CONTRACTING FOR SOFTWARE 19.1 Software Contracting 19.2 Negotiating a Software Contract 19.a The Principies of Effective Software Contract Management 19.4 Managing Software Contracts 19.5 Process Certification 19.6 Technical Leadership 19.7 Summary References
20. CONCLUSION 20.1 A Framework for Software Process Change 20.2 Managing Resistance to Software Process Change 20.3 What Do I Do Next? 20.4 Final Remarks References
APPENDIXES A. A SOFTWARE PROCESS MATURITY FRAMEWORK B. SOFTWARE ENGINEERING ASSESSMENT AGREEMENT C. CONDUCTING SOFTWARE INSPECTIONS