Preface |
|
xv | |
Acknowledgments |
|
xxiii | |
1 Software Quality Fundamentals |
|
1 | (34) |
|
|
1 | (1) |
|
1.2 Defining Software Quality |
|
|
2 | (2) |
|
1.3 Software Errors, Defects, and Failures |
|
|
4 | (15) |
|
1.3.1 Problems with Defining Requirements |
|
|
10 | (3) |
|
1.3.2 Maintaining Effective Communications Between Client and Developer |
|
|
13 | (1) |
|
1.3.3 Deviations from Specifications |
|
|
14 | (1) |
|
1.3.4 Architecture and Design Errors |
|
|
15 | (1) |
|
|
15 | (1) |
|
1.3.6 Non-Compliance with Current Processes/Procedures |
|
|
16 | (1) |
|
1.3.7 Inadequate Reviews and Tests |
|
|
17 | (1) |
|
1.3.8 Documentation Errors |
|
|
17 | (2) |
|
|
19 | (1) |
|
1.5 Software Quality Assurance |
|
|
20 | (2) |
|
1.6 Business Models and the Choice of Software Engineering Practices |
|
|
22 | (10) |
|
1.6.1 Description of the Context |
|
|
23 | (1) |
|
|
24 | (1) |
|
1.6.3 Choice of Software Practices |
|
|
25 | (1) |
|
1.6.4 Business Model Descriptions |
|
|
25 | (1) |
|
1.6.5 Description of Generic Situational Factors |
|
|
26 | (1) |
|
1.6.6 Detailed Description of Each Business Model |
|
|
27 | (5) |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
2 Quality Culture |
|
35 | (31) |
|
|
35 | (4) |
|
|
39 | (10) |
|
|
49 | (4) |
|
2.4 The Five Dimensions of a Software Project |
|
|
53 | (3) |
|
2.5 The Software Engineering Code of Ethics |
|
|
56 | (6) |
|
2.5.1 Abridged Version: Preamble |
|
|
58 | (2) |
|
2.5.2 The Example of the Code of Ethics of the Ordre des ingenieurs du Quebec |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
63 | (3) |
3 Software Quality Requirements |
|
66 | (35) |
|
|
66 | (3) |
|
3.2 Software Quality Models |
|
|
69 | (17) |
|
3.2.1 Initial Model Proposed by McCall |
|
|
71 | (2) |
|
3.2.2 The First Standardized Model: IEEE 1061 |
|
|
73 | (4) |
|
3.2.3 Current Standardized Model: ISO 25000 Set of Standards |
|
|
77 | (9) |
|
3.3 Definition of Software Quality Requirements |
|
|
86 | (9) |
|
3.3.1 Specifying Quality Requirements: The Process |
|
|
91 | (4) |
|
3.4 Requirement Traceability During the Software Life Cycle |
|
|
95 | (1) |
|
3.5 Software Quality Requirements and the Software Quality Plan |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
97 | (1) |
|
|
97 | (4) |
4 Software Engineering Standards and Models |
|
101 | (66) |
|
|
101 | (7) |
|
4.2 Standards, Cost of Quality, and Business Models |
|
|
108 | (1) |
|
4.3 Main Standards for Quality Management |
|
|
109 | (8) |
|
|
109 | (6) |
|
4.3.2 ISO/IEC 90003 Standard |
|
|
115 | (2) |
|
4.4 ISO/IEC/IEEE 12207 Standard |
|
|
117 | (4) |
|
4.4.1 Limitations of the ISO 12207 Standard |
|
|
121 | (1) |
|
4.5 ISO/IEC/IEEE 15289 Standard for the Description of Information Elements |
|
|
121 | (2) |
|
4.6 IEEE 730 Standard for SQA Processes |
|
|
123 | (6) |
|
4.6.1 Activities and Tasks of SQA |
|
|
125 | (4) |
|
4.7 Other Quality Models, Standards, References, and Processes |
|
|
129 | (27) |
|
4.7.1 Process Maturity Models of the SEI |
|
|
130 | (5) |
|
4.7.2 Software Maintenance Maturity Model (S3m) |
|
|
135 | (3) |
|
4.7.3 ITIL Framework and ISO/IEC 20000 |
|
|
138 | (4) |
|
|
142 | (1) |
|
4.7.5 ISO/IEC 27000 Family of Standards for Information Security |
|
|
143 | (1) |
|
4.7.6 ISO/IEC 29110 Standards and Guides for Very Small Entities |
|
|
144 | (11) |
|
4.7.7 ISO/IEC 29110 Standards for VSEs Developing Systems |
|
|
155 | (1) |
|
4.8 Specific Standards for an Application Domain |
|
|
156 | (7) |
|
4.8.1 DO-178 and ED-12 Guidance for Airborne Systems |
|
|
156 | (3) |
|
4.8.2 EN 50128 Standard for Railway Applications |
|
|
159 | (2) |
|
4.8.3 ISO 13485 Standard for Medical Devices |
|
|
161 | (2) |
|
4.9 Standards and the SQAP |
|
|
163 | (2) |
|
|
165 | (1) |
|
|
165 | (1) |
|
|
166 | (1) |
5 Reviews |
|
167 | (43) |
|
|
167 | (5) |
|
5.2 Personal Review and Desk-Check Review |
|
|
172 | (7) |
|
|
172 | (3) |
|
|
175 | (4) |
|
|
179 | (5) |
|
5.3.1 ISO/IEC 20246 Software and Systems Engineering: Work Product Reviews |
|
|
179 | (1) |
|
5.3.2 Capability Maturity Model Integration |
|
|
180 | (1) |
|
5.3.3 The IFFE 1028 Standard |
|
|
181 | (3) |
|
|
184 | (3) |
|
5.4.1 Usefulness of a Walk-Through |
|
|
184 | (2) |
|
5.4.2 Identification of Roles and Responsibilities |
|
|
186 | (1) |
|
|
187 | (2) |
|
5.6 Project Launch Reviews and Project Assessments |
|
|
189 | (8) |
|
5.6.1 Project Launch Review |
|
|
190 | (2) |
|
5.6.2 Project Retrospectives |
|
|
192 | (5) |
|
|
197 | (2) |
|
|
199 | (3) |
|
5.9 Selecting the Type of Review |
|
|
202 | (3) |
|
5.10 Reviews and Business Models |
|
|
205 | (1) |
|
5.11 Software Quality Assurance Plan |
|
|
205 | (1) |
|
|
206 | (2) |
|
|
208 | (1) |
|
|
208 | (1) |
|
|
208 | (2) |
6 Software Audits |
|
210 | (39) |
|
|
210 | (5) |
|
|
215 | (2) |
|
|
215 | (1) |
|
|
215 | (2) |
|
|
217 | (1) |
|
6.3 Audit and Software Problem Resolution According to ISO/IEC/IEEE 12207 |
|
|
217 | (1) |
|
6.3.1 Project Assessment and Control Process |
|
|
218 | (1) |
|
6.3.2 Decision Management Process |
|
|
218 | (1) |
|
6.4 Audit According to the IEEE 1028 Standard |
|
|
218 | (7) |
|
6.4.1 Roles and Responsibilities |
|
|
220 | (1) |
|
6.4.2 IEEE 1028 Audit Clause |
|
|
221 | (1) |
|
6.4.3 Audit Conducted According to IEEE 1028 |
|
|
222 | (3) |
|
6.5 Audit Process and the ISO 9001 Standard |
|
|
225 | (5) |
|
6.5.1 Steps of a Software Audit |
|
|
226 | (4) |
|
6.6 Audit According to the CMMI |
|
|
230 | (3) |
|
6.6.1 SCAMPI Assessment Method |
|
|
231 | (2) |
|
|
233 | (5) |
|
6.7.1 Corrective Actions Process |
|
|
234 | (4) |
|
6.8 Audits for Very Small Entities |
|
|
238 | (1) |
|
6.9 Audit and the SQA Plan |
|
|
239 | (2) |
|
6.10 Presentation of an Audit Case Study |
|
|
241 | (5) |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
247 | (2) |
7 Verification and Validation |
|
249 | (46) |
|
|
249 | (6) |
|
7.2 Benefits and Costs of V&V |
|
|
255 | (2) |
|
7.2.1 V&V and the Business Models |
|
|
257 | (1) |
|
7.3 V&V Standards and Process Models |
|
|
257 | (6) |
|
7.3.1 IEEE 1012 V&V Standard |
|
|
258 | (2) |
|
|
260 | (2) |
|
7.3.3 Recommended V&V Activities for Software Requirements |
|
|
262 | (1) |
|
7.4 V&V According to ISO/IEC/IEEE 12207 |
|
|
263 | (3) |
|
7.4.1 Verification Process |
|
|
265 | (1) |
|
|
265 | (1) |
|
7.5 V&V According to the CMMI Model |
|
|
266 | (1) |
|
7.6 ISO/IEC 29110 and V&V |
|
|
267 | (1) |
|
|
268 | (3) |
|
7.7.1 IV&V Advantages with Regards to SQA |
|
|
271 | (1) |
|
|
271 | (6) |
|
7.8.1 Traceability Matrix |
|
|
273 | (3) |
|
7.8.2 Implementing Traceability |
|
|
276 | (1) |
|
7.9 Validation Phase of Software Development |
|
|
277 | (4) |
|
|
279 | (2) |
|
|
281 | (1) |
|
|
282 | (5) |
|
7.11.1 How to Develop a Checklist |
|
|
283 | (2) |
|
7.11.2 How to Use a Checklist |
|
|
285 | (1) |
|
7.11.3 How to Improve and Manage a Checklist |
|
|
286 | (1) |
|
|
287 | (2) |
|
7.12.1 Introduction to V&V Techniques |
|
|
287 | (1) |
|
7.12.2 Some V&V Techniques |
|
|
288 | (1) |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
291 | (1) |
|
|
292 | (1) |
|
|
293 | (1) |
|
|
293 | (2) |
8 Software Configuration Management |
|
295 | (40) |
|
|
295 | (1) |
|
8.2 Software Configuration Management |
|
|
296 | (1) |
|
8.3 Benefits of Good Configuration Management |
|
|
297 | (4) |
|
8.3.1 CM According to ISO 12207 |
|
|
298 | (1) |
|
8.3.2 CM According to IEEE 828 |
|
|
299 | (1) |
|
8.3.3 CM According to the CMMI |
|
|
299 | (2) |
|
|
301 | (8) |
|
8.4.1 Organizational Context of SCM |
|
|
301 | (1) |
|
8.4.2 Developing a SCM Plan |
|
|
302 | (1) |
|
8.4.3 Identification of CI to be Controlled |
|
|
303 | (6) |
|
|
309 | (2) |
|
8.6 Software Repository and Its Branches |
|
|
311 | (7) |
|
8.6.1 A Simple Branching Strategy |
|
|
315 | (1) |
|
8.6.2 A Typical Branching Strategy |
|
|
316 | (2) |
|
8.7 Configuration Control |
|
|
318 | (5) |
|
8.7.1 Requests, Evaluation, and Approval of Changes |
|
|
319 | (2) |
|
8.7.2 Configuration Control Board |
|
|
321 | (1) |
|
8.7.3 Request for Waivers |
|
|
322 | (1) |
|
8.7.4 Change Management Policy |
|
|
322 | (1) |
|
8.8 Configuration Status Accounting |
|
|
323 | (2) |
|
8.8.1 Information Concerning the Status of CI |
|
|
323 | (2) |
|
8.8.2 Configuration Item Status Reporting |
|
|
325 | (1) |
|
8.9 Software Configuration Audit |
|
|
325 | (4) |
|
8.9.1 Functional Configuration Audit |
|
|
327 | (1) |
|
8.9.2 Physical Configuration Audit |
|
|
327 | (1) |
|
8.9.3 Audits Performed During a Project |
|
|
328 | (1) |
|
8.10 Implementing SCM in Very Small Entities with ISO/IEC 29110 |
|
|
329 | (1) |
|
|
330 | (1) |
|
|
331 | (2) |
|
|
333 | (1) |
|
|
333 | (2) |
9 Policies, Processes, and Procedures |
|
335 | (62) |
|
|
335 | (6) |
|
9.1.1 Standards, the Cost of Quality, and Business Models |
|
|
341 | (1) |
|
|
341 | (4) |
|
|
345 | (6) |
|
|
351 | (1) |
|
9.5 Organizational Standards |
|
|
352 | (1) |
|
9.6 Graphical Representation of Processes and Procedures |
|
|
353 | (23) |
|
9.6.1 Some Pitfalls to Avoid |
|
|
356 | (1) |
|
|
357 | (1) |
|
9.6.3 ETVX Process Notation |
|
|
357 | (9) |
|
|
366 | (4) |
|
|
370 | (6) |
|
9.7 Process Notation of ISO/IEC 29110 |
|
|
376 | (7) |
|
|
383 | (5) |
|
9.9 Personal Improvement Process |
|
|
388 | (5) |
|
9.10 Policies, Processes, and Procedures in the SQA Plan |
|
|
393 | (1) |
|
|
394 | (1) |
|
|
395 | (1) |
|
|
396 | (1) |
10 Measurement |
|
397 | (48) |
|
10.1 Introduction-the Importance of Measurement |
|
|
397 | (5) |
|
10.1.1 Standards, the Cost of Quality, and Software Business Models |
|
|
401 | (1) |
|
10.2 Software Measurement According to ISO/IEC/IEEE 12207 |
|
|
402 | (1) |
|
10.3 Measurement According to ISO 9001 |
|
|
403 | (1) |
|
10.4 The Practical Software and Systems Measurement Method |
|
|
404 | (7) |
|
10.5 ISO/IEC/IEEE 15939 Standard |
|
|
411 | (7) |
|
10.5.1 Measurement Process According to ISO 15939 |
|
|
412 | (1) |
|
10.5.2 Activities and Tasks of the Measurement Process |
|
|
412 | (1) |
|
10.5.3 An Information Measurement Model of ISO 15939 |
|
|
412 | (6) |
|
10.6 Measurement According to the CMMI Model |
|
|
418 | (3) |
|
10.7 Measurement in Very Small Entities |
|
|
421 | (1) |
|
10.8 The Survey as a Measurement Tool |
|
|
421 | (4) |
|
10.9 Implementing a Measurement Program |
|
|
425 | (5) |
|
10.9.1 Step 1: Management Commitment Build-Up |
|
|
426 | (1) |
|
10.9.2 Step 2: Staff Commitment Build-Up |
|
|
427 | (1) |
|
10.9.3 Step 3: Selection of Key Processes to be Improved |
|
|
427 | (1) |
|
10.9.4 Step 4: Identification of the Goals and Objectives Related to the Key Process |
|
|
427 | (1) |
|
10.9.5 Step 5: Design of the Measurement Program |
|
|
427 | (1) |
|
10.9.6 Step 6: Description of the Information System to Support Measurement |
|
|
428 | (1) |
|
10.9.7 Step 7: Deployment of the Measurement Program |
|
|
428 | (2) |
|
10.10 Practical Considerations |
|
|
430 | (5) |
|
10.10.1 Some Pitfalls with Regards to Measurement |
|
|
432 | (3) |
|
10.11 The Human Side of Measurement |
|
|
435 | (4) |
|
10.11.1 Cost of Measurement |
|
|
438 | (1) |
|
10.12 Measurement and the IEEE 730 SQAP |
|
|
439 | (4) |
|
10.12.1 Software Process Measurement |
|
|
440 | (1) |
|
10.12.2 Software Product Measurement |
|
|
441 | (2) |
|
|
443 | (1) |
|
|
443 | (1) |
|
|
444 | (1) |
11 Risk Management |
|
445 | (44) |
|
|
445 | (9) |
|
11.1.1 Risk, the Cost of Quality and Business Models |
|
|
451 | (2) |
|
11.1.2 Costs and Benefits of Risk Management |
|
|
453 | (1) |
|
11.2 Risk Management According to Standards and Models |
|
|
454 | (12) |
|
11.2.1 Risk Management According to ISO 9001 |
|
|
454 | (1) |
|
11.2.2 Risk Management According to ISO/IECREEE 12207 |
|
|
455 | (1) |
|
11.2.3 Risk Management According to ISO/IEC/IEEE 16085 |
|
|
456 | (3) |
|
11.2.4 Risk Management According to the CMMI Model |
|
|
459 | (2) |
|
11.2.5 Risk Management According to PMBOK® Guide |
|
|
461 | (1) |
|
11.2.6 Risk Management According to ISO 29110 |
|
|
462 | (3) |
|
11.2.7 Risk Management and the SQA According to IEEE 730 |
|
|
465 | (1) |
|
11.3 Practical Considerations for Risk Management |
|
|
466 | (12) |
|
11.3.1 Risk Evaluation Step |
|
|
468 | (6) |
|
|
474 | (3) |
|
11.3.3 Lessons Learned Activity |
|
|
477 | (1) |
|
11.4 Risk Management Roles |
|
|
478 | (1) |
|
11.5 Measurement and Risk Management |
|
|
479 | (4) |
|
11.6 Human Factors and Risk Management |
|
|
483 | (2) |
|
|
485 | (1) |
|
|
486 | (1) |
|
|
487 | (1) |
|
|
487 | (2) |
12 Supplier Management and Agreements |
|
489 | (25) |
|
|
489 | (1) |
|
12.2 Supplier Requirements of ISO 9001 |
|
|
490 | (1) |
|
12.3 Agreement Processes of ISO 12207 |
|
|
491 | (3) |
|
12.4 Supplier Agreement Management According to the CMMI |
|
|
494 | (2) |
|
|
496 | (1) |
|
12.6 Software Acquisition Life Cycle |
|
|
497 | (2) |
|
12.7 Software Contract Types |
|
|
499 | (6) |
|
12.7.1 Fixed Price Contract |
|
|
501 | (1) |
|
12.7.2 Cost plus Percentage of Cost |
|
|
502 | (1) |
|
12.7.3 Cost plus Fixed Fee |
|
|
502 | (1) |
|
|
502 | (3) |
|
12.8 Software Contract Reviews |
|
|
505 | (5) |
|
12.8.1 Two Reviews: Initial and Final |
|
|
505 | (1) |
|
12.8.2 Initial Contract Review |
|
|
506 | (3) |
|
12.8.3 Final Contract Review |
|
|
509 | (1) |
|
12.9 Supplier and Acquirer Relationship and the SQAP |
|
|
510 | (1) |
|
|
511 | (1) |
|
|
512 | (1) |
|
|
512 | (2) |
13 Software Quality Assurance Plan |
|
514 | (27) |
|
|
514 | (4) |
|
|
518 | (19) |
|
|
518 | (1) |
|
13.2.2 Definitions and Acronyms |
|
|
518 | (1) |
|
13.2.3 Reference Documents |
|
|
519 | (1) |
|
13.2.4 SQAP Overview-Organization and Independence |
|
|
520 | (4) |
|
13.2.5 SQAP Overview-Software Product Risk |
|
|
524 | (1) |
|
13.2.6 SQAP Overview-Tools |
|
|
525 | (1) |
|
13.2.7 SQAP Overview-Standards, Practices, and Conventions |
|
|
525 | (1) |
|
13.2.8 SQAP Overview-Effort, Resources, and Schedule |
|
|
526 | (2) |
|
13.2.9 Activities, Outcomes, and Tasks-Product Assurance |
|
|
528 | (1) |
|
13.2.10 Activities, Outcomes, and Tasks-Process Assurance |
|
|
529 | (2) |
|
13.2.11 Additional Considerations |
|
|
531 | (5) |
|
|
536 | (1) |
|
|
537 | (2) |
|
|
539 | (1) |
|
|
539 | (1) |
|
|
540 | (1) |
Appendix 1. Software Engineering Code of Ethics and Professional Practice (Version 5.2) |
|
541 | (8) |
Appendix 2. Incidents and Horror Stories Involving Software |
|
549 | (6) |
Glossary - Abbreviations - Acronyms |
|
555 | (21) |
References |
|
576 | (15) |
Index |
|
591 | |