21.01.2022 Views

Sommerville-Software-Engineering-10ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 24 ■ Quality management 701

Software quality management is concerned with ensuring that developed software

systems are “fit for purpose.” That is, systems should meet the needs of their users,

should perform efficiently and reliably, and should be delivered on time and within

budget. The use of quality management techniques along with new software technologies

and testing methods has led to significant improvements in the level of

software quality over the past 20 years.

Formalized quality management (QM) is particularly important in teams that are

developing large, long-lifetime systems that take several years to develop. These systems

are developed for external clients, usually using a plan-based process. For these systems,

quality management is both an organizational and an individual project issue:

1. At an organizational level, quality management is concerned with establishing a

framework of organizational processes and standards that will lead to high-quality

software. The QM team should take responsibility for defining the software

development processes to be used and standards that should apply to the software

and related documentation, including the system requirements, design, and code.

2. At a project level, quality management involves the application of specific quality

processes, checking that these planned processes have been followed, and

ensuring that the project outputs meet the defined project standards. Project

quality management may also involve defining a quality plan for a project. The

quality plan should set out the quality goals for the project and define what

processes and standards are to be used.

Software quality management techniques have their roots in methods and techniques

that were developed in manufacturing industries, where the terms quality assurance and

quality control are widely used. Quality assurance is the definition of processes and

standards that should lead to high-quality products and the introduction of quality processes

into the manufacturing process. Quality control is the application of these quality

processes to weed out products that are not of the required level of quality. Both quality

assurance and quality control are part of quality management.

In the software industry, some companies see quality assurance as the definition

of procedures, processes, and standards to ensure that software quality is achieved.

In other companies, quality assurance also includes all configuration management,

verification, and validation activities that are applied after a product has been handed

over by a development team.

Quality management provides an independent check on the software development

process. The QM team checks the project deliverables to ensure that they are

consistent with organizational standards and goals (Figure 24.1). They also check

process documentation, which records the tasks that have been completed by each

team working on this project. The QM team uses documentation to check that important

tasks have not been forgotten or that one group has not made incorrect assumptions

about what other groups have done.

The QM team in large companies is usually responsible for managing the release

testing process. As I discussed in Chapter 8, this means that they manage the testing

of the software before it is released to customers. In addition, they are responsible

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!