Page 229 -
P. 229
200 PART TWO MANAGING SOFTWARE PROJECTS
There is little question that this definition could be modified or extended. In fact, a
definitive definition of software quality could be debated endlessly. For the purposes
of this book, the definition serves to emphasize three important points:
1. Software requirements are the foundation from which quality is measured.
Lack of conformance to requirements is lack of quality.
2. Specified standards define a set of development criteria that guide the man-
ner in which software is engineered. If the criteria are not followed, lack of
quality will almost surely result.
3. A set of implicit requirements often goes unmentioned (e.g., the desire for
ease of use and good maintainability). If software conforms to its explicit
requirements but fails to meet implicit requirements, software quality is sus-
pect.
8.3.1 Background Issues
Quality assurance is an essential activity for any business that produces products to
be used by others. Prior to the twentieth century, quality assurance was the sole
responsibility of the craftsperson who built a product. The first formal quality assur-
“We made too many ance and control function was introduced at Bell Labs in 1916 and spread rapidly
wrong mistakes.”
throughout the manufacturing world. During the 1940s, more formal approaches to
Yogi Berra
quality control were suggested. These relied on measurement and continuous process
improvement as key elements of quality management.
Today, every company has mechanisms to ensure quality in its products. In fact,
explicit statements of a company's concern for quality have become a marketing ploy
during the past few decades.
The history of quality assurance in software development parallels the history of
quality in hardware manufacturing. During the early days of computing (1950s and
WebRef 1960s), quality was the sole responsibility of the programmer. Standards for quality
An in-depth tutorial and assurance for software were introduced in military contract software development
wide-ranging resources for during the 1970s and have spread rapidly into software development in the com-
quality management can
be found at mercial world [IEE94]. Extending the definition presented earlier, software quality
www.management. assurance is a "planned and systematic pattern of actions" [SCH98] that are required
gov.
to ensure high quality in software. The scope of quality assurance responsibility might
best be characterized by paraphrasing a once-popular automobile commercial: "Qual-
ity Is Job #1." The implication for software is that many different constituencies have
software quality assurance responsibility—software engineers, project managers,
customers, salespeople, and the individuals who serve within an SQA group.
The SQA group serves as the customer's in-house representative. That is, the peo-
ple who perform SQA must look at the software from the customer's point of view.
Does the software adequately meet the quality factors noted in Chapter 19? Has soft-