are here: Freetutes.com
Analysis and Design
Software Quality Factors
Till now we have been talking software quality in general. What it means to
be a quality product. We also looked at CMM in brief. We need to know various
quality factors upon which quality of a software produced is evaluated. These
factors are given below.
The various factors, which influence the software, are termed as software factors.
They can be broadly divided into two categories. The classification is done on
the basis of measurability. The first category of the factors is of those that
can be measured directly such as number of logical errors and the second category
clubs those factors which can be measured only indirectly for example maintainability
but the each of the factors are to be measured to check for the content and the
quality control. Few factors of quality are available and they are mentioned below.
Correctness - extent to which a program satisfies its specification
and fulfills the client's objective.
Reliability - extent to which a program is supposed to perform
its function with the required precision.
Efficiency - amount of computing and code required by a program
to perform its function.
Integrity - extent to which access to software and data is
denied to unauthorized users.
Usability- labor required to understand, operate, prepare
input and interpret output of a program
Maintainability- effort required to locate and fix an error
in a program.
Flexibility- effort needed to modify an operational program.
Testability- effort required to test the programs for their
Portability- effort required to run the program from one platform
to other or to different hardware.
Reusability- extent to which the program or it’s parts
can be used as building blocks or as prototypes for other programs.
Interoperability- effort required to couple one system to
Now as you consider the above-mentioned factors it becomes very obvious that
the measurements of all of them to some discrete value are quite an impossible
task. Therefore, another method was evolved to measure out the quality. A set
of matrices is defined and is used to develop expressions for each of the factors
as per the following expression
Fq = C1*M1 + C2*M2 + …………….Cn*Mn
where Fq is the software quality factor, Cn are regression coefficients and
Mn is metrics that influences the quality factor. Metrics used in this arrangement
is mentioned below.
Auditability- ease with which the conformance to standards
can be verified.
Accuracy- precision of computations and control
Communication commonality- degree to which standard interfaces,
protocols and bandwidth are used.
Completeness- degree to which full implementation of functionality
required has been achieved.
Conciseness- program’s compactness in terms of lines
Consistency- use of uniform design and documentation techniques
throughout the software development.
Data commonality- use of standard data structures and types
throughout the program.
Error tolerance – damage done when program encounters
Execution efficiency- run-time performance of a program.
Expandability- degree to which one can extend architectural,
data and procedural design.
Hardware independence- degree to which the software is de-coupled
from its operating hardware.
Instrumentation- degree to which the program monitors its
own operation and identifies errors that do occur.
Modularity- functional independence of program components.
Operability- ease of programs operation.
Security- control and protection of programs and database
from the unauthorized users.
Self-documentation- degree to which the source code provides
Simplicity- degree to which a program is understandable without
Software system independence- degree to which program is independent
of nonstandard programming language features, operating system characteristics
and other environment constraints.
Traceability- ability to trace a design representation or
actual program component back to initial objectives.
Training- degree to which the software is user-friendly to
There are various ‘checklists’ for software quality. One of them
was given by Hewlett-Packard that has been given the acronym FURPS – for
Functionality, Usability, Reliability, Performance and Supportability.
Functionality is measured via the evaluation of the feature set and the program
capabilities, the generality of the functions that are derived and the overall
security of the system.
Considering human factors, overall aesthetics, consistency and documentation
Reliability is figured out by evaluating the frequency and severity of failure,
the accuracy of output results, the mean time between failure (MTBF), the ability
to recover from failure and the predictability of the program.
Performance is measured by measuring processing speed, response time, resource
consumption, throughput and efficiency. Supportability combines the ability to
extend the program, adaptability, serviceability or in other terms maintainability
and also testability, compatibility, configurability and the ease with which a
system can be installed.
Previous Page | Contents
| Next Page >>