Register your product to gain access to bonus material or receive a coupon.
Brand-new edition of the industry's leading guide to software quality assurance.
1047K-9
The industry's top guide to software quality -- completely updated!
Practical techniques for mission-critical and commercial software.
Build a great software quality organization.
Prepare for ASQ Software Quality Engineer Certification.
Software quality assurance has never been more challenging -- nor more business-critical. In this completely updated guide, sixteen of the world's leading SQA experts share their practical experience with the full range of techniques available for managing software quality. Discover the best ways to organize, staff and improve your software quality organization. Learn how to make the most of inspections, software configuration management, Pareto charts, metrics, statistical methods, CASE tools and other key SQA tools and approaches.
Handbook of Software Quality Assurance, Third Edition shows you how to:
Learn today's best practices for managing SQA in commercial software, customized mission-critical software, and embedded systems. Master the specialized techniques, standards, guidelines and rules for managing software safety, and walk through a state-of-the-art SQA case study at Boeing Space Transportation's Systems Software organization. Whether you're a software developer or customer, if you want more reliable software, this end-to-end guide will help you get it.
Click here for a sample chapter for this book: 0130104701.pdf
1. Software Quality Assurance-Coming to Terms By G. Gordon Schulmeyer.
Introduction. Quality-The Elusive Element. Software-The Basic Element. Software Quality-The Attribute. Software Quality Assurance-The Activity. Software Quality Control-The Action. Software Quality Personnel Certification-The Recognition. Software Reliability-Only One Error Left. Software Maintainability-Keep Chugging Along. Verification and Validation (V&V)-On the Up-and-Up. Test and Evaluation (T&E)-See How They Run. Software Process Improvement-The Latest Wave. ISO 9000 Software Certification-Only the Best. Total Quality Management (TQM)-The Big Picture. References.
Introduction. SQA and Operating Systems Software. SQA and Mission-Critical Software. SQA and Real-Time Systems Software. SQA and Interactive Software. 2 User of Interactive Software. SQA and Business Software. Business Process Reengineering and Y2K. SQA and Software Configuration Management. SQA and Software Maintenance. SQA and IV&V. Summary. References. General References.
Introduction. Kaoru Ishikawa. Joseph M. Juran. Yoji Akao. W. Edwards Deming. Genichi Taguchi. Shigeo Shingo. Philip Crosby. Conclusion. References.
Introduction. Historical Perspective. Commercial Standards. Comparison of Requirements. Conclusion. References. General References. Appendix: Tables From Standards.
Introduction. Software Quality Program Concepts. Organizational Aspects of the Software Quality Program. Summary. References.
Introduction. Facing the Challenge. Organization Structure. Identifying Software Quality Assurance Personnel Needs. Characteristics of a Good SQA Engineer. Training the Hardware QA Engineer. Training the Software Engineer. Rotating Software Engineers. New College Graduates. SQA Employment Requisition. What to Expect from your SQA Staff. Developing Career Paths. Recommendations. References. General References. Appendix: Typical Software Quality Related Job Descriptions.
ASQ Background. ASQ Certification Program. How Is the Certification Exam Developed? How Should You Prepare for the Exam? What Is In the Body of Knowledge? ASQ Certified Software Quality Engineer Bibliography. Recertification. References.
Introduction. Concepts of the Cost of Software Quality. Input. Value Added Actions. Outputs. Total Cost of Quality. Activity Analysis. Focus. Task Elements. Potential Misuse. Productivity. Major Components. Conclusion. References.
Introduction. The Inspection Process. Lessons Learned. Requirements Inspections. Specification Inspections. Documentation Inspections. Inspection Metrics. National Software Quality Experiment. Examples of the Payoff. References.
It Is Raining-Where Is an Umbrella? Software Configuration Management Overview. Real-World Considerations. Summary. References.
Introduction. Historical Background. WWMCCS-Classic Example 1. Federal Reserve Bank-Classic Example 2. Defect Identification. Inspection. Statistical Techniques. Pareto Chart Comparison. Conclusions. References. General References.
Introduction to the CMM. Evolution of the CMM as a Framework for Continuous Process Improvement. Benefits of Using the CMM. The Structure of the CMM. Understanding Software Quality Assurance within the CMM. The Maturing QA Organization (Software Quality Management and the Quest for SQA Maturity). References. General References.
Introduction STS Process Improvement History. Challenges. Process Improvement Results. Customer and Employee Satisfaction. Implication to Future Business. Conclusions. References.
Introduction. Environment for CASE. The Case for CASE. Applicability of Tools. Where to Find Tools. A Look Ahead. References. General References.
Introduction. Software Quality Metrics Methodology. Omnibus Software Quality Metrics. Software Quality Indicators. Practical Implementations. Conclusion. References.
Special Concerns with Mission-Critical Software. Embedded Mission-Critical Software. The Special Development Life Cycle For Mission-Critical Software. The Role of SQA for Mission-Critical Software. The Role of SQA During the System Requirements and System Design Phases. SQA During the Crucial Software Requirements Phase. SQA During the Top-Level Design Phase. SQA During the Detailed Design Phase. SQA During the Coding and Unit Test Phase. SQA During the Software Integration and Testing Phase. SQA During the CSCI Test Phase. The Role of SQA During the Subsystem and System Integration and Test Phase. Functional and Physical Configuration Audits for Software. Development and Operational Testing (The "Real World"). References. General References.
Introduction-SQA Principles Applied. Commercial Software Defined. Software Quality's Role in the Commercial Sector. Commercial vs. Mission-Critical SQA Programs-An Overview. SQA Program Implementation Philosophy. Testing within the Software Quality Framework. Implementing the Commercial SQA Program: The Keys to Success. Implementing an SQA Program: Problems, Payoffs, and Lessons Learned (A Case Study). Additional Practical Applications. Commercial vs. Mission-Critical SQA Programs-A Final Comparison. A Word About SEI CMM and ISO 9000. Summary. References. General References.
What Is Quality Assurance? Quality Assurance as a Facilitator to Improve Overall Information Services Quality. Quality Assurance as a Measurement Science. Moving QA from a Concept to a Reality. General References.
Quality Control. Software Quality Control. Quality Programming. Quality Programming Practical Experiences. Proposed Solutions to Some Technical Problems in Software Engineering Project Management. What Top Management Must Do. Concluding Remarks. Acknowledgments. References. General References.
The Management of Software Reliability. Perspective. The Fundamental Need. Advantages. Standardization. Government Posture. Application. Selection. Optimizing Reliability. Management. Matrix Control. Summary. References. Appendix: Sample Measures for Reliable Software (From IEEE Guide 982.2).
Introduction. Software-Caused Accidents. The Confusing World of Software Safety. Standards, Guidelines, and Regulations. What Does It Take to Develop a Software Safety Assurance Program? Organizational Requirements and Responsibilities. Hazard Avoidance and Mitigation Technique. Recommendations. References.
Preface
The software industry has witnessed a dramatic rise in the impact and effectiveness of software quality assurance recently. From its day of infancy, when a handful of software pioneers explored the first applications of quality assurance, to the development of software, software quality assurance has become integrated into all phases of software development.
This Handbook of Software Quality Assurance capitalizes on the talents and skills of the experts who deal with the implementation of software quality assurance on a daily basis. To have their accumulated knowledge at hand makes this Handbook a valuable resource. Each author, because of his special skills, talents, foresight, and interests, has contributed to the maturing process occurring in the field of software quality today.
What this Handbook brings to the reader then, is a collection of experiences and expectations of some of the best people in the field of software quality assurance. Because of their early involvement in software quality and because of their continued pursuit to discover improved methods for achieving better on the job software quality assurance, each author provides an insightful presentation of his personal involvement in software quality assurance.
The structure of this Handbook is relatively straightforward: twenty-one chapters covering many key areas of software quality assurance.
The first part of the Handbook sets the stage with a presentation of fundamental concepts and some historical discussion. Relevant terms are initially defined. Then the interaction of software quality assurance with several software specialty areas is covered. Next, the knowledge gained by the experts in the quality field is directed at software quality. A brief history and future direction of the standardization of software quality assurance follows. Organizational considerations for a software quality program are presented. The backbone of success in any enterprise-the people performing software quality assurance-is discussed in terms of how to identify, get, and keep those most suited for quality assurance. Chapter 7 discusses the recent American Society for Quality's exam process for Software Quality Engineer certification. "Quality is free"; how this dictum applies to software quality is the subject of "The Cost of Software Quality," discussed in Chapter 8.
The next set of chapters within this Handbook discuss quality techniques and opens with a discussion of inspections, the Pareto Principle, and software configuration management. This section continues with the Software Engineering Institute's Capability Maturity Model (CMM) for Software, which has had an enormous impact on software development, management, and quality since 1988. Chapter 12 covers the fundamentals of the CMM process and the relationship of the CMM to software quality assurance. Next follows a discussion of a very successful organization's implementation of the CMM Level 5 process and what this has meant to software quality. The use of both software quality Computer Aided Software Engineering (CASE) tools and the use of software quality metrics are necessary techniques in today's environment, and are covered in this section.
The final set of chapters within this Handbook emphasize applications relevant to software quality assurance. Practical SQA applications for mission-critical software and for commercial software are discussed. The application of statistical testing methods, software reliability, and software safety, areas of recent empahsis within software quality assurance, are also covered.
A brief summary of each chapter, highlighting its main thrust, is provided below for the reader to decide which topics are of immediate interest. If information is required from another chapter for additional insight, adequate cross-reference has been provided within each chapter and in the index.
Chapter 1 defines important terms relevant to this Handbook. More recent terms, such as those related to software quality assurance certification and TQM (Total Quality Management), are covered.
Chapter 2 discusses the relationship of software quality assurance with the various types of software, such as operating systems software, mission-critical software, real-time systems software, interactive software, and business software. The chapter also addresses the relationship of software quality assurance with other key areas, such as software configuration management. The Year 2000 (Y2K) Problem and the role of SQA is also discussed.
Chapter 3 is an overview of the contributions made and the roles played by the dominant figures in the Quality field. The individual contribution of the dominant quality experts-Ishikawa, Juran, Akao, Deming, Crosby, Shingo, and Taguchi-are assessed.
Chapter 4 traces the history of the process of standardization of software quality assurance. The Department of Defense, Federal Aviation Administration, North Atlantic Treaty Organization, and Institute of Electrical and Electronic Engineers (IEEE) standardization activities are all covered. The future directions of standardization are given special emphasis because the thrust is to apply commercial standards, such as, EIA/IEEE 12207 to all government projects. This is a major philosophical shift and moves away from the former document-driven software development paradigm of the previous standards.
Chapter 5 presents a software quality organization. This chapter includes a discussion of what commercial organizations require to conduct software quality assurance and the impact of the CMM on software quality organizations. The role of assessing and measuring product quality during development and the controversy over the independence of SQA versus being part of the development organization are also presented in this chapter.
Chapter 6 discusses the personnel requirements for a good software quality engineer and how a software quality organization should deal with personnel issues such as training, roles for software quality engineers, paraprofessional possibilities, and career paths. The impact of the ASQ software quality engineer certification program is covered.
Chapter 7 lays out the requirements for the new software quality engineer certification program established by the ASQ (American Society for Quality). More specifically, the chapter deals with how you should prepare for the exam and what in the body of software quality knowledge is needed to pass the exam. The chapter also includes a recommended bibliography.
Chapter 8 deals with the assessment of the total cost of software quality and examines what input is required, the value added, and the expected output. Concerns such as major task elements, productivity, and potential misuse are evaluated. Also discussed are the "Price of Nonconformance" and the effect of budgetary constraints on the implementation of SQA.
Chapter 9 deals with the widely acclaimed use and application of inspections and the impact of conducting inspections during the software development cycle. The inspection process is described and numerous results of inspections are provided to give the reader a first hand picture of what to look for when evaluating inspection data. Emphasis is given to documentation inspections, inspection metrics, and the national software quality experiment, which captures inspection results across the country.
Chapter 10 looks at the role of software configuration management (SCM) and what that role implies for software quality and software development. Key issues discussed are staffing for SCM, the Configuration Control Board, auditing the SCM process, and allocating resources to perform SCM.
Chapter 11 applies the well-known Pareto Principle (80/20 rule) to the concerns and issues of software quality assurance. The impact and advantage of performing a Pareto analysis is supported by two classic examples; one dealing with WWMCCS (World Wide Military Command and Control System), the other with the Federal Reserve Bank. How Pareto analysis is applied to defect prevention, its use in analysis of inspection data, and a unique aspect of how to compare Pareto charts are covered in this chapter.
Chapter 12 introduces the concepts behind the very influential Software Engineering Institute's Capability Maturity Model (CMM) for Software. The underlying concepts behind the CMM are discussed as well as the CMM's Key Process Area relationships to software quality assurance.
Chapter 13 examines the methods used by the Boeing Space Transportation Systems software organization in their pursuit of the coveted CMM Level 5-the Optimizing level. An organization operating at Level 5 understands its technology and processes and is constantly improving them. This chapter covers what it takes to be there.
Chapter 14 addresses Computer Aided Software Engineering (CASE) tools available for use by the SQA organization. This chapter provides insight into the environment for CASE tools, discusses where and how to find tools, and provides a look ahead in this very dynamic area.
Chapter 15 provides a survey of metrics proposed and currently used to determine the quality of the software development effort. Software quality metrics methodology, omnibus software quality metrics, software quality indicators, and some practical implementations are covered.
Chapter 16 discusses how to successfully perform the job of software quality assurance in a real development environment for mission-critical software programs. Discussions are based on lessons learned and success stories from practical applications in mission-critical software.
Chapter 17 discusses how to successfully perform the job of software quality assurance in a real development environment for commercial programs. Discussions are based on lessons learned and success stories from practical applications in commercial environments. These are contrasted with mission-critical environments.
Chapter 18 discusses the quality assurance of software in the Information environment. This chapter gives the results of the 1998 Quality Assurance Institute Information Processing Quality Assurance Survey. The chapter then explains software quality metrics and their implementation.
Chapter 19 is a treatise on the use of statistics as a means of achieving software quality control. This chapter provides a quantitative method of assessing the effectiveness of testing. The cornerstone of this method is the development of the Symbolic Input Attribute Decomposition (SIAD) tree. A number of practical implementations of the methodology are discussed.
Chapter 20 is updated, based on the events surrounding IEEE Project 982, which was established to enhance measurement of software reliability. It discusses many measures of software and their interrelationship with software quality and software reliability.
Chapter 21 deals with that aspect of software quality concerned with software safety. Covered are the various requirements related to software safety, what it takes to develop a software safety assurance program, and hazard avoidance and mitigation techniques.
Appendix A is a glossary of the acronyms used throughout this Handbook. Also included is an index. The index is a combined author and subject index.
Acknowledgments
The editors thank each and all of the contributors for their time, energy, and foresight in bringing to this Handbook an excellent collection of original papers. This collection provides, in a single source, a wide spectrum of experiences and issues of concern not only to software quality assurance, but also to the future of software development.
The editors also appreciate the patience and help of Bernard Goodwin, editor-in-chief, Stephen Solomon, acquisitions editor, and Nicholas Radhuber, editorial/production supervisor, Prentice Hall, without whose assistance and support this Handbook would not have been accomplished.
G. Gordon Schulmeyer
James I. McManus
Brand-new edition of the industry's leading guide to software quality assurance.