The book presents a comprehensive discussion on software quality issues and software quality assurance (SQA) principles and practices, and lays special emphasis on implementing and managing SQA. Primarily designed to serve three audiences; universities and college students, vocational training participants, and software engineers and software development managers, the book may be applicable to all personnel engaged in a software projects
Features:
- A broad view of SQA. The book delves into SQA issues, going beyond the classic boundaries of custom-made software development to also cover in-house software development, subcontractors, and readymade software.
- An up-to-date wide-range coverage of SQA and SQA related topics. Providing comprehensive coverage on multifarious SQA subjects, including topics, hardly explored till in SQA texts.
- A systematic presentation of the SQA function and its tasks: establishing the SQA processes, planning, coordinating, follow-up, review and evaluation of SQA processes.
- Focus on SQA implementation issues. Specialized chapter sections, examples, implementation tips, and topics for discussion.
- Pedagogical support: Each chapter includes a real-life mini case study, examples, a summary, selected bibliography, review questions and topics for discussion. The book is also supported by an Instructor’s Guide.
Table of Contents
Preface xvii
Acknowledgments xxi
About the Author xxiii
Guides for Special Groups of Readers xxv
PART I INTRODUCTION 1
1. SQA – DEFINITIONS AND CONCEPTS 3
1.1 Software quality and software quality assurance – definitions 3
1.2 What is a software product? 5
1.3 The principles of SQA 7
1.4 Software errors, faults, and failures 7
1.5 The causes of software errors 11
1.6 Software quality assurance versus software quality control 16
1.7 Software quality engineering and software engineering 17
Summary 18
Selected bibliography 20
Review questions 20
Topics for discussion 21
2. SOFTWARE QUALITY FACTORS (ATTRIBUTES) 23
2.1 Complaints from the City Computer Club members – an introductory mini case 23
2.2 The need for comprehensive software quality requirements 24
2.3 McCall’s classic model for software quality factors 25
2.4 The ISO/IEC 25010 model and other alternative models of software quality factors 33
2.5 Software compliance with quality factors 38
Summary 41
Selected bibliography 42
Review questions 43
Topics for discussion 44
3. THE SOFTWARE QUALITY CHALLENGES 45
3.1 Introduction 45
3.2 The uniqueness of software quality assurance 45
3.3 Software development, maintenance, and SQA environment 49
Summary 55
Review questions 56
Topics for discussion 56
4. ORGANIZATION FOR ASSURING SOFTWARE QUALITY 58
4.1 Introduction 58
4.2 Top management’s quality assurance activities 59
4.3 Department managers with direct responsibilities for quality 63
4.4 Project management responsibilities for quality 65
4.5 The SQA unit and its associated players in the SQA system 66
4.6 The associated players in the SQA system 71
Summary 74
Selected bibliography 77
Review questions 77
Topics for discussion 79
5. THE SQA WORLD – AN OVERVIEW 81
5.1 First area: introductory topics (Part I of the book) 81
5.2 Second area: SQA process implementation activities (Part II of the book) 83
5.3 Third area: product assurance activities for conformance (Part III of the book) 87
5.4 Fourth area: process assurance activities for conformance (Part IV of the book) 91
5.5 Fifth area: additional tools and methods supporting software quality (Part V of the book) 96
5.6 Sixth area: Appendices (Part VI of the book) 99
5.7 The SQA Hall of Fame 103
PART II SQA PROCESS IMPLEMENTATION ACTIVITIES 105
6. ESTABLISHING SQA PROCESSES AND THEIR COORDINATION WITH RELEVANT SOFTWARE PROCESSES 107
6.1 Establishing SQA processes 107
6.2 Coordinating SQA processes with related software processes 108
Summary 109
Selected bibliography 110
Review questions 110
Topics for discussion 110
7. SQA PLAN AND PROJECT PLAN 111
7.1 Introduction 111
7.2 The process of preparing an SQA plan 112
7.3 The SQAP elements 112
7.4 The process of preparing a project plan 116
7.5 Jack thanks his department manager – a mini case 117
7.6 The elements of the project plan 119
7.7 Project plans for small projects and for internal projects 130
Summary 134
Selected bibliography 136
Review questions 136
Topics for discussion 138
Appendix 7.A: Risk management activities and measures 139
8. PREPROJECT PROCESS – CONTRACT REVIEW 141
8.1 The CFV project completion celebration – an introductory mini case 141
8.2 Introduction 142
8.3 The contract review process and its stages 143
8.4 Contract review evaluation subjects 146
8.5 Implementation of a contract review 149
8.6 Contract reviews for internal projects 151
Summary 153
Selected bibliography 154
Review questions 154
Topics for discussion 155
Appendix 8.A: Proposal draft review 157
Appendix 8.B: Contract draft review 161
9. COST OF SOFTWARE QUALITY 162
9.1 This time the budget was approved – an introductory mini case 162
9.2 Objectives of cost of software quality measurement 164
9.3 The classic model of cost of software quality 166
9.4 The scope of the cost of software quality – industry figures 170
9.5 An extended model for cost of software quality 171
9.6 Application of a cost of software quality system 175
9.7 Problems in application of CoSQ measurements 179
Summary 181
Selected bibliography 183
Review questions 184
Topics for discussion 186
10. THE EFFECTIVENESS AND COST OF A V&V PLAN – THE SQA MODEL 189
10.1 The data required for the SQA model 189
10.2 The SQA model 191
10.3 Application of the SQA model for comparing V&V plans 195
Summary 198
Selected bibliography 199
Review questions 199
Topics for discussion 199
11. SQA RECORDS AND DOCUMENTATION CONTROL 200
11.1 Jeff’s troubles – an introductory mini-case 200
11.2 Introduction 201
11.3 Objectives of documentation control processes 203
11.4 The implementation of documentation control 203
Summary 207
Selected bibliography 208
Review questions 208
Topics for discussion 209
PART III PRODUCT ASSURANCE ACTIVITIES FOR CONFORMANCE 211
12. EVALUATION OF PRODUCTS FOR CONFORMANCE 213
12.1 Introduction 213
12.2 The evaluation of project plans for conformance 214
12.3 The evaluation of project’s software products for conformance 215
12.4 Evaluation of project products for acceptability by the customer 216
12.5 The evaluation of project’s operation phase products for conformance 216
12.6 The evaluation of software product by measurements 217
Summary 218
Selected bibliography 219
Review questions 219
Topics for discussion 220
13. REVIEWS 222
13.1 Introduction 222
13.2 The happy design review – an introductory mini case 224
13.3 Formal design reviews (DRS) 225
13.4 Peer reviews 231
13.5 Expert opinions 244
Summary 247
Selected bibliography 248
Review questions 248
Topics for discussion 250
Appendix 13.A: DR report form 252
Appendix 13.B: Inspection session findings report form 253
Appendix 13.C: Inspection session summary report 254
14. SOFTWARE TESTING 255
14.1 Introduction 255
14.2 Joe decided to skip in-process testing – an introductory mini-case 259
14.3 Software testing strategies 260
14.4 Requirement-driven software testing 272
14.5 Planning of the testing process 280
14.6 Designing the testing process 286
14.7 Implementation of the testing process 287
14.8 Automated testing 289
14.9 Alpha and beta site testing programs 301
14.10 Code review activities for the programming and testing phases 303
Summary 304
Selected bibliography 310
Review questions 312
Topics for discussion 314
15. ASSURING SOFTWARE QUALITY CONFORMANCE FOR OPERATION SERVICES 318
15.1 Introduction 318
15.2 HR Software’s success – an introductory mini case 321
15.3 The foundations of high-quality operation services 324
15.4 Software maintenance maturity model – a model for the operation phase 329
15.5 Managerial processes of software operation quality assurance 329
Summary 341
Selected bibliography 342
Review questions 343
Topics for discussion 344
16. SOFTWARE PRODUCT QUALITY METRICS 346
16.1 What are software quality metrics? – an introduction 346
16.2 Implementation of software quality metrics 349
16.3 Product metrics and their classification 352
16.4 Software product size metrics 353
16.5 Software product attribute metrics 356
Summary 362
Selected bibliography 364
Review questions 366
Topics for discussion 367
Appendix 16.A: FSM method implementation 370
17. PROCEDURES AND WORK INSTRUCTIONS 375
17.1 Introduction – the need for procedures and work instructions 375
17.2 Superbox pays $9000 in damages due to failing support center – a mini case 376
17.3 Procedures and work instructions and their conceptual hierarchy 378
17.4 Procedures and procedure manuals 378
17.5 Work instructions 382
17.6 Procedures and work instructions: preparation, implementation, and updating 382
Summary 385
Selected bibliography 386
Review questions 386
Topics for discussion 387
Appendix 17.A: Design review procedure 389
PART IV PROCESS ASSURANCE ACTIVITIES FOR CONFORMANCE 393
18. EVALUATION OF PROCESSES AND DEVELOPMENT ENVIRONMENT FOR CONFORMANCE 395
18.1 Introduction 395
18.2 The evaluation of life cycle processes and plans for conformance 396
18.3 The evaluation of the required environment for conformance 397
18.4 The evaluation of subcontractor processes for conformance 398
18.5 The evaluation of software process by measurements 399
18.6 The assessment of staff skills and knowledge 400
Summary 401
Selected bibliography 401
Review questions 402
Topics for discussion 402
19. IMPROVEMENT PROCESSES – CORRECTIVE AND PREVENTIVE ACTIONS 404
19.1 The “3S” development team – revisited – an introductory mini case 404
19.2 Introduction 406
19.3 The corrective and preventive actions process 407
19.4 Organization for preventive and corrective actions 416
Summary 417
Selected bibliography 418
Review questions 418
Topics for discussion 419
20. SOFTWARE PROCESS ASSURANCE ACTIVITIES FOR EXTERNAL PARTICIPANTS 421
20.1 Introduction 421
20.2 The Pharmax tender – a mini case 424
20.3 Benefits and risks of introducing external performers 427
20.4 Benefits and risks of using readymade software 430
20.5 QA activities for assuring external performers’ process quality 432
20.6 QA activities for assuring quality of readymade software 438
Summary 441
Selected bibliography 444
Review questions 445
Topics for discussion 446
21. SOFTWARE PROCESS QUALITY METRICS 448
21.1 Software process metrics – an introduction 448
21.2 North against South – who’ll win this time round? – a mini case 450
21.3 Software development process metrics 452
21.4 Software operation process metrics 460
21.5 Software maintenance process metrics 462
21.6 Management process metrics 466
21.7 Limitations of software metrics 467
Summary 470
Selected bibliography 471
Review questions 472
Topics for discussion 473
22. SOFTWARE CHANGE CONTROL PROCESSES 476
22.1 Introduction 476
22.2 How a well-planned project lost over half a million dollars – a mini case 477
22.3 The process of handling an SCR 479
22.4 The SCC function in the organization 481
22.5 Software quality assurance activities related to software change control 482
Summary 482
Selected bibliography 483
Review questions 483
Topics for discussion 484
23. STAFF SKILLS AND KNOWLEDGE – TRAINING AND CERTIFICATION 486
23.1 Introduction 486
23.2 Surprises for the “3S” development team – an introductory mini case 487
23.3 The objectives of training 488
23.4 The staff training process for software development 489
23.5 The training process for the SQA function team 493
23.6 The objectives of certification 495
23.7 The certification process 495
Summary 501
Selected bibliography 503
Review questions 503
Topics for discussion 504
PART V ADDITIONAL TOOLS AND METHODS SUPPORTING SOFTWARE QUALITY 507
24. TEMPLATES AND CHECKLISTS 509
24.1 Introduction 509
24.2 Templates 509
24.3 The organizational framework for implementing templates 511
24.4 Checklists 514
24.5 The organizational framework for implementing checklists 516
Summary 518
Selected bibliography 519
Review questions 519
Topics for discussion 520
25. CONFIGURATION MANAGEMENT 522
25.1 Introduction 522
25.2 Software configuration items 523
25.3 Release of software configuration versions 526
25.4 Documentation of software configuration versions 531
25.5 Configuration management planning 532
25.6 Provision of SCM information services 534
25.7 Computerized tools for performing configuration management tasks 535
25.8 The software configuration management function in the organization 536
25.9 Software quality assurance activities related to SCM 537
Summary 539
Selected bibliography 541
Review questions 542
Topics for discussion 542
26. CASE TOOLS AND IDEs – IMPACT ON SOFTWARE QUALITY 544
26.1 What is a CASE tool? 544
26.2 The classic CASE tool 546
26.3 IDE CASE tools 548
26.4 Real CASE tools 550
26.5 The contribution of CASE tools to software quality 554
Summary 556
Selected bibliography 557
Review questions 559
Topics for discussion 559
PART VI APPENDICES 561
APPENDIX A: SOFTWARE DEVELOPMENT AND QUALITY ASSURANCE PROCESS STANDARDS 563
A.1 Introduction – standards and their use 563
A.2 IEEE Std. 730-2014 Standard for software quality assurance 566
A.3 ISO/IEC Std. 12207-2008: system and software engineering – software life cycle processes 570
A.4 IEEE Std. 1012-2012 systems and software verification and validation 574
Summary 579
Selected bibliography 581
Review questions 582
Topics for discussion 583
APPENDIX B: SOFTWARE QUALITY MANAGEMENT STANDARDS AND MODELS 585
B.1 ABC Software Ltd – an unnecessary loss – a mini-case 585
B.2 The scope of quality management standards 587
B.3 Software quality management standards as SPI standards 589
B.4 ISO/IEC 90003 590
B.5 Capability maturity CMMI models – assessment methodology 597
B.6 The SPICE project and the ISO/IEC 15504 software process assessment standard 602
B.7 Additional software quality management standards 609
Summary 611
Selected bibliography 613
Review questions 615
Topics for discussion 616
APPENDIX C: PROJECT PROGRESS CONTROL 617
C.1 Introduction 617
C.2 Finally, a successful project – a mini case 619
C.3 The components of project progress control 621
C.4 Progress control of distributed and globally distributed software development projects 623
C.5 Progress control of internal projects and external participants 624
C.6 Implementation of project progress control 625
C.7 Computerized tools for software progress control 626
Summary 631
Selected bibliography 632
Review questions 633
Topics for discussion 634
APPENDIX D: FROM SDLC TO AGILE – PROCESSES AND QUALITY ASSURANCE ACTIVITIES 635
D.1 The classical software development models 636
D.2 The object-oriented model 645
D.3 The incremental delivery model 649
D.4 The staged model 652
D.5 The Agile methodology models 652
Summary 660
Selected bibliography 662
Review questions 663
Topics for discussion 664
Author Index 667
Subject Index 673