随着软件系统越来越复杂与集成化,软件质量保证(SQA)对于软件与电子工业日益重要。本书是作者多年咨询和教学经验的产物,全面覆盖了ISO 9000-3的要求,还提供了ASQ(美国质量协会)CSQE(认证软件质量工程师)所需的知识,旨在指导面对SQA挑战的三类读者:高校学生、培训课程学员和软件开发与维护的实践人员/专业人员。
本书特点:
·SQA的广阔视野。除了讨论经典的顾客定制软件外,还讨论内部软件开发、外包软件和小机构的SQA。
·实践问题的全面讨论。重点放在SQA应用、运行、机构与控制。
·SQA问题的全面覆盖。讨论了许多其他SQA教科书中较少涉及的问题,包括规程与工作条例、支持性质量手段、软件质量的费用以及参与SQA框架的行动者。
·最新主题。覆盖的问题有自动测试、计算机化SQAT具与国际标准(例如ISO 9000-3)。
·教学支持。每一章都有小结、案例研究、现实的例子与执行提醒、复习题和讨论题。
·在线教师指南。指南包括课程计划指南、PowerPoint讲解材料与题库。
Preface vii
Unique features of tbis text viii
The book's audience ix
Acknowledgements x
Publisber's acknowledgements xi
About the autbor xii
Guides for special groups of readers xiii
Guide to readers interested in ISO 9000-3 requirements xiii
Guide to readers interested in ASQ'S CSQE body of knowledge xiv
Part I Introduction 1
Chapter 1 The software quality challenge 3
1.1 The uniqueness of software quality assurance 4
1.2 The environments for which SQA methods are developed 7
Summary 11
Review questions 12
Topics for discussion 12
Chapter 2 What is software quality? 14
2.1 What is software? 15
2.2 Software errors, faults and failures 16
2.3 Classification of the causes of software errors 19
2.4 Software quality - definition 24
2.5 Software quality assurance - definition and objectives 25
2.6 Software quality assurance and software engineering 30
Summary 30
Selected bibliography 32
Review questions 32
Topics for discussion 33
Chapter 3 Software quality factors 35
3.1 The need for comprehensive software quality requirements 36
3.2 Classifications of software requirements into software quality factors37
3.3 Product operation software quality factors 38
3.4 Product revision software quality factors41
3.5 Product transition software quality factors 43
3.6 Alternative models of software quality factors 44
3.7 Who is interested in the definition of quality requirements? 47
3.8 Software compliance with quality factors 49
Summary 51
Selected bibliography 52
Review questions 52
Topics for discussion 54
Chapter 4 The components of the software quality assurance system - overview 56
4.1 The SQA system- an SQA architecture57
4.2 Pre-project components 60
4.3 Software project life cycle components 61
4.4 Infrastructure components for error prevention and improvement 65
4.5 Management SQA components 68
4.6 SQA standards, system certification, and assessment components 69
4.7 Organizing for SQA - the human components 70
4.8 Considerations guiding construction of an organization's SQA system 72
Part II Pre-project software quality components 75
Chapter 5 Contract review 77
5.1 Introduction: the CFV Project completion celebration 78
5.2 The contract review process and its stages 79
5.3 Contract review objectives80
5.4 Implementation of a contract review 82
5.5 Contract review subjects 85
5.6 Contract reviews for internal projects 85
Summary 87
Selected bibliography 88
Review questions 89
Topics for discussion 89
Appendix SA: Proposal draft reviews - subjects checklist 92
Appendix 5B: Contract draft review - subjects checklist 94
Chapter 6 Development and quality plans 95
6.1 Development plan and quality plan objectives 97
6.2 Elements of the development plan 97
6.3 Elements of the quality plan 101
6.4 Development and quality plans for small projects and for internal projects 103
Summary 106
Selected bibliography 108
Review questions 109
Topics for discussion 110
Appendix 6A: Software development risks and software risk management 112
Part III SQA components in the project life cycle 119
Chapter 7 Integrating quality activities in the project life cycle 121
7.1 Classic and other software development methodologies 122
7.2 Factors affecting intensity of quality assurance activities in the development process 131
7.3 Verification, validation and qualification 133
7.4 A model for SQA defect removal effectiveness and cost 135
Summary 143
Selected bibliography 145
Review questions 146
Topics for discussion 147
Chapter 8 Reviews 149
8.1 Review objectives 150
8.2 Formal design reviews (DRs) 152
8.3 Peer reviews 158
8.4 A comparison of the team review methods 168
8.5 Expert opinions 170
Summary 171
Selected bibliography 172
Review questions 172
Topics for discussion 174
Appendix 8A: DR report form 175
Appendix 8B: Inspection session findings report form 176
Appendix 8C: Inspection session summary report 177
Chapter 9 Software testing- strategies 178
9.1 Definition and objectives180
9.2 Software testing strategies 182
9.3 Software test classifications 187
9.4 White box testing 189
9.5 Black box testing 197
Summary 209
Selected bibliography 211
Review questions 212
Topics for discussion 213
Chapter 10 Software testing- implementation 216
10.1 The testing process 217
10.2 Test case design 232
10.3 Automated testing 235
10.4 Alpha and beta site testing programs 245
Summary 247
Selected bibliography 249
Review questions 250
Topics for discussion 251
Chapter 11 Assuring the quality of software maintenance components 254
11.1 Introduction 255
11.2 The foundations of high quality 257
11.3 Pre-maintenance software quality components 261
11.4 Maintenance software quality assurance tools 264
Summary 273
Selected bibliography 275
Review questions 275
Topics for discussion 277
Chapter 12 Assuring the quality of external participants' contributions 279
12.1 Introduction: the HealthSoft case 280
12.2 Types of external participants 282
12.3 Risks and benefits of introducing external participants 283
12.4 Assuring quality of external participants' contributions: objectives 286
12.5 SQA tools for assuring the quality of external participants' contributions 287
Summary 293
Selected bibliography 295
Review questions 295
Topics for discussion 296
Chapter 13 CASE tools and their effect on software quality 298
13.1 What is a CASE tool? 299
13.2 The contribution of CASE tools to software product quality 302
13.3 The contribution of CASE tools to software maintenance quality 304
13.4 The contribution of CASE tools to improved project management 304
Summary 305
Selected bibliography 306
Review questions 306
Topics for discussion 307
Part IV Software quality infrastructure components 309
Chapter 14 Procedures and work instructions 311
14.1 The need for procedures and work instructions 312
14.2 Procedures and procedures manuals 313
14.3 Work instructions and work instruction manuals 316
14.4 Procedures and work instructions: preparation, implementation and updating 317
Summary 318
Selected bibliography 319
Review questions 319
Topics for discussion 320
Appendix 14A: Design review procedure 322
Chapter 15 Supporting quality devices 325
15.1 Templates 326
15.2 Checklists 329
Summary 332
Selected bibliography 333
Review questions 333
Topics for discussion 334
Chapter 16 Staff training and certification 335
16.1 Introduction: Surprises for the "3S" development team 336
16.2 The objectives of training and certification 337
16.3 The training and certification process 338
16.4 Determining professional knowledge requirements 338
16.5 Determining training and updating needs 339
16.6 Planning training and updating programs 340
16.7 Defining positions requiring certification 340
16.8 Planning the certification processes 341
16.9 Delivery of training and certification programs 342
16.10 Follow-up subsequent to training and certification 344
Summary 345
Selected bibliography 346
Review questions 347
Topics for discussion 347
Chapter 17 Corrective and preventive actions 349
17.1 Introduction: the "3S' development team revisited 350
17.2 Corrective and preventive actions - definitions 351
17.3 The corrective and preventive actions process 352
17.4 Information collection 353
17.5 Analysis of collected information 354
17.6 Development of solutions and their implementation 356
17.7 Follow-up of activities 359
17.8 Organizing for preventive and corrective actions 360
Summary 361
Selected bibliography 362
Review questions 362
Topics for discussion 363
Chapter 18 Configuration management 365
18.1 Software configuration, its items and its management 367
18.2 Software configuration management - tasks and organization 369
18.3 Software change control371
18.4 Release of software configuration versions 373
18.5 Provision of SCM information services380
18.6 Software configuration management audits 380
18.7 Computerized tools for managing software configuration 381
Summary 382
Selected bibliography 383
Review questions 384
Topics for discussion 384
Chapter 19 Documentation control 387
19.1 Introduction: where is the documentation? 388
19.2 Controlled documents and quality records 389
19.3 The controlled documents list 392
19.4 Controlled document preparation 393
19.5 Issues of controlled document approval393
19.6 Issues of controlled document storage and retrieval 394
Summary 395
Selected bibliography 396
Review questions 397
Topics for discussion 397
Part V Management components of software quality 399
Chapter 20 Project progress control 401
20.1 The components of project progress control 402
20.2 Progress control of internal projects and external participants. 404
20.3 Implementation of project progress control regimes 405
20.4 Computerized tools for software progress control 406
Summary 408
Selected bibliography 409
Review questions 410
Topic for discussion 411
Chapter 21 Software quality metrics 412
21.1 Objectives of quality measurement 414
21.2 Classification of software quality metrics 415
21.3 Process metrics 416
21.4 Product metrics 420
21.3 Implementation of software quality metrics 427
21.6 Limitations of software metrics 432
Summary 434
Selected bibliography 436
Review questions 438
Topics for discussion 440
Appendix 21A: The function point method 442
Chapter 22 Costs of software quality449
22.1 Objectives of cost of software quality metrics 450
22.2 The classic model of cost of software quality 451
22.3 An extended model for cost of software quality 455
22.4 Application of a cost of software quality system 458
22.5 Problems in the application of cost of software quality metrics 462
Summary 463
Selected bibliography 465
Review questions 465
Topics for discussion 468
Part VI Standards, certification and assessment 471
Chapter 23 Quality management standards 475
23.1 The scope of quality management standards 476
23.2 ISO 9001 and ISO 9000-3 477
23.3 Certification according to ISO 9000-3 481
23.4 Capability Maturity Models - CMM and CMMI assessment methodology 485
23.5 The Bootstrap methodology 490
23.6 The SPICE project and the ISO/IEC 15504 software process assessment standard 492
Summary 497
Selected bibliography 499
Review questions 500
Topics for discussion 501
Appendix 23A: CMMI process areas 502
Appendix 23B: ISO/IEC 15504 model processes 505
Epilogue The future of SQA 570
Facing the future: SQA challenges 571
Facing the future: SQA capabilities 574
Author index577
Subject index 580
文艺复兴以降, 源远流长的科学精神和逐步形成的学术规范, 使西方国家在自然科学的各个领域取得了垄断性的优势, 也正是这样的传统, 使美国在信息技术发展的六十多年间名家辈出, 独领风骚. 在商业化的进程中, 美国的产业界与教育界越来越紧密地结合, 计算机学科中的许多泰山北斗同时身处科研和教学的最前线, 由此而产生的经典科学著作, 不仅擘划了研究的范畴, 还揭橥了学术的源变, 既遵循学术规范, 又自有学者个性, 其价值并不会因年月的流逝而减退.
近年, 在全球信息化大潮的推动下, 我国的计算机产业发展迅猛, 对专业人才的需求日益迫切. 这对计算机教育界和出版界都既是机遇, 也是挑战, 而专业教材的建设在教育战略上显得举足轻重. 在我国信息技术发展时间较短. 从业人员较少的现状下, 美国等发达国家在其计算机科学发展的几十年间积淀的经典教材仍有许多值得借鉴之处. 因此, 引进一批国外优秀计算机教材将对我国计算机教育事业的发展起积极的推动作用, 也是与世界接轨. 建设真正的世界一流大学的必由之路.
机械工业出版社华章图文信息有限公司较早意识到“出版要为教育服务”. 自1998年开始, 华章公司就将工作重点放在了遴选. 移译国外优秀教材上. 经过几年的不懈努力, 我们与Prentice Hall, Addison-Wesley, McGraw—Hill, Morgan Kaufmann等世界著名出版公司建立了良好的合作关系, 从它们现有的数百种教材中甄选出Tanenbaum, Stroustrup, Kernighan, Jim Gray等大师名家的一批经典作品, 以“计算机科学丛书”为总称出版, 供读者学习. 研究及庋藏. 大理石纹理的封面, 也正体现了这套丛书的品位和格调.
“计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助, 国内的专家不仅提供了中肯的选题指导, 还不辞劳苦地担任了翻译和审校的工作, 而原书的作者也相当关注其作品在中国的传播, 有的还专程为其书的中译本作序. 迄今, “计算机科学丛书”已经出版了近百个品种, 这些书籍在读者中树立了良好的口碑, 并被许多高校采用为正式教材和参考书籍, 为进一步推广与发展打下了坚实的基础.
随着学科建设的初步完善和教材改革的逐渐深化, 教育界对国外计算机教材的需求和应用都步入一个新的阶段. 为此, 华章公司将加大引进教材的力度, 在“华章教育”的总规划之下出版三个系列的计算机教材:除“计算机科学丛书”之外, 对影印版的教材, 则单独开辟出“经典原版书库”, 同时, 引进全美通行的教学辅导书“Schaum’s Outlines”系列组成’全美经典学习指导系列”. 为了保证这三套丛书的权威性, 同时也为了更好地为学校和老师们服务, 华章公司聘请了中国科学院. 北京大学. 清华大学. 国防科技大学. 复旦大学. 上海交通大学. 南京大学. 浙江大学. 中国科技大学. 哈尔滨工业大学. 西安交通大学. 中国人民大学. 北京航空航天大学. 北京邮电大学. 中山大学. 解放军理工大学. 郑州大学. 湖北工学院. 中国国家信息安全测评认证中心等国内重点大学和科研机构在计算机的各个领域的著名学者组成“专家指导委员会”, 为我们提供选题意见和出版监督.
这三套丛书是响应教育部提出的使用外版教材的号召, 为国内高校的计算机及相关专业的教学度身订造的. 其中许多教材均已为M. I. T. , Stanford, U. C. Berkeley, C. M. U. 等世界名牌大学所采用. 不仅涵盖了程序设计. 数据结构. 操作系统. 计算机体系结构. 数据库, 编译原理. 软件工程. 图形学. 通信与网络, 离散数学等国内大学计算机专业普遍开设的核心课程, 而且各具特色——有的出自语言设计者之手. 有的历经三十年而不衰. 有的已被全世界的几百所高校采用. 在这些圆熟通博的名师大作的指引之下, 读者必将在计算机科学的宫殿中由登堂而入室.
权威的作者. 经典的教材. 一流的译者. 严格的审校. 精细的编辑, 这些因素使我们的图书有了质量的保证, 但我们的目标是尽善尽美, 而反馈的意见正是我们达到这一终极目标的重要帮助. 教材的出版只是我们的后续服务的起点. 华章公司欢迎老师和读者对我们的工作提出建议或给予指正, 我们的联系方法如下:
电子邮件:hzjsj@hzbook. com
联系电话:(010)68995264
联系地址:北京市西城区百万庄南街1号
邮政编码:100037
Daniel Galln博士 现在是Ruppin学术中心信息系统研究部的负责人. 除发表了许多论文之外, 他还是有关信息系统的分析与设计的几本书的作者, 并同Z. Bluvband博士用希伯来语合写了有关软件质量保证的专著. 他的职业经历包括许多软件质量保证咨询项目以及为重要的以色列公司进行信息系统的设计. 他在以色列海法市的以色列工学院Technion工业与管理工程系获得了学士. 硕士与博士学位.
The opening of the new Denver International Airport (DIA) in February 1995 was a day of celebration for Colorado citizens but it was certainly the end of a traumatic period for the information technology industry. DIA was planned to be the largest airport in the United States, to serve 110 000 000 passengers annually by 2020, to handle 1750 flights daily through 200 gates and 12 operating runways. Operations at DIA were delayed by 16 months, mainly due to the failure of the software-based baggage handling system, causing estimated total losses of $2 billion. Moreover, the baggage handling system finally put into service was substantially downscaled in comparison to the system originally specified. Although several other colossal failures of software systems unfortunately have been recorded since 1995, the failure of IT technology at DIA was especially traumatic to the profession, whether due to the scale of the losses or the public interest and criticism it raised.
Many SQA professionals, including the author, believe that had appropriate software quality assurance systems been applied to the project at its start, a failure of this scale would not have occurred or, at least, its losses would have been dramatically reduced. The methods and tools discussed in this book, especially the risk management procedures, could have identified the severity of the situation at very early stages and enabled timely employment of the appropriate corrective measures throughout the project. Other SQA tools could probably have assured completion of the system on schedule and in full compliance with its specifications.
According to the author's conception of software quality assurance, an acceptable level of software quality can be achieved by:
·Combined application of a great variety of SQA components.
·Special emphasis on quality in the early phases of software development, including the pre-project phase.
·Performance of comprehensive SQA activities to control the quality of the work carried out by external participants (subcontractors, suppliers of reused software modules and COTS software products, and the customers themselves in cases where they carry out parts of the project).
·Extension of SQA activities to project schedules and budget control, based on the expectation that functional requirements, schedule and budget plans behave according to the principle of communicating vessels, that is, a failure (or reduced level of achievement) in one of these three fluid components induces immediate failure in the others.
This conception of software quality assurance guides us throughout the book.
Unique features of this text
The following features of this book are of special importance:
A broad view of SQA
Comprehensive discussion of SQA implementation issues
Comprehensive coverage of SQA topics
State-of-the-art topics.
A detailed discussion of these features follows.
A brood view of SQA
The book extends discussion of SQA issues much beyond the classic boundaries of custom-made software development by large established software houses. It dedicates significant attention to the other software development and maintenance environments that reflect the current state of the industry:
In-house software development by information systems departments. The book discusses SQA of in-house projects, situations where traditional customer-supplier relations are missing or vague, and outlines recommended solutions to the attendant risks (see Sections 5.6 and 6.4.2).
COTS software packages. COTS Software packages represent a growing proportion of software packages used throughout the industry. Assurance of the quality of these packages, which are integrated directly into the customer's software systems, has become an important issue (see Chapter 12).
Small projects and small organizations. Issues related to software development by small organizations and the execution of small software projects are likewise dealt with in the book (see Section 6.4.1).
Comprehensive discussion of SQA Implementation issues
Stress is placed throughout the book on organization, control and other aspects arising in the implementation of SQA components:
Specialized chapter sections and subsections dealing with implementation processes.
Examples that refer to real-life situations, especially those involving implementation issues, are integrated into the text.
Implementation tips related to special implementation problems are integrated into most of the chapters.
Topics for discussion, found at the conclusion of each chapter, encourage the reader to suggest innovative solutions to implementation issues.
Comprehensive coverage of SQA topics
The book is very comprehensive in the range of SQA subjects covered. It includes topics rarely if ever covered in other SQA texts. These topics include:
Procedures and work instructions, their preparation, implementation and updating (Chapter14).
Supporting quality devices, that is, templates and checklists, their preparation, implementation and updating (Chapter 15).
Costs of software quality, estimated according to the classic quality costs model in addition to a new extended model that better represents the special nature of software quality costs (Chapter 22).
The SQA unit and other actors in the SQA framework, specifically the activities and responsibilities of active and occasional bodies that promote SQA issues within the organization: the SQA unit, SQA trustees, SQA committees and SQA forums (Chapter 26).
5tate-of-the-art topics
The text emphasizes up-to-date SQA topics:
Automated testing, including a discussion of the various types of automated tests and their implementation, concluding with a review of the advantages and disadvantages of automated testing (Section 10.3).
Computerized SQA tools, discussed in conjunction with almost all SQA components mentioned in the book. A special chapter (Chapter 13), entirely dedicated to computerized tools, reviews CASE tool issues. Special emphasis is placed on techniques that dramatically improve the performance of SQA tools, such as automated testing, software configuration management and documentation control.
International SQA standards. Two chapters (Chapters 23 and 24) are dedicated to a survey of recent developments in software quality management standards and project process standards.
A downloadable Instructor's Guide, PowerPoint Slides and additional testing material are also available free of charge to lecturers and tutors adopting the main book. They can be accessed at www. booksites.net/galin.
The book's audience
The book is intended to meet the needs of a wide audience of readers interested in software quality assurance. We can identify four main groups of such readers, as follows:
Managers of software development departments, project managers and others
Those attending or presenting vocational training courses
University and college students
Practitioners involved in quality issues of software development and maintenance.
In addition, there are special groups of readers who are addressed on page xiii.