Thursday 4 July 2013

Fundamental Concept of Software Quality

The “Fundamental Concept of Software Quality” category describes fundamental
concepts and approaches concerning software quality. This category is divided into the
“Quality Concept” and “Quality Management” knowledge areas.
The “Quality Concept” knowledge area consists of six knowledge sub-areas: “Definition
of Quality Concept (History)” exploring the development of the concept by various
standards and researchers; “Software Quality Model” as typified by ISO/IEC 9126;
“Dependability” describing the broad concept of reliability; and “Security” “Usability”
and “Safety” areas that are attracting a new level of interest recently.
The “Quality Management” knowledge area consists of eight knowledge sub-areas:
“Quality Control”, “Concept of Quality Assurance”, “Concept of Improvement”
“Characteristics of Software Quality Management”, “Concept of Software
Measurement”, “Concept of Software Assessment”, “V&V (Verification & Validation)”,
and “‘Kensa’ (Audit/Checkout)”.
As described above, this category is intended to provide a description of the basic
philosophy of software quality; explanations of specific approaches are left to
subsequent categories (Chapter 2 and Chapter 3). For example, this chapter focuses on
describing the general approach in the “Concept of Improvement” knowledge sub-area
of this category’s “Quality Management” knowledge area. Readers wishing to explore
more specific methods should consult the topics under “Process Assessment and Process
Improvement Management” under the “Software Quality Management” category
addressed in Next Chapter.

1.1 KA: Quality Concept
(1) Definition of Quality
Quality and software quality have been defined in various ways by researchers and ISO,
JIS, and IEEE standards. Currently, general international agreement has been reached
on user satisfaction as the ultimate goal. Here Japan’s “consumer-centric” approach as
espoused by Kaoru Ishikawa and others has been influential in Europe and the United
States. The topics of this knowledge sub-area introduce well-known definitions,
excluding deprecated standards.
In this edition, instances such as the following have not yet been organized as topics.
Garvin attempted to approach the quality of a given item (not limited to software) from
the perspective of interested parties as follows (Garvin 1984):
 Transcendent perspective: Quality can be recognized but is difficult to define.
 User perspective: Does quality comply with the purpose?
 Manufacturer perspective: Does quality conform to the specifications?
 Product perspective: Does quality lead to unique product characteristics?
 Value-based perspective: Quality depends on the amount the customer will pay
for value.
Using televisions and table clocks as subject matter, Kano proposed the categories of
“expected quality”, “one-dimensional quality”, and “appealing quality” from the user’s
perspective using the two-dimensional concepts of satisfaction and material fulfillment
(Kano 1984, Kano 1985).
 Expected quality elements: Quality elements the fulfillment of which is expected
as a matter of course and the inadequacy of which causes dissatisfaction
 One-dimensional quality elements: Quality elements that cause satisfaction if
fulfilled but dissatisfaction if inadequate
 Appealing quality elements: Quality elements that cause satisfaction if fulfilled
but to the inadequacy of which the user reacts with a sense of resignation
Kaoru Ishikawa has proposed shortening the Japanese term for quality from
“hinshitsu” (product quality) to simply “shitsu” (quality), a recommendation that is
echoed by Kano and Iizuka (Kano 2000, Iizuka 2005). In an era when quality
management was chiefly applied to tangible manufactured products, the term hinshitsu23
with its connotation of “product quality” was not problematic and was used without any
sense of contradiction. In consideration of the facts that the number of service and other
industries providing intangible value is increasing and that expressing the concept of
quality as hinshitsu evokes the image of the quality of tangible products, these authors
are recommending that the Japanese term “shitsu” (quality) be used to denote exactly
the same meaning as the conventional expression hinshitsu, succinctly expressing the
intended meaning in all industries. They are interested in the characteristics and
features of needs in all areas, whether for products, services, systems, people, processes,
or operations. JIS Q 9005: 2005 Quality Management Systems: Guidelines for
Sustainable Growth (JIS Q 9005: 2005), which was developed by a committee chaired by
Iizuka, was the first Japanese standard to use the term “shitsu” for quality
management.
(2) Difficulty of satisfying users
Although quality is pursued in order to satisfy users, it is important to note that the
quality desired by users is not universal but rather subject to constant change. For
example, it was important for users of computer programs in the 1950s that those
programs operate properly, but subsequently the focus began to shift to reliability and
processing time. By the 1980s, reliability was taken as an expected requirement for
quality, and attention was shifting to usability. Today, security is one area attracting
significant user interest. Gradual, multi-year trends like these are augmented by
extremely short-term changes in user needs and satisfaction standards (even while a
given software product is being developed).
Additionally, it should be noted that user requirements and expectations are growing
increasingly diverse, and the importance given to each quality characteristic varies with
individual users (and stakeholders). In some cases, what is desirable to one user is not
so to another. Glass, as described in one topic, explains that the priority given to
individual quality characteristics should vary with the type of project, and Weinberg
also discusses the difficulty of assessing user requirements.
ISO/IEC 9126-1 divides the difficulty of assessing user requirements into the following
four areas: “(1) a user is often not aware of his real needs, (2) needs may change after
they are stated, (3) different users may have different operating environments, and (4)24
it may be impossible to consult all the possible types of user, particularly for
off-the-shelf software” (ISO/IEC 9126-1: 2001). “Quality during use” was added to the
previous “internal quality” and “external quality” categories at the time of the
standard’s revision in 2001 in an effort to create a software quality model that better
reflected user satisfaction.

1.2 KA: Quality Management
This knowledge area organizes and introduces approaches to quality management.
First, we will review the necessity and importance of quality management.
Organizations are established and conduct activities to provide value to customers. In
order to ensure that organizations can enjoy a stable existence over the long term, it is
necessary to provide the products and services that are the chief output of the
organization’s activities to customers, receive compensation in return, and reinvest the
resulting profits to maintain the repeating production cycle of providing value. To
accomplish this, the products and services provided by the organization must satisfy a
wide range of customers over the long term. Quality management is a tool for
accomplishing this goal. Quality management refers to the process of directing and
managing organizations to supply products and services of good quality. Quality
management is essential if an organization is to enjoy a stable existence over the long
term. The fundamental philosophy of quality management consists of a
customer-centric approach that seeks to provide satisfaction to customers on an ongoing
basis.
Next, we will review the definition of quality management. In ISO 9000 (ISO
9000:2005), quality management is defined as “Coordinated activities to direct and
control an organization with regard to quality” and consists of the four activities of
quality planning, quality control, quality assurance, and quality “kaizen”
(improvement). As is made clear by this definition, ISO 9000 makes a series of careful
distinctions among quality management, quality control, and quality assurance.
Quality management is a comprehensive term, while quality control and quality
assurance are subordinate concepts. Quality planning involves the development of
plans including standards and other means to satisfy quality requirements. Quality
control consists of checking products against relevant standards to ensure compliance in
accordance with those plans. By contrast, quality assurance refers to the evidence-based
expression of the status of activities for checking quality. Finally, quality “kaizen”
involves making improvements to products and processes throughout this series of
activities.
Here we will review the Japanese approach to quality management. Modern Japanese
quality management began with the aid of instruction from the United States after the
end of World War II. Dr. W. Edwards Deming and Dr. Joseph M. Juran came to Japan to
lecture in 1950 and 1954, respectively, and worked to popularize the practice of quality
management through education. As the concept contributed significantly over time to
Japanese industry, it underwent a significant development from TQC to TQM and from
management focusing on production phases to management including a consideration of
administration-level issues. At the same time, its application expanded from the
manufacturing industry to the construction, power, service, and software industries,
among others. The important philosophies that inform these activities―for example,
reliance on “Genchi Genbutsu” (actual location and actual materials), small group
activities, the participation of all employees, and the revitalization of the
organization―crystallize the Japanese approach to quality management. It is here that
the roots of the Japanese approach, consisting of “Genba”(site)-centered “kaizen”
accomplished through the participation of all employees as opposed to the
commitment-driven approach prevalent in the United States and Europe, are to be
found (Iizuka 2005).
Through the process of this development, the focus of the approach taken to the
implementation of these philosophies shifted from product inspections to process control
and then to new product development (Ishikawa 1981). The inspection approach
consisted of selecting products that meet standards by means of product inspections so
that defective products are kept from entering the market. As this approach was being
pursued, it became evident that selecting defective products is inefficient, and engineers
began working to build standard-compliant products from the production process. This
change marked the adoption of the process control approach, which sought to build in
quality during the production phase. As this approach developed, companies began
working to manufacture quality products from the design stage, giving birth to the new
product development approach. The new product development approach seeks to build
in quality through both product design and production processes. The transformation in
these implementation approaches also influenced practices in Europe and the United
States.
Quality management philosophies can be analyzed in terms of a propensity to focus on
results and a propensity to focus on causes, with result-focused quality management
epitomized by the inspection-centric approach that developed chiefly in Europe and the
United States. This method, which is based on the imperative of preventing products of
poor quality from entering the market by strengthening inspections of the results
(products and services), seeks to clearly articulate the evaluation standards on which
inspections are based and to avoid supplying products that do not meet standards to the
market. By contrast, cause-focused quality management developed primarily in Japan
as described above to emphasize the processes that create products and services. By
identifying and then eliminating the reasons that poor-quality products are built, the
process of creating processes to build high-quality products from the beginning assumes
primary importance. To accomplish this goal, the conditions under which processes are
performed are measured and analyzed, and processes are subject to “kaizen”
improvement. Cause-focused quality management that emphasizes processes is gaining
adherents in Europe and the United States as well, as exemplified by the CMMI and Six
Sigma strategies. In Japan, a management system that gives a central role to quality in
management strategy has been proposed as a further refinement of this approach in the
form of JIS Q 9005: 2005 Quality Management Systems Guidelines for Sustainable
Growth (JIS Q 9005: 2005).
Next, we will examine quality management as it applies to software. Software has
several characteristics that differentiate it from hardware. The most important of these
include the fact that software is difficult to understand, including its development
process; that it consists of accumulated logic; and that it does not have production
processes in the manner of hardware. For these reasons, it is impossible to apply the
production process-based quality management techniques used for hardware as-is to
software. More so than the hardware production phase, the hardware design phase
resembles the process of software development. Additionally, growth in the scale of
software, as seen to a remarkable degree in the embedded software domain in recent
years, has a significant effect on quality. Because software is an accumulation of logic, it
becomes more difficult to obtain a clear view of its content as its scale increases, and
developers lose their grasp of that content. At the same time, closeness of
communication decreases and it becomes more difficult to facilitate teamwork due to
increases in the number of project developers. In this way, one characteristic of software
development is the extremely significant influence of the human element. Software
quality management requires an understanding of these characteristics of software.
In this knowledge area, the basic concept of software quality management described
above is augmented by discussions of software measurement, software evaluation, V&V,
and “kensa” (audit/checkout).

2 comments:

  1. very good explanation of software quality concept and quality managment

    ReplyDelete