You are on page 1of 19

 “What is software quality?

” evokes many
different answers.
 Quality is a complex concept—it means different
things to different people, and it is highly context
dependent.
 Kitchenham and Pfleeger’s article [60] on
software quality discusses five views of quality
in a comprehensive manner.
 Five Views of Software Quality:

› Transcendental view
› User’s view :
› Manufacturing view
› Product view
› Value-based view
 It envisages quality as something that can be
recognized but is difficult to define. Here quality
is something that can be recognized through
experience but is not defined in some tractable
form.
 Quality is viewed to be something ideal, which is
too complex to lend itself to be precisely defined.
 It perceives quality as fitness for purpose.
According to this view, while evaluating the
quality of the product, one must ask the key
question "Does the product satisfy user needs and
expectations?"
 In this view, a user is concerned with whether or
not a product is fit for use. Quality is not just
viewed in terms of what a product can deliver,
but it is also influenced by the service provisions
in the sales contract.
 Here quality is understood as conformance to the
specifications. The quality level of a product is
determined by the extent to which the product
meets its specifications.
 Any deviation from the stated requirements is
seen as reducing the quality of the product. The
manufacturing view has its genesis in the
manufacturing sectors, such as the automobile
and electronics sectors.
 In this case, quality is viewed as tied to the inherent
characteristics of the product. A product's internal
qualities determine its external qualities.
 The product view is attractive because it gives rise to
an opportunity to explore casual relationships
between internal properties and external qualities of
a product.
 An example of the product view of software quality
is that high degree of modularity, which is an internal
property, makes a software testable and
maintainable.
 Quality, in this perspective, depends on the
amount the customer is willing to pay for it. The
value based view represents a merger of two
independent concepts: excellence and worth
where Quality is the measure of excellence and
value is the measure of worth.
 Quality is meaningless if a product does not
make economic sense. The value based view
represents a trade- off between cost and quality.
 According to McCall’s model, product operation
category includes five software quality factors,
which deal with the requirements that directly
affect the daily operation of the software. They
are as follows −
Correctness
 These requirements deal with the correctness of
the output of the software system.
 Reliability
Reliability requirements deal with service failure. They
determine the maximum allowed failure rate of the
software system, and can refer to the entire system or to
one or more of its separate functions.
 Efficiency
It deals with the hardware resources needed to perform
the different functions of the software system. It includes
processing capabilities (given in MHz), its storage
capacity (given in MB or GB) and the data
communication capability (given in MBPS or GBPS).
 Testability requirements deal with the testing of the
software system as well as with its operation.
 It includes predefined intermediate results, log files,
and also the automatic diagnostics performed by the
software system prior to starting the system, to find
out whether all components of the system are in
working order and to obtain a report about the
detected faults.
 Another type of these requirements deals with
automatic diagnostic checks applied by the
maintenance technicians to detect the causes of
software failures.
 This factor considers the efforts that will be
needed by users and maintenance personnel to
identify the reasons for software failures, to
correct the failures, and to verify the success of
the corrections.
 This factor deals with the use of software
modules originally designed for one project in a
new software project currently being developed.
 They may also enable future projects to make use
of a given module or a group of modules of the
currently developed software.
 The reuse of software is expected to save
development resources, shorten the development
period, and provide higher quality modules.
 A quality criterion is an attribute of a quality
factor that is related to software development.
 For example, modularity is an attribute of the
architecture of a software system. A highly
modular software allows designers to put
cohesive components in one module, thereby
improving the maintainability of the system.
 Various software quality models have been
proposed to define quality and its related
attributes.
The most influential ones are the ISO 9126 and
the CMM .
 The ISO 9126 quality model was developed by
an expert group under the aegis of the
International Organization for Standardization
(ISO).

 The document ISO 9126 defines six broad,
independent categories of quality characteristics:
 functionality, reliability, usability, efficiency,
maintainability, and portability.
 The CMM was developed by the Software
Engineering Institute (SEI) at Carnegie Mellon
University.
 In the CMM framework, a development process
is evaluated on a scale of 1–5, commonly known
as level 1 through level 5.
 For example, level 1 is called the initial level,
whereas level 5—optimized—is the highest level
of process maturity.
 Software quality assessment divide into two categories:

› Static analysis
 It examines the code and reasons over all behaviors that might arise
during run time
 Examples: Code review, inspection, and algorithm analysis

› Dynamic analysis
 Actual program execution to expose possible program failure
 One observe some representative program behavior, and reach
conclusion about the quality of the system

 Static and Dynamic Analysis are complementary in


nature
 Focus is to combine the strengths of both approaches

You might also like