3 Software quality metrics

Introduction

In the previous section, we identified software quality metrics as one of the components of SQA. We shall examine this component in detail in this section. Software quality cannot be measured directly; it can only be measured indirectly. Therefore, instead of defining metrics that will directly measure the quality of software, we define factors that determine the quality of software. These factors are called software quality factors. Many people have developed different factors that affect the quality of software. We shall consider these various software quality factors.

3.1    McCall software quality factors

          McCall et al categorized software quality factors according to the following:

  • Product operation (using it)
  • Product Revision (changing it)
  • Product transition (modifying it to work in different environment)

Figure 3.1.1 shows the McCall software quality factors according to the various categories:

         Maintainability                                                               Portability                                           Flexibility                                                                         Reusability                                     Testability                                                                                 Interoperability                                                              Product                 Product                                                                                                     Revision                Transition                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Product    

                                                                 Operation  

              Correctness                                      Usability                              Efficiency     

                                           Reliability                               Integrity

                                          Figure 3.1.1 McCall software quality factors

McCall et al defined each of these software quality factors as follows:

  • Efficiency

This is the amount of computing resources and code required by a program to perform its function

  • Integrity

This is the extent to which access to software or data by unauthorized person can be controlled.

  • Usability

This is the effort required to learn, operate, prepare input and interpret output of a program.

  • Maintainability

This is the effort required to locate and fix an error in a program.

  • Flexibility

This is the effort required to modify an operational program.

  • Testability

This is the effort required to test a program, to ensure that it performs its intended function.

  • Portability

This is the effort required to transfer the program from one hardware and/or software system environment to another.

  • Reusability

This is the extent to which a program or part of a program can be reused in other applications.

  • Interoperability

This is the effort required to couple one system to another.

3.2    Hewlett-Packard (HP) software quality factors

      HP, Hewlett-Packard developed a set of software quality factors, which is given the acronym FURPS, where F is for Functionality, U is for Usability, R is for Reliability, P is for Performance and S is for Supportability.

  • Functionality

This is assessed by evaluating the feature set and capability of the program, the generality of function that are delivered, and the security of the overall system.

  • Usability

This is assessed by considering the human interface design of the software, overall aesthetics, consistency and documentation.

  • Reliability

This is evaluated by measuring the frequency and severity of failure, the accuracy of output results, the mean time to failure (MTTF), the ability to recover from failure, and the predictability of the program.

  • Performance

This is measured by processing speed, response time, resource consumption, throughput and efficiency.

  • Supportability

This combines the following: extensibility, adaptability, serviceability, testability, compatibility, configurability.

3.3    ISO software quality factors

      ISO, International Standard Organization developed a standard, called ISO 9126, which aims at identifying key software quality factors as follows:

  • Functionality

This is the degree to which the software satisfies stated needs, under the following: suitability, accuracy, interoperability, compliance and security.

  • Reliability

This is the amount of time that the software is available for use, under the following: maturity fault, tolerance, recoverability.

  • Usability

This is the degree to which the software is easy to use, under the following: understandability, learnability and operability.

  • Efficiency

This is the degree to which the software makes optimal use of system resources, under the following: time behavior, resource behavior.

  • Maintainability

This is the degree with which repair may be made to the software, under the following: analyzability, changeability, stability, testability.

  • Portability

This is the ease with which the software can be transposed from one environment to the other, under the following: adaptability, installability, conformability, replaceability.

Scroll to Top