Foreword |
|
xix | |
Preface |
|
xxi | |
Acknowledgments |
|
xxvii | |
About the Authors |
|
xxxi | |
|
Chapter 1 Defining Software Quality and Economic Value |
|
|
1 | (34) |
|
|
1 | (7) |
|
Why Is Software Quality Important? |
|
|
1 | (7) |
|
Defining Software Quality |
|
|
8 | (9) |
|
Defining Economic Value and Defining the Value of Software Quality |
|
|
17 | (16) |
|
The Economic Value of Software and Quality to Enterprises that Build Internal Software for Their Own Use |
|
|
19 | (3) |
|
The Economic Value of Software and Quality to Internal Software Users |
|
|
22 | (2) |
|
The Economic Value of Software and Quality to Commercial Software Vendors |
|
|
24 | (2) |
|
The Economic Value of Software and Quality to COTS Users and Customers |
|
|
26 | (2) |
|
The Economic Value of Software and Quality to Embedded Software Companies |
|
|
28 | (2) |
|
The Economic Value of Software and Quality to Embedded Equipment Users |
|
|
30 | (2) |
|
The Economic Value of Software and Software Quality to Other Business Sectors |
|
|
32 | (1) |
|
Multiple Roles Occurring Simultaneously |
|
|
33 | (1) |
|
|
33 | (2) |
|
Chapter 2 Estimating and Measuring Software Quality |
|
|
35 | (84) |
|
|
35 | (4) |
|
Using Function Point Metrics for Defect Potentials |
|
|
39 | (1) |
|
Software Defect Potentials |
|
|
39 | (32) |
|
The Special Case of Software Requirements |
|
|
45 | (5) |
|
The Origins of Software Requirements |
|
|
50 | (2) |
|
The Size, Structure, and Completeness of Software Requirements |
|
|
52 | (3) |
|
Minimizing Software Requirements Defects |
|
|
55 | (9) |
|
Conclusions about Software Requirements Defects |
|
|
64 | (1) |
|
The Special Case of Coding Defects |
|
|
65 | (6) |
|
Estimating Software Defect Prevention |
|
|
71 | (3) |
|
Estimating Software Defect Detection and Defect Removal |
|
|
74 | (3) |
|
Measuring Application Structural Quality |
|
|
77 | (11) |
|
|
78 | (1) |
|
Measuring Performance Efficiency |
|
|
79 | (1) |
|
|
80 | (1) |
|
Measuring Maintainability |
|
|
81 | (2) |
|
|
83 | (1) |
|
Summary of Application Structural Quality Measurement Attributes |
|
|
83 | (5) |
|
Examples of Structural Quality Assessments |
|
|
88 | (7) |
|
Bypassing the Architecture |
|
|
88 | (2) |
|
Failure to Control Processing Volumes |
|
|
90 | (1) |
|
Application Resource Imbalances |
|
|
91 | (1) |
|
|
92 | (1) |
|
Lack of Defensive Mechanisms |
|
|
93 | (1) |
|
Desiderata for Systems Evaluating Structural Quality |
|
|
94 | (1) |
|
Three Problems That Distort Software Economic Analysis |
|
|
95 | (22) |
|
Leakage from Software Historical Data |
|
|
97 | (8) |
|
Economic Problems with Lines of Code (LOC) Metrics |
|
|
105 | (5) |
|
Economic Problems with Cost-per-Defect Metrics |
|
|
110 | (1) |
|
|
111 | (1) |
|
|
111 | (3) |
|
|
114 | (1) |
|
Useful Rules of Thumb for Predicting Software Defect Potentials |
|
|
115 | (2) |
|
Summary and Conclusions on Software Quality Estimation and Measurement |
|
|
117 | (2) |
|
Chapter 3 Software Defect Prevention |
|
|
119 | (72) |
|
|
119 | (16) |
|
The Early History of Defect Prevention Studies in the 1970s at IBM |
|
|
120 | (5) |
|
Synergistic Combinations of Defect Prevention Methods |
|
|
125 | (2) |
|
Defect Potentials and Defect Origins |
|
|
127 | (5) |
|
Defect Prevention, Patterns, and Certified Reusable Materials |
|
|
132 | (1) |
|
Software Defect Prevention and Application Size |
|
|
133 | (2) |
|
Analysis of Defect Prevention Results |
|
|
135 | (53) |
|
|
136 | (1) |
|
Automated Quality Predictions |
|
|
136 | (1) |
|
Benchmarks of Software Quality Data |
|
|
137 | (1) |
|
Capability Maturity Model Integrated (CMMI) |
|
|
138 | (2) |
|
|
140 | (2) |
|
|
142 | (4) |
|
|
146 | (3) |
|
Cyclomatic Complexity Measures (and Related Complexity Measures) |
|
|
149 | (7) |
|
Defect Measurements and Defect Tracking |
|
|
156 | (3) |
|
|
159 | (5) |
|
Function Point Quality Measures |
|
|
164 | (7) |
|
ISO Quality Standards, IEEE Quality Standards, and Other Industry Standards |
|
|
171 | (3) |
|
Quality Function Deployment (QFD) |
|
|
174 | (3) |
|
|
177 | (7) |
|
|
184 | (1) |
|
|
185 | (3) |
|
Summary and Conclusions of Software Defect Prevention |
|
|
188 | (3) |
|
Chapter 4 Pretest Defect Removal |
|
|
191 | (88) |
|
|
191 | (5) |
|
Small Project Pretest Defect Removal |
|
|
196 | (5) |
|
Large System Pretest Defect Removal |
|
|
201 | (7) |
|
Analysis of Pretest Defect Removal Activities |
|
|
208 | (69) |
|
|
208 | (1) |
|
|
209 | (2) |
|
Automated Text Checking for Documents |
|
|
211 | (9) |
|
|
220 | (2) |
|
|
222 | (2) |
|
|
224 | (2) |
|
|
226 | (5) |
|
|
231 | (4) |
|
Client Reviews of Specifications |
|
|
235 | (2) |
|
Independent Verification and Validation (IV&V) |
|
|
237 | (2) |
|
Software Quality Assurance (SQA) Reviews |
|
|
239 | (7) |
|
|
246 | (3) |
|
Inspections (Requirements, Architecture, Design, Code, and Other Deliverables) |
|
|
249 | (16) |
|
User Documentation Editing and Proofreading |
|
|
265 | (2) |
|
Automated Static Analysis of Source Code |
|
|
267 | (10) |
|
Summary and Conclusions about Pretest Defect Removal |
|
|
277 | (2) |
|
Chapter 5 Software Testing |
|
|
279 | (68) |
|
|
279 | (65) |
|
Black Box and White Box Testing |
|
|
291 | (2) |
|
Functional and Nonfunctional Testing |
|
|
293 | (1) |
|
Automated and Manual Testing |
|
|
293 | (1) |
|
Discussion of the General Forms of Software Testing |
|
|
294 | (1) |
|
|
294 | (1) |
|
|
295 | (1) |
|
Extreme Programming (XP) Unit Testing |
|
|
296 | (1) |
|
|
296 | (1) |
|
|
297 | (2) |
|
|
299 | (1) |
|
|
300 | (1) |
|
|
301 | (2) |
|
The Specialized Forms of Software Testing |
|
|
303 | (1) |
|
Stress or Capacity Testing |
|
|
303 | (1) |
|
|
304 | (1) |
|
|
304 | (4) |
|
|
308 | (1) |
|
|
309 | (1) |
|
|
310 | (1) |
|
|
311 | (1) |
|
|
311 | (1) |
|
|
312 | (1) |
|
|
313 | (1) |
|
Service Oriented Architecture (SOA) Testing |
|
|
313 | (1) |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
The Forms of Testing Involving Users or Clients |
|
|
316 | (1) |
|
|
317 | (1) |
|
|
317 | (1) |
|
|
318 | (1) |
|
|
319 | (1) |
|
Customer Acceptance Testing |
|
|
320 | (1) |
|
|
320 | (1) |
|
|
321 | (2) |
|
Errors or Bugs in Test Cases |
|
|
323 | (1) |
|
Numbers of Testing Stages for Software Projects |
|
|
324 | (1) |
|
Testing Pattern Variations by Industry and Type of Software |
|
|
325 | (4) |
|
Testing Pattern Variations by Size of Application |
|
|
329 | (2) |
|
Testing Stages Noted in Lawsuits Alleging Poor Quality |
|
|
331 | (1) |
|
Using Function Points to Estimate Test Case Volumes |
|
|
332 | (3) |
|
Using Function Points to Estimate the Numbers of Test Personnel |
|
|
335 | (2) |
|
Using Function Points to Estimate Testing Effort and Costs |
|
|
337 | (5) |
|
Testing by Developers or by Professional Test Personnel |
|
|
342 | (2) |
|
Summary and Conclusions on Software Testing |
|
|
344 | (3) |
|
Chapter 6 Post-Release Defect Removal |
|
|
347 | (86) |
|
|
347 | (62) |
|
Post-Release Defect Severity Levels |
|
|
349 | (2) |
|
Severity Levels from a Structural Quality Perspective |
|
|
351 | (7) |
|
Maintainability of Software |
|
|
358 | (4) |
|
Defect Discovery Rates by Software Application Users |
|
|
362 | (1) |
|
|
363 | (2) |
|
Abeyant Defects That Occur Under Unique Conditions |
|
|
365 | (1) |
|
Duplicate Defects Reported by Many Customers |
|
|
366 | (1) |
|
First-Year Defect Discovery Rates |
|
|
367 | (1) |
|
Measuring Defect Detection Efficiency (DDE) and Defect Removal Efficiency (DRE) |
|
|
368 | (2) |
|
Variations in Post-Release Defect Reports |
|
|
370 | (4) |
|
Variations in Methods of Reporting Software Defects |
|
|
374 | (4) |
|
Who Repairs Defects after They Are Reported? |
|
|
378 | (1) |
|
Case Study 1 Development Personnel Tasked with Maintenance Defect Repairs |
|
|
379 | (1) |
|
Case Study 2 Maintenance Specialists Handle Defect Repairs |
|
|
380 | (1) |
|
Comparing the Case Studies |
|
|
381 | (1) |
|
Litigation Due to Poor Quality |
|
|
381 | (3) |
|
Cost Patterns of Post-Release Defect Repairs |
|
|
384 | (1) |
|
Software Occupation Groups Involved with Defect Repairs |
|
|
385 | (7) |
|
Examining the Independent Variables of Post-Release Defect Repairs |
|
|
392 | (1) |
|
The Size of the Application in Function Points |
|
|
393 | (11) |
|
Error-Prone Modules in Software Applications |
|
|
404 | (5) |
|
User and Industry Costs from Post-Release Defects |
|
|
409 | (22) |
|
Impact of Security Flaws on Corporations and Government Agencies |
|
|
414 | (2) |
|
Customer Logistics for Defect Reports and Repair Installation |
|
|
416 | (1) |
|
Case Study 1 A Small Application by a Small Company |
|
|
417 | (3) |
|
Case Study 2 A Large Application by a Large Company |
|
|
420 | (5) |
|
Measurement Issues in Maintenance and Post-Release Defect Repairs |
|
|
425 | (6) |
|
Summary and Conclusions on Post-Release Defects |
|
|
431 | (2) |
|
Chapter 7 Analyzing the Economics of Software Quality |
|
|
433 | (112) |
|
|
433 | (2) |
|
The Economic Value of Software |
|
|
435 | (25) |
|
Methods of Measuring Value |
|
|
435 | (8) |
|
Funding Approval and Application Size |
|
|
443 | (1) |
|
The Impact of Software Construction Difficulties on Software Quality |
|
|
444 | (5) |
|
Revenue Generation from Software |
|
|
449 | (4) |
|
Difference Between Software and Other Industries |
|
|
453 | (1) |
|
Cost Reduction from Software |
|
|
454 | (6) |
|
Economic Impact of Low-Quality and High-Quality Software |
|
|
460 | (81) |
|
Software Development and Maintenance |
|
|
461 | (1) |
|
Software as a Marketed Commodity |
|
|
462 | (1) |
|
Software as a Method of Human Effort Reduction |
|
|
463 | (1) |
|
Software and Innovative New Kinds of Products |
|
|
463 | (2) |
|
Technical Debt---A Measure of the Effect of Software Quality on Software Costs |
|
|
465 | (5) |
|
A Framework for Quantifying Business Value |
|
|
470 | (6) |
|
Moving Beyond Functional Quality |
|
|
476 | (1) |
|
The Impact of Software Structure on Quality |
|
|
476 | (1) |
|
The Impact of Staff Training on Quality |
|
|
477 | (1) |
|
The Impact of Professional Certification on Quality |
|
|
478 | (1) |
|
The Impact of Technology Investment on Quality |
|
|
479 | (1) |
|
The Impact of Project Management on Quality |
|
|
480 | (1) |
|
The Impact of Quality-Control Methodologies and Tools on Quality |
|
|
481 | (3) |
|
The Impact of High and Low Quality on Software Schedules |
|
|
484 | (1) |
|
The Impact of High and Low Quality on Software Staffing |
|
|
484 | (2) |
|
The Impact of High and Low Quality on Software Development Effort |
|
|
486 | (1) |
|
The Impact of High and Low Quality on Development Productivity Rates |
|
|
486 | (1) |
|
The Impact of High and Low Quality on Software Development Costs |
|
|
487 | (2) |
|
The Impact of High and Low Quality on Development Cost per Function Point |
|
|
489 | (1) |
|
The Impact of High and Low Quality on Project Cancellation Rates |
|
|
490 | (1) |
|
The Impact of High and Low Quality on the Timing of Cancelled Projects |
|
|
491 | (1) |
|
The Impact of High and Low Quality on Cancelled Project Effort |
|
|
492 | (1) |
|
The Impact of High and Low Quality on Effort Compared to Average Projects |
|
|
492 | (2) |
|
The Impact of High and Low Quality on Software Test Stages |
|
|
494 | (2) |
|
The Impact of High and Low Quality on Testing as a Percent of Development |
|
|
496 | (1) |
|
The Impact of High and Low Quality on Test Cases per Function Point |
|
|
497 | (1) |
|
The Impact of High and Low Quality on Numbers of Test Cases Created |
|
|
498 | (1) |
|
The Impact of High and Low Quality on Test Coverage |
|
|
498 | (2) |
|
The Impact of Professional Testers on High and Low Quality |
|
|
500 | (1) |
|
The Impact of High and Low Quality on Software Defect Potentials |
|
|
501 | (2) |
|
The Impact of High and Low Quality on Total Software Defects |
|
|
503 | (1) |
|
The Impact of High and Low Quality on Defect Detection Efficiency (DDE) |
|
|
504 | (1) |
|
The Impact of High Quality and Low Quality on Defect Removal Efficiency (DRE) |
|
|
504 | (1) |
|
The Impact of High and Low Quality on Total Defect Removal |
|
|
505 | (2) |
|
The Impact of High and Low Quality on Defects Delivered to Customers |
|
|
507 | (1) |
|
The Impact of High and Low Quality on Delivered Defects per Function Point |
|
|
507 | (1) |
|
Impact of High and Low Quality on Delivered Defect Severity Levels |
|
|
508 | (1) |
|
The Impact of High and Low Quality on Severe Defects per Function Point |
|
|
509 | (1) |
|
The Impact of High and Low Quality on Software Reliability |
|
|
510 | (1) |
|
The Impact of High and Low Quality on Maintenance and Support |
|
|
511 | (1) |
|
The Impact of High and Low Quality on Maintenance and Support Costs |
|
|
512 | (1) |
|
The Impact of High and Low Quality on Maintenance Defect Volumes |
|
|
513 | (1) |
|
The Impact of High and Low Quality on Software Enhancements |
|
|
514 | (1) |
|
The Impact of High and Low Quality on Enhancement Costs |
|
|
515 | (1) |
|
The Impact of High and Low Software Quality on Maintenance and Enhancement Staffing |
|
|
516 | (1) |
|
The Impact of High and Low Quality on Total Effort for Five Years |
|
|
517 | (3) |
|
The Impact of High and Low Quality on Total Cost of Ownership (TCO) |
|
|
520 | (3) |
|
The Impact of High and Low Quality on Cost of Quality (COQ) |
|
|
523 | (6) |
|
The Impact of High and Low Quality on TCO and COQ per Function Point |
|
|
529 | (1) |
|
The Impact of High and Low Quality on the Useful Life of Applications |
|
|
529 | (6) |
|
The Impact of High and Low Quality on Software Application Tangible Value |
|
|
535 | (1) |
|
The Impact of High and Low Quality on Return on Investment (ROI) |
|
|
536 | (1) |
|
The Impact of High and Low Quality on the Costs of Cancelled Projects |
|
|
537 | (1) |
|
The Impact of High and Low Quality on Cancellation Cost Differentials |
|
|
538 | (1) |
|
The Distribution of High-, Average-, and Low-Quality Software Projects |
|
|
538 | (3) |
|
Summary and Conclusions on the Economics of Software Quality |
|
|
541 | (4) |
|
High-Quality Results for 10,000 Function Points |
|
|
541 | (1) |
|
Low-Quality Results for 10,000 Function Points |
|
|
542 | (3) |
References and Readings |
|
545 | (16) |
Index |
|
561 | |