what is software quality?. popular view of quality quality is an intangible trait. “i know it...

15
What is Software Quality?

Post on 19-Dec-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

What is Software Quality?

Popular View of Quality

Quality is an intangible trait. “I know it when I see it.” I.e., it is interpreted in different ways. Therefore, it cannot be controlled,

managed, measured. Often connotes luxury, class, and/or

taste. (A Cadillac is a quality car and a Chevrolet is not.)

Professional View of Quality

Crosby (1979) describes quality as “conformance to requirements”. Nonconformances are defects – the absence of

quality. If a car conforms to all its requirements, it is a

quality car regardless of whether it is a Cadillac or a Chevrolet.

Juran and Gryna (1970) describe it as “fitness for use”. Takes customers’ requirements and expections

into account.

The Role of the Customer

From the Customer’s standpoint, quality is the perceived value of the product – price, performance, reliability, etc.

This implies the customer’s requirements and expectations must be fully understood.

In addition to adherence to requirements, customer satisfaction is the ultimate validation of quality.

Big Q and Small q

The definition quality consists of two levels. The intrinsic product quality – the product’s defect

rate and reliability – “small q” The broader view including product quality, process

quality, and customer satisfaction – “big Q” This forms a closed-loop cycle:

customer wants and needs requirements and specifications products designed, developed and built according to

the requirements with constant attention to process improvement

excellent product quality and support total customer satisfaction.

Software Quality

Narrow definition: lack of bugs in the product.

Broader definition: Conformance to requirements: measured by

defect rate and reliability Customer satisfaction: measured by

surveys IBM monitors satisfaction in levels of

CUPRIMDSO HP focuses on FURPS

Updated Definition of Quality

Software quality is conformance to customers’ requirements.

Interrelationships of Software Quality Attributes

Total Quality Management

Total Quality Management (TQM) was coined in 1985 by the Naval Air Systems Command to describe its approach to quality improvement.

It represents a style of management that links quality to customer satisfaction.

Examples include: The Malcolm Baldrige National Quality Award

(MBNQA) ISO 9000 HP’s Total Quality Control (TQC) Motorola’s Six Sigma Strategy IBM’s Market Driven Quality

Total Quality Management (Cont’d) Key elements of TQM

Customer focus Process improvement Human side of quality Measurement and analysis

Organizational frameworks: Plan-Do-Check-Act – Deming (1986) Quality Improvement Paradigm/Experience Factory

Organization – Basili (1985) Software Engineering Institute (SEI) Capability

Maturity Model (CMM) – Humphrey (1989) Lean Enterprise Management – Womack (1990)

Total Quality Management (Cont’d)

Plan-Do-Check-Act

Based on a feedback cycle for optimizing a single process

Uses feedback loops and statistical quality control to experiment with methods for improvement and to build predictive models.

Based on assumption that a process is repeated multiple times so models can be built that allow predictions.

Quality Improvement Paradigm/Experience Factory Organization Aim is to continually improve the organization

based on its evolving goals and an assessment of status relative to those goals.

The six fundamental steps are:1. Characterize the project and its environment

2. Set the goals

3. Choose the appropriate processes

4. Execute the processes

5. Analyze the data

6. Package the experience for reuse

The SEI Capability Maturity Model A staged process improvement based on

assessment of key process areas until level 5 (a state of continuous process improvement) is reached

A five level process maturity model is defined based on repeated assessments of capabilities in key process areas

The basic idea is that there are key process areas and attending to them will improve software development

Lean Enterprise Management

Based on the principle of concentration of production on “value-added” activities

Goal is to build software with the minimum necessary set of activities and then to tailor the process to the product’s requirements.